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:
parent
b64b82ca51
commit
ed5589ce59
28 changed files with 186 additions and 21 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue