1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 13:00:26 +02:00
Commit graph

137 commits

Author SHA1 Message Date
pcpa
01be83d480 Make mips backend compile on a qemu image.
* include/lightning/jit_mips.h, lib/jit_mips.c: Update to
	make the mips backend compile in a qemu image.

	* lib/jit_ppc.c: Minor adaptations to help in having the
	ppc backend compilable.
2012-12-04 00:27:44 -02:00
pcpa
1c9088beca Update code to build and pass test cases in the arm port.
* configure.ac, include/lightning/jit_private.h, lib/jit_arm-cpu.c,
	lib/jit_arm-swf.c, lib/jit_arm.c, check/Makefile.am: Correct
	implementation of the arm backend port to build and pass the
	current test cases. Tested on armv7 with softfp abi.

	* lib/jit_disasm.c: Rename and change prototype of static
	disassemble function as in the arm backend it is required
	to access state information stored in the jit_state_t object.

	* check/3to2.tst, check/add.tst: Correct test case code assuming
	JIT_RO and JIT_RET are the same, and even if they are the same,
	the logic was incorrect because it must always call jit_retval*
	to fetch a function call return before any other instruction.
	The arm backend hash a special condition if jit_retval is not
	called, because "r0" is not JIT_R0, but is JIT_RET and *also*
	the first argument for a called function, so JIT_RET must be
	only used as an argument to jit_retval.

	* TODO: New file listing important tasks to be resolved.
2012-12-03 14:27:27 -02:00
pcpa
712877a5a4 Correct implementation problems on ix86.
* check/all.tst, check/lightning.c: Only declare or use 64 bit
	interfaces on 64 bit builds.

	* check/fib.tst: Use simpler logic to not need preprocessor
	conditionals for 32 or 64 bit.

	* include/lightning.h: Only declare 64 bit macros on a 64 bit
	build. Code using lightning must know about wordsize and the
	jit generation limitations, also, this way it generates a
	compile time failure, not a runtime assertion.

	* include/lightning/jit_x86.h: Correct typo in macro name.

	* lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c,
	lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c,
	lib/jit_x86.c, lib/jit_x86-cpu.c: Correct wrong code to get
	current jit function pointer.

	* lib/lightning.c: Move call to the simplify() optimization
	to after register liveness is known. Previous code did work
	by accident but now with proper test cases the problem was
	noticed.

	* lib/jit_disasm.c: Always cast bfd_vma to long long when
	passing it as printf argument.
2012-12-03 09:40:08 -02:00
pcpa
e6f1df7124 Correct make distcheck.
2012-12-03 Paulo Andrade <pcpa@gnu.org>

	* configure.ac, check/Makefile.am, check/check.sh,
	doc/Makefile.am, include/lightning/Makefile.am,
	lib/Makefile.am: Correct make distcheck.
2012-12-03 07:26:40 -02:00
pcpa
90a187a12e Correct integer multiplication and add extra test case.
* lib/jit_ppc.c: Assign copyright ownership to FSF.

	* lib/jit_x86-cpu.c: Correct integer multiplication that was
	generating code with reversed register arguments.

	* check/rpn.ok, check/rpn.tst: New test case file.
2012-12-03 00:07:29 -02:00
pcpa
b7c8db4ba4 Add extra files implementing different jit backends.
2012-12-02 Paulo Andrade <pcpa@gnu.org>

	* lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c:
	Actually change copyright owner to FSF as avertised.

	*  lib/jit_arm-cpu.c,  lib/jit_arm-swf.c,
	lib/jit_arm-vfp.c, lib/jit_arm.c,
	lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c,
	lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: New
	files implementing initial code different jit backends.

	* include/lightning/jit_private.h: Add extra field to the
	private jit_patch_t type, required by the arm port.

	* lib/Makefile.am: Update for the new backend implementation
	files.
2012-12-02 22:58:40 -02:00
pcpa
51b2cee78e Add proper make clean rule to the check subdir.
2012-12-02 Paulo Andrade <pcpa@gnu.org>

        * check/Makefile.am: Add proper "make clean" rule and missing
        check.sh to EXTRA_DIST.
2012-12-02 20:24:24 -02:00
pcpa
22cc2ad62c Add make rule to build test case dependencies.
* .gitignore: Update pattern of ignored files.

	* check/Makefile.am: Add rule to build liblightning.la dependency
	in case of running "make check" before building the library.
2012-12-02 20:15:57 -02:00
pcpa
cb6a2c51f0 Remove previous macro files as they are no longer used.
* lightning/Makefile.am, lightning/asm-common.h,
	lightning/core-common.h, lightning/fp-common.h,
	lightning/funcs-common.h, lightning/i386/Makefile.frag,
	lightning/i386/asm-32.h, lightning/i386/asm-64.h,
	lightning/i386/asm.h, lightning/i386/core-32.h,
	lightning/i386/core-64.h, lightning/i386/core.h,
	lightning/i386/fp-32.h, lightning/i386/fp-64.h,
	lightning/i386/fp.h, lightning/i386/funcs.h,
	lightning/ppc/asm.h, lightning/ppc/core.h,
	lightning/ppc/fp.h, lightning/ppc/funcs.h,
	lightning/sparc/asm.h, lightning/sparc/core.h,
	lightning/sparc/fp.h, lightning/sparc/funcs.h:
	Removed. The core logic is used in the new code, and new mips
	and arm ports will be added. At first, sparc will not be
	supported as it has not yet been ported to the new engine.
2012-12-02 20:03:12 -02:00
pcpa
7a1c455237 Big merge with new lightning semantics aiming for lightning 2.0.
2012-12-02 Paulo Andrade <pcpa@gnu.org>

	* tests/Makefile.am, tests/3to2.c, tests/3to2.ok, tests/add.c,
	tests/add.ok, tests/allocai.c, tests/allocai.ok, tests/bp.c,
	tests/bp.ok, tests/divi.c, tests/divi.ok, tests/fib.c, tests/fib.ok,
	tests/fibdelay.c, tests/fibdelay.ok, tests/fibit.c, tests/fibit.ok,
	tests/funcfp.c, tests/funcfp.ok, tests/incr.c, tests/incr.ok,
	tests/ldst.c, tests/ldst.ok, tests/ldxi.c, tests/ldxi.ok,
	tests/modi.c, tests/modi.ok, tests/movi.c, tests/movi.ok,
	tests/printf.c, tests/printf.ok, tests/printf2.c, tests/printf2.ok,
	tests/ret.c, tests/ret.ok, tests/rpn.c, tests/rpn.ok, tests/rpnfp.c,
	tests/rpnfp.ok, tests/sete.c, tests/sete.ok, tests/testfp.c,
	tests/testfp.ok, tests-run-test: Removed previous test suite, in
	favor of a newer one in the check subdirectory.

	* check/3to2.ok, check/3to2.tst, check/add.ok, check/add.tst,
	check/allocai.ok, check/allocai.tst, check/bp.ok, check/bp.tst,
	check/divi.ok, check/divi.tst, check/fib.ok, check/fib.tst:
	New sample input for the new test program, loosely matching
	several of the previous test cases.

	* check/Makefile.am: New test suite makefile.

	* check/check.sh, check/run-test: New wrapper files for the
	new test suite.

	* check/lightning.c: New file. The main driver of the new test
	suite, that compiles to a parser of a very simple assembly like
	language, generates jit and executes it.

	* check/all.tst: New file. A generic debug and sample test file
	with a directive to prevent it from being executed, and useful to
	read disassembly of all possible instructions, using a fixed set
	of registers.

	* include/Makefile.am, include/lightning.h,
	include/lightning/Makefile.am, include/lightning/jit_arm.h,
	include/lightning/jit_mips.h, include/lightning/jit_ppc.h,
	include/lightning/jit_private.h, include/lightning/jit_x86.h,
	lib/Makefile.am, lib/jit_disasm.c, lib/jit_print.c,
	lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c,
	lib/jit_x86.c, lib/lightning.c: New files. These files are
	written from scratch, only by <pcpa@gnu.org>, and have now
	copyright assignment to the FSF. This is the core of the new
	lightning rework. Previously it was integrated in code with
	a garbage collector and several custom types like vectors and
	hash tables, so this first code merge with lightning converts
	that code into a library extracting only the jit bits, and at
	first only for x86_64 GNU/Linux.

	* lightning.h, m4/lightning.m4: Removed. These are no longer
	required in the new lightning code.

	.gitignore, Makefile.am, configure.ac: Update for the new
	lightning code.
2012-12-02 19:44:36 -02:00
pcpa
75d99beb21 Extra cleanup before update to new codebase.
2012-12-02 Paulo Andrade <pcpa@gnu.org>
	* .cvsignore: Removed for extra cleanup.

	* build-aux: Rename directory to m4.

	* m4: Renamed to "default" name and for consistency with merge
	with code rework to be imported in lightning.

	* .gitignore, configure.ac, Makefile.am, doc/Makefile.am:
	Update for build-aux to m4 rename.
2012-12-02 19:08:34 -02:00
pcpa
7d3321d696 Cleanup on preparation for lightning rework.
2012-12-01 Paulo Andrade <pcpa@gnu.org>

	* opcode/Makefile.am, opcode/Makefile.in, opcode/ansidecl.h,
	opcode/bfd.h, opcode/dis-asm.h, opcode/dis-buf.c, opcode/disass.c,
	opcode/i386-dis.c, opcode/i386.h, opcode/ppc-dis.c, opcode/ppc-opc.c,
	opcode/ppc.h, opcode/sparc-dis.c, opcode/sparc-opc.c, opcode/sparc.h,
	opcode/sysdep.h: Removed. Do not bundle GNU binutils files.

	* aclocal.m4, configure, Makefile.in, config.h.in, doc/Makefile.in,
	lightning/Makefile.in, tests/Makefile.in: Removed. Do not maintain
	autogenerated files that also generate too much diff noise when
	regenerated in git.

	* build-aux/help2man, build-aux/texinfo.tex, build-aux/texi2dvi:
	Removed. Buildenvironment must have an up to date version from
	upstream installed.

	* build-aux/config.guess, build-aux/config.sub, build-aux/depcomp,
	build-aux/install-sh build-aux/mdate-sh build-aux/missing: Removed.
	Do not maintain a copy of automake files in git. Release tarballs
	must use an up to date version.

	* lightningize.in, doc/lightningize.1: Removed. Do not encourage
	bundling lightning in other packages. It should use a system package
	or a proper thirdy part subdirectory.

	* INSTALL: Removed. Autoreconf removes it and creates a symlink
	when regenerating files, so, avoid conflicts in git and let
	automake create the symlink.

	* .gitignore: Add INSTALL and autogenerated files.

	* configure.ac, Makefile.am: Update for removal of opcode subdir,
	auto generated files and lightningize.

	* tests/Makefile.am, tests/3to2.c, tests/add.c, tests/bp.c,
	tests/fib.c, tests/fibdelay.c, tests/fibit.c, tests/funcfp.c,
	tests/incr.c, tests/printf.c, tests/rpn.c, tests/rpnfp.c,
	tests/sete.c, tests/testfp.c: Update for removal of opcode subdir.

	* doc/Makefile.am: Update for removal of lightningize.

	* configure.ac, lightning/ppc/funcs.h, lightning/sparc/funcs.h,
	lightning/i386/fp.h, lightning/i386/core.h, lightning/i386/asm.h,
	tests/3to2.c, tests/add.c, tests/bp.c, tests/fib.c, tests/fibdelay.c,
	tests/fibit.c, tests/funcfp.c, tests/incr.c, tests/printf.c,
	tests/rpn.c, tests/rpnfp.c, tests/sete.c, tests/testfp.c:
	Remove LIGHTNING_CROSS, it is half supported and incomplete.

	* tests/3to2.c, tests/funcfp.c, tests/rpnfp.c: Remove preprocessor
	check on JIT_FPR. If no hardware registers are available, the backend
	must provide an alternative for software float.

	* lightning/ppc/core.h, lightning/sparc/core.h, tests/Makefile.am:
	Remove JIT_NEED_PUSH_POP. It is absolutely not trivial to implement
	properly on some backends due to stack alignment constraints, and
	whenever it is required, using jit_allocai and using a properly
	aligned stack vector, or a heap buffer, is better.

	* tests/push-pop.c, tests/push-pop.ok: Removed due to
	JIT_NEED_PUSH_POP no longer available.
2012-12-01 17:52:59 -02:00
Paolo Bonzini
0469f165c2 fix multiplication on x86_64
2011-02-28  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core-64.h: Add jit_add{c,x}{i,r}_l, jit_mulr_{l,ul}_,
	fix jit_mul{i,r}_{l,ul}.
2011-02-28 11:24:03 +01:00
PCPA
e98ff58a7e Also reset alloca_slack after jit_prolog in i386.
There is no guarantee of order of jit_function calls, so, it must
reset it for every function. This should correct possible issues in
OS/X, and will be required when i386 code is updated to use MMX/SSE*
registers, possibly as some kind of extended interface, and then,
would require 16 bytes aligned stack. This is already an issue if
calling C code that uses SSE, and currently requires "manually"
padding the stack by using jit_allocai.
2010-08-29 11:55:48 +02:00
PCPA
d2239c223a Revert change aliasing jit_movi_p to jit_movi_ul.
It cannot "optimize" to use 32 bits opcode or zero the register
because that would break jit_patch_movi.
2010-08-29 11:55:11 +02:00
PCPA
3749bc71d8 Correct ALU add and sub operations with 64 bit immediate operands.
The problems would also happen with 32 bit unsigned operands that would
happen to have the topmost bit set, so, now it only uses 32 bit immediates
when bit 31 is not set.
  This patch correct all the issues found by the test cases alu_add.tst and
alu_sub.tst in http://code.google.com/p/exl/source/browse/trunk/check/lightning
2010-08-29 11:55:11 +02:00
PCPA
7b330c81b9 Define some extra fp-common macros when sizeof(long) == sizeof(int). 2010-08-29 11:55:11 +02:00
PCPA
8665ce16da Change _ASM_SAFETY register width check to accept valid alternate values.
The checks were moved from i386/asm.h to i386/asm-{32,64}.h, as well
as some macros from core-{32,64}.h. Now it checks if the value is in the
range of a valid register, and in the proper register class, what should
prevent the common mistake of calling a jit*r_x macro passing an immediate
as argument.
  Now it pass lightning's make check in i386/x86_64, as well as all test
cases in http://code.google.com/p/exl/source/browse/trunk/check/lightning
when compiled with -D_ASM_SAFETY.
2010-08-29 11:55:11 +02:00
Paulo Cesar Pereira de Andrade
d4a2a1ba07 Correct branches and several ALU operations with 64 immediates
jit_bra_l had the logic reversed, and correcting that also corrected
jit_b{lt,le,eq,ge,gt,ne}i_l.
  TESTQir and _ALUQir were not properly working with 64 bit immediates,
that require using a temporary register (JIT_REXTMP) as there are no
related opcodes for 64 bit immediates. This corrected jit_bm{s,c}i_l and
jit_bo{add,sub}i_l.
  Now, the tests in
http://code.google.com/p/exl/source/browse/trunk/check/lightning/branch.tst
pass.
2010-08-29 11:55:11 +02:00
Paulo Cesar Pereira de Andrade
67e1051827 Account stack alignment on jit functions with odd number of arguments.
The x86_64 correction to keep stack aligned in jit_finish* was only
correct for functions being called, but did not correctly handle alignment
of stack arguments.
2010-08-25 20:50:41 -03:00
PCPA
fe9f114745 Implement x86_64 support for multiple integer and float arguments.
This changes the usage of some of the jit_local_state fields, and add
two extra ones. Since jit_arg_x now returns either a register offset or
an stack offset, it does not add _XMM0 to nextarg_putfp to distinguish
from stack offsets.
  The nextarg_puti field is used to known when run out of integer register
arguments, and should push arguments on the stack.
  The new framesize field is used to keep track of jit_arg_x offset on
the stack, when jit_arg_x runs out of registers.
  The argssize field is used in a slightly different way now, and is
used to keep track of number of stack slots used to pass arguments, and
nextarg_puti is used in its previous semantics, to also match nextarg_putfp
logic.
2010-08-25 07:02:52 -03:00
PCPA
d04cfb05ac Change jit_finish to work with varargs functions in x86_64.
It is required to set %al to 0-8 inclusive, telling the number of
xmm registers used to pass arguments.
  This also corrects the calculation of _jitl.nextarg_putfp, that
would be incorrect if calling a function with both, float and double
arguments.
2010-08-25 06:55:50 -03:00
PCPA
100fbd17fb Change JIT_FPR_NUM to 7 to prevent clobber of JIT_FPR(7)
Lightning provides at least 6 float registers, so, in this commit,
reduce from 8 to 7 so that code respecting JIT_FPR_NUM should be
safe again't use of JIT_FPTMP.
2010-08-25 06:47:42 -03:00
PCPA
ec36c13183 Change JIT_REXTMP to not clobber 6th argument.
To not clobber JIT_R2, JIT_REXTMP is defined to the callee save register
%r12, instead of the expected, scratch register %r11.
  To have JIT_V_NUM at least at 3, it now also uses %r14, but does not add
%r15, that could be JIT_V(4) to simplify logic of keeping stack 16 bytes
aligned.
2010-08-25 06:45:42 -03:00
Paulo Cesar Pereira de Andrade
3eb42b42b6 Change JIT_REXTMP, JIT_R, JIT_V to use 64-bit registers 2010-08-24 12:37:29 +02:00
Paulo Cesar Pereira de Andrade
58043d717d Add safety check on number of integer and float arguments on x86_64. 2010-08-24 12:37:29 +02:00
Paulo Cesar Pereira de Andrade
adc42ad2ad Define extra SSE2 xmmN registers and set JIT_FPTMP to the topmost one. 2010-08-24 12:37:29 +02:00
Paulo Cesar Pereira de Andrade
fb86d498a4 Change jit_getarg_{c,uc,s,us,i,ui} to extr_l to sign extend on 64 bits. 2010-08-24 12:37:20 +02:00
Paolo Bonzini
9564132c94 more fixes to fp branches
2010-08-20  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/fp-64.h: Return patch address from jit_bXYr_{f,d}.
	Reported by Paulo César Pereira de Andrade.
	* lightning/ppc/fp.h: Likewise.
	* lightning/sparc/fp.h: Implement FP branches.
2010-08-20 10:08:43 +02:00
Paolo Bonzini
688e75a092 fix x86_64 jit_bner_{f,d}
2010-08-18  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/fp-64.h: Fix jp in jit_bner_{f,d}.
2010-08-19 09:44:35 +02:00
Paolo Bonzini
7e19a3da19 fix -D_ASM_SAFETY compilation of beqr_d and bne_d
2010-08-18  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/fp-32.h: Fix -D_ASM_SAFETY compilation.
	Reported by Paulo César Pereira de Andrade.
2010-08-18 10:05:42 +02:00
Paolo Bonzini
e19b41c9f0 ldst test update
2010-08-15  Paolo Bonzini  <bonzini@gnu.org>

	* tests/ldst.c: Update.
	* tests/Makefile.am: Use -ffloat-store to compile it.
2010-08-15 06:41:42 -04:00
Paolo Bonzini
64ccd054f2 fix 64-bit load with sign extension
2010-08-15  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s,
	jit_ldxr_s): Move...
	* lightning/i386/core-32.h: ... here.
	* lightning/i386/core-64.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s,
	Use movsbq and movswq.
2010-08-15 06:32:19 -04:00
Paolo Bonzini
ceaf1b05cf fix jit_extr_f_d and jit_extr_d_f for x86-64
2010-08-10  Paulo César Pereira de Andrade <pcpa@mandriva.com.br>
	    Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core-32.h (jit_replace): Use MOVLrr, not MOVLir.
	(jit_movbrm): Check index register as well.
	* lightning/i386/fp-64.h: Add jit_extr_f_d and jit_extr_d_f.
	* lightning/fp-common.h: Add jit_extr_f_d and jit_extr_d_f.
2010-08-15 06:29:51 -04:00
Paulo César Pereira de Andrade
5cef649486 fix two bugs in load/store for i386
* lightning/i386/core-32.h (jit_replace): Use MOVLrr, not MOVLir.
(jit_movbrm): Check index register as well.
2010-08-10 08:35:35 -04:00
Paolo Bonzini
5ea118e8a9 add ldst test
2010-07-28  Paolo Bonzini  <bonzini@gnu.org>

	* tests/Makefile.am: Add ldst test.
	* tests/Makefile.in: Regenerate.
	* tests/ldst.c: New.
	* tests/ldst.ok: New.
2010-07-28 23:29:24 +02:00
Paolo Bonzini
128ad6a4e7 fix i386 jit_replace and x86_64 jit_movi_f
2010-07-28  Paolo Bonzini  <bonzini@gnu.org>

	* THANKS: Add Paulo Cesar Pereira de Andrade.
	* doc/porting.texi: Fix ordering of arguments in jit_stxi.
	* lightning/i386/core-32.h (jit_replace): Remove cmp argument.
	* lightning/i386/fp-64.h (jit_movi_f): Fix.
2010-07-28 23:29:13 +02:00
Paolo Bonzini
2ecf6a2c28 fix jit_movbrm in the i386 backend
2010-07-26  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core-32.h (jit_replace): Move here (removed
	2009-03-01).
2010-07-26 09:14:18 +02:00
Paolo Bonzini
21ece8cdcd always set and replace lightning_frag
2010-07-19  Paolo Bonzini  <bonzini@gnu.org>

	* build-aux/lightning.m4: Always set and replace lightning_frag.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* doc/lightningize.1: Regenerate.
	* doc/version.texi: Regenerate.
	* lightning/Makefile.in: Regenerate.
	* opcode/Makefile.in: Regenerate.
	* tests/Makefile.in: Regenerate.
2010-07-19 14:40:08 +02:00
Paolo Bonzini
ef7d11decb always set and replace lightning_frag
2010-07-19  Paolo Bonzini  <bonzini@gnu.org>

	* build-aux/lightning.m4: Always set and replace lightning_frag.
2010-07-19 14:34:35 +02:00
Paolo Bonzini
7179d226ed fix x86 shifts
2009-03-01  Paolo Bonzini  <bonzini@gnu.org>

        * lightning/i386/core-64.h: Use Mike's macros for x86-64 too.
        * lightning/i386/core.h: Remove jit_replace.

	2009-02-27  Mike Spivey  <mike@comlab.ox.ac.uk>

        * lightning/i386/core.h: Rewrite shift-handling macros.
        * lightning/fp-common.h: Fix jit_extr_{f_d,d_f}.
2009-03-01 17:59:41 +01:00
Paolo Bonzini
e6c352bc3e fix blunder in operand order (i386)
2009-02-17  Mike Spivey  <mike@comlab.ox.ac.uk>

	* lightning/i386/core.h: Fix blunder in operand order.
2009-02-19 20:23:30 +01:00
Paolo Bonzini
d671ec726d another fix to jit_fp_btest
2009-02-17  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/fp-32.h: Another fix to jit_fp_btest.
2009-02-17 12:20:19 +01:00
Paolo Bonzini
a76f19c5ef fix problems with i386 32-bit floating point branches
2009-02-17  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/fp-common.h: Define double branches if missing.
	* lightning/i386/asm.h: Define JC and JNC mnemonics.
	* lightning/i386/fp-32.h: Fix jit_fp_btest.  All reported
	by Mike Spivey.
2009-02-17 09:57:23 +01:00
Paolo Bonzini
f87b2f6df8 subtract 1 from the final byte being flushed in PPC jit_flush_code
2008-10-09  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/ppc/funcs.h (jit_flush_code): Subtract 1 from end.
	Reported by Eli Barzilay and Matthew Flatt.
2008-10-09 10:19:26 +02:00
Paolo Bonzini
da92a86557 fix installation bug
2008-08-23  Nix  <nix@esperi.org.uk>

	* lightning/i386/Makefile.frag: fp-32.h and fp-64.h are target files.
2008-08-23 15:33:54 +02:00
Laurent Michel
b3817a102e fix miscellaneous PPC-32 back-end bugs
2008-07-02  Laurent Michel  <ldm@engr.uconn.edu>

	* lightning/ppc/funcs.h (jit_flush_code): modified the computation
	of start/end. The pointer arithmetic was done without casting. It
	prevented compilation with recent gcc versions.
	* lightning/ppc/core.h (jit_pushr_i): The offset for the store was
	incorrect. Should have been 4 bytes below SP (not above).
	* lightning/ppc/core.h (jit_popr_i): The offset for the load was
	incorrect. Should have been 0 (not +8).
2008-07-10 16:09:05 +02:00
Paolo Bonzini
66c8a682af fix IMULQir and IMULQirr
2008-06-17  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/asm-64.h: Forward IMULQir to IMULQirr,
	fix REXQ order for IMULQirr.
2008-06-17 15:20:23 +02:00
Paolo Bonzini
aa56a6b65f fix _rN vs. _rR
2008-06-17  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core.h: Fix _rN vs. _rR.
2008-06-17 10:21:52 +02:00
Paolo Bonzini
8b2f05549c move JIT_R1/JIT_R2 to R10/R11 for the x86_64 backend
2008-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/core.h: Use jit_save in jit_replace.  Move JIT_R
	definition...
	* lightning/i386/core-32.h: ... here; define jit_save so that
	the core.h has no effect on the 32-bit backend.
	* lightning/i386/core-64.h: Place JIT_R1/JIT_R2 in R10/R11,
	place outgoing arguments in the right spot from the beginning,
	define jit_save, fix jit_reg8/jit_reg16.
2008-06-17 09:32:35 +02:00