1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 12:20:20 +02:00
guile/check
pcpa 9d2566ee0a Add the new ccall test case to test interleaved C and jit function calls
* check/cccall.c, check/ccall.ok: New test case to validate
	interleaved calls from/to C code and jit.

	* check/Makefile.am: Update for the new ccall test case.

	* include/lightning.h, lib/lightning.c: Add the new jit_address
	call that returns the real/final address of a "note" in the
	generated jit. It requires a jit_node_t as returned by the
	jit_note call, and is only valid after calling jit_emit.
	  Add an intermediate solution to properly handle arm
	soft and softfp modes that move a double to an integer register
	pair. Currently it just adds extra tests for the condition,
	but the proper solution should be to have extra lightning
	codes for these conditions, codes which should be only used
	by the backends that need it, and merged with the existing
	jit_pusharg*_{f,d}.

	* include/lightning/jit_private.h: Add new jit_state_t flag
	to know it finished jit_emit, so that calls to jit_address
	are valid.

	* lib/jit_mips.c: Correct abi implementation so that the
	new ccall test case pass. Major problem was using
	_jit->function.self.arg{i,f} as boolean values, but that
	would cause lightning.c:patch_registers() to incorrectly
	assume only one register was used as argument when calling
	jit_regarg_p(); _jit->function.self.arg{i,f} must be the
	number of registers used as arguments (in all backends).

	* lib/jit_x86.c: Add workaround, by marking %rax as used,
	to a special condition, when running out of registers and the
	allocator trying to spill and reload %rax, but %rax was used
	as a pointer to a function, what would cause the reload to
	destroy the return value. This condition can be better
	generalized, but the current solution is good enough.

	* include/lightning/jit_ppc.h, lib/jit_ppc-cpu.c, lib/jit_ppc.c:
	Rewrite logic to handle arguments, as the original code was
	written based on a SysV pdf about the generic powerpc ABI,
	what did "invent" a new abi for the previous test cases, but
	failed in the new ccall test in Darwin PPC. Now it properly
	handles 13 float registers for arguments, as well as proper
	computation of stack offsets when running out of registers
	for arguments.
2013-01-05 16:14:59 -02:00
..
3to2.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
3to2.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
add.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
add.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
all.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
allocai.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
allocai.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu.inc Add two extra test cases for float operations. 2012-12-17 17:55:38 -02:00
alu_add.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_add.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_and.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_and.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_com.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_com.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_div.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_div.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_lsh.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_lsh.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_mul.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_mul.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_neg.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_neg.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_or.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_or.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_rem.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_rem.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_rsh.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_rsh.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_sub.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_sub.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alu_xor.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alu_xor.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alux_add.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alux_add.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
alux_sub.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
alux_sub.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
bp.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
bp.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
branch.ok Add several arithmetic and branch tests cases. 2012-12-09 19:13:33 -02:00
branch.tst Correct wrong and confusing reverse float comparison logic 2012-12-29 18:55:11 -02:00
call.ok Add simple test case to test argument and return values. 2012-12-23 20:28:05 -02:00
call.tst Add simple test case to test argument and return values. 2012-12-23 20:28:05 -02:00
carry.ok Add new carry test case. 2012-12-23 11:51:41 -02:00
carry.tst Add new carry test case. 2012-12-23 11:51:41 -02:00
ccall.c Add the new ccall test case to test interleaved C and jit function calls 2013-01-05 16:14:59 -02:00
ccall.ok Add the new ccall test case to test interleaved C and jit function calls 2013-01-05 16:14:59 -02:00
check.arm.sh Add support to test different/alternate code generation setups. 2012-12-14 22:40:08 -02:00
check.sh Correct make distcheck. 2012-12-03 07:26:40 -02:00
check.swf.sh Add support to test different/alternate code generation setups. 2012-12-14 22:40:08 -02:00
check.x87.sh Add support to test different/alternate code generation setups. 2012-12-14 22:40:08 -02:00
clobber.ok Add new register clobber detection test case. 2012-12-22 12:15:03 -02:00
clobber.tst Add new register clobber detection test case. 2012-12-22 12:15:03 -02:00
cvt.ok Add new test case for int/float to/from conversion. 2012-12-06 15:16:23 -02:00
cvt.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
divi.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
divi.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
fib.ok Big merge with new lightning semantics aiming for lightning 2.0. 2012-12-02 19:44:36 -02:00
fib.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
float.ok Add new extensive float comparison and conversion test case 2012-12-29 14:16:45 -02:00
float.tst Test and correct test cases in all current backends. 2013-01-02 17:53:51 -02:00
fop_abs.ok Add two extra test cases for float operations. 2012-12-17 17:55:38 -02:00
fop_abs.tst Add two extra test cases for float operations. 2012-12-17 17:55:38 -02:00
fop_sqrt.ok Add two extra test cases for float operations. 2012-12-17 17:55:38 -02:00
fop_sqrt.tst Add two extra test cases for float operations. 2012-12-17 17:55:38 -02:00
ldst.inc Add new ldst variant test cases to check base/index register clobber. 2012-12-06 10:00:30 -02:00
ldsti.ok Add new test cases to exercise memory load/store. 2012-12-05 15:57:33 -02:00
ldsti.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstr-c.ok Add new ldst variant test cases to check base/index register clobber. 2012-12-06 10:00:30 -02:00
ldstr-c.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstr.ok Add new test cases to exercise memory load/store. 2012-12-05 15:57:33 -02:00
ldstr.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstxi-c.ok Add new ldst variant test cases to check base/index register clobber. 2012-12-06 10:00:30 -02:00
ldstxi-c.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstxi.ok Add new test cases to exercise memory load/store. 2012-12-05 15:57:33 -02:00
ldstxi.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstxr-c.ok Add new ldst variant test cases to check base/index register clobber. 2012-12-06 10:00:30 -02:00
ldstxr-c.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
ldstxr.ok Add new test cases to exercise memory load/store. 2012-12-05 15:57:33 -02:00
ldstxr.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
lightning.c Change type of return of jit_arg* and argument to jit_getarg* 2012-12-28 10:35:14 -02:00
Makefile.am Add the new ccall test case to test interleaved C and jit function calls 2013-01-05 16:14:59 -02:00
rpn.ok Correct integer multiplication and add extra test case. 2012-12-03 00:07:29 -02:00
rpn.tst Add jit_ellipis and remove jit_prepare argument. 2012-12-12 22:59:52 -02:00
run-test Add support to test different/alternate code generation setups. 2012-12-14 22:40:08 -02:00
stack.ok Add new test case to check stack integrity on complex stack frames. 2012-12-19 18:07:12 -02:00
stack.tst Add new test case to check stack integrity on complex stack frames. 2012-12-19 18:07:12 -02:00
varargs.ok Add new varargs test and correct related test case failures in all ports. 2012-12-13 18:26:57 -02:00
varargs.tst Add new varargs test and correct related test case failures in all ports. 2012-12-13 18:26:57 -02:00