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
|
@ -549,6 +549,14 @@ _jit_ellipsis(jit_state_t *_jit)
|
|||
jit_dec_synth();
|
||||
}
|
||||
|
||||
void
|
||||
_jit_va_push(jit_state_t *_jit, jit_int32_t u)
|
||||
{
|
||||
jit_inc_synth_w(va_push, u);
|
||||
jit_pushargr(u);
|
||||
jit_dec_synth();
|
||||
}
|
||||
|
||||
jit_node_t *
|
||||
_jit_arg(jit_state_t *_jit)
|
||||
{
|
||||
|
@ -1885,6 +1893,7 @@ _emit_code(jit_state_t *_jit)
|
|||
vfp_vaarg_d(rn(node->u.w), rn(node->v.w));
|
||||
break;
|
||||
case jit_code_live: case jit_code_ellipsis:
|
||||
case jit_code_va_push:
|
||||
case jit_code_allocai: case jit_code_allocar:
|
||||
case jit_code_arg:
|
||||
case jit_code_arg_f: case jit_code_arg_d:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue