1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-18 18:40:22 +02:00

Build and pass all test cases on Alpha Linux

* check/lightning.c, include/lightning.h: Add the new jit_va_push
	interface. That should be called when passing a va_list to a C
	function. This is required because on Alpha a va_list is passed
	by value, and lightning does not know about data types, so, cannot
	understand it is pushing a va_list as argument.

	* lib/jit_names.c, lib/lightning.c: Minor changes for the new
	jit_code_va_push.

	* check/cva_list.c: Update only test case using jit_va_push, to
	pass a va_list to a C function.

	doc/body.texi: Better documentation of the varargs interface.

	* jit_alpha.c, jit_alpha-cpu.c: Update to properly push a
	C va_list and correctly calculate varargs offset.

	* lib/jit_aarch64-sz.c, lib/jit_aarch64.c, lib/jit_alpha-sz.c,
	lib/jit_arm-sz.c, lib/jit_arm.c, lib/jit_hppa-sz.c, lib/jit_hppa.c,
	lib/jit_ia64-sz.c, lib/jit_ia64.c, lib/jit_mips-sz.c, lib/jit_mips.c,
	lib/jit_ppc-sz.c, lib/jit_ppc.c, lib/jit_s390-sz.c, lib/jit_s390.c,
	lib/jit_sparc-sz.c, lib/jit_sparc.c, lib/jit_x86-sz.c, lib/jit_x86.c:
	Update for the new jit_va_push interface.
This commit is contained in:
Paulo Andrade 2018-02-26 09:48:50 -03:00
parent b64b82ca51
commit ed5589ce59
28 changed files with 186 additions and 21 deletions

View file

@ -2689,7 +2689,10 @@ _vastart(jit_state_t *_jit, jit_int32_t r0)
stxi(offsetof(jit_va_list_t, base), r0, rn(reg));
/* Initialize the offset field */
movi(rn(reg), _jitc->function->vagp * 8);
if (_jitc->function.vagp < 6)
movi(rn(reg), _jitc->function->vagp * 8);
else
movi(rn(reg), _jitc->function->self.size - (stack_framesize - 48));
stxi(offsetof(jit_va_list_t, offset), r0, rn(reg));
jit_unget_reg(reg);