diff --git a/include/lightning.h b/include/lightning.h index d045ca116..aa32581a4 100644 --- a/include/lightning.h +++ b/include/lightning.h @@ -220,6 +220,14 @@ typedef enum { # define jit_putargi(u,v) _jit_putargi(_jit,u,v) jit_code_arg, +#define jit_va_start(u) jit_new_node_w(jit_code_va_start, u) + jit_code_va_start, +#define jit_va_arg(u, v) jit_new_node_ww(jit_code_va_arg, u, v) +#define jit_va_arg_d(u, v) jit_new_node_ww(jit_code_va_arg_d, u, v) + jit_code_va_arg, jit_code_va_arg_d, +#define jit_va_end(u) jit_new_node_w(jit_code_va_end, u) + jit_code_va_end, + #define jit_addr(u,v,w) jit_new_node_www(jit_code_addr,u,v,w) #define jit_addi(u,v,w) jit_new_node_www(jit_code_addi,u,v,w) jit_code_addr, jit_code_addi, @@ -862,15 +870,6 @@ typedef enum { #define jit_movi_d_w(u, v) jit_new_node_wd(jit_code_movi_d_w, u, v) jit_code_x86_retval_f, jit_code_x86_retval_d, - - /* These should be moved/reordered when bumping library major */ - jit_code_va_start, -#define jit_va_start(u) jit_new_node_w(jit_code_va_start, u) - jit_code_va_arg, jit_code_va_arg_d, -#define jit_va_arg(u, v) jit_new_node_ww(jit_code_va_arg, u, v) -#define jit_va_arg_d(u, v) jit_new_node_ww(jit_code_va_arg_d, u, v) - jit_code_va_end, -#define jit_va_end(u) jit_new_node_w(jit_code_va_end, u) jit_code_last_code } jit_code_t; diff --git a/lib/jit_aarch64-sz.c b/lib/jit_aarch64-sz.c index 8b0bfacc2..1918bbecd 100644 --- a/lib/jit_aarch64-sz.c +++ b/lib/jit_aarch64-sz.c @@ -11,6 +11,10 @@ 0, /* label */ 64, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -353,8 +357,4 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_alpha-sz.c b/lib/jit_alpha-sz.c index d4e3ca73e..d6df970bb 100644 --- a/lib/jit_alpha-sz.c +++ b/lib/jit_alpha-sz.c @@ -11,6 +11,10 @@ 0, /* label */ 76, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 32, /* addi */ 12, /* addcr */ @@ -353,8 +357,4 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_arm-sz.c b/lib/jit_arm-sz.c index 53a2367c8..204235d81 100644 --- a/lib/jit_arm-sz.c +++ b/lib/jit_arm-sz.c @@ -12,6 +12,10 @@ 0, /* label */ 26, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -354,10 +358,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __ARM_PCS_VFP */ #endif /* __WORDSIZE */ @@ -374,6 +374,10 @@ 0, /* label */ 18, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 8, /* addi */ 4, /* addcr */ @@ -716,9 +720,5 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __ARM_PCS_VFP */ #endif /* __WORDSIZE */ diff --git a/lib/jit_hppa-sz.c b/lib/jit_hppa-sz.c index 55387abef..cadd31252 100644 --- a/lib/jit_hppa-sz.c +++ b/lib/jit_hppa-sz.c @@ -11,6 +11,10 @@ 0, /* label */ 64, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -353,8 +357,4 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_ia64-sz.c b/lib/jit_ia64-sz.c index 8017a544b..9e953ac84 100644 --- a/lib/jit_ia64-sz.c +++ b/lib/jit_ia64-sz.c @@ -11,6 +11,10 @@ 48, /* label */ 128, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 16, /* addr */ 32, /* addi */ 48, /* addcr */ @@ -353,8 +357,4 @@ 32, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_mips-sz.c b/lib/jit_mips-sz.c index 1576a314a..8e30a680c 100644 --- a/lib/jit_mips-sz.c +++ b/lib/jit_mips-sz.c @@ -12,6 +12,10 @@ 0, /* label */ 44, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 12, /* addcr */ @@ -354,10 +358,6 @@ 12, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* NEW_ABI */ #endif /* __WORDSIZE */ @@ -374,6 +374,10 @@ 0, /* label */ 96, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 12, /* addcr */ @@ -716,10 +720,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* NEW_ABI */ #endif /* __WORDSIZE */ @@ -735,6 +735,10 @@ 0, /* label */ 44, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 28, /* addi */ 12, /* addcr */ @@ -1077,8 +1081,4 @@ 12, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_names.c b/lib/jit_names.c index f96342eb8..02cb8db8d 100644 --- a/lib/jit_names.c +++ b/lib/jit_names.c @@ -25,6 +25,9 @@ static char *code_name[] = { "label", "prolog", "arg", + "va_start", + "va_arg", "va_arg_d", + "va_end", "addr", "addi", "addcr", "addci", "addxr", "addxi", @@ -201,7 +204,4 @@ static char *code_name[] = { "movr_d_ww", "movi_d_ww", "movr_d_w", "movi_d_w", "x86_retval_f", "x86_retval_d", - "va_start", - "va_arg", "va_arg_d", - "va_end", }; diff --git a/lib/jit_ppc-sz.c b/lib/jit_ppc-sz.c index 33a6ef65c..8974c7fca 100644 --- a/lib/jit_ppc-sz.c +++ b/lib/jit_ppc-sz.c @@ -12,6 +12,10 @@ 0, /* label */ 44, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -354,10 +358,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __ppc__ */ #endif /* __WORDSIZE */ @@ -374,6 +374,10 @@ 0, /* label */ 72, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -716,10 +720,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __powerpc__ */ #endif /* __WORDSIZE */ @@ -736,6 +736,10 @@ 0, /* label */ 72, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 28, /* addi */ 4, /* addcr */ @@ -1084,9 +1088,5 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __powerpc__ */ #endif /* __WORDSIZE */ diff --git a/lib/jit_s390-sz.c b/lib/jit_s390-sz.c index c3b09c5cc..6ca5e64c8 100644 --- a/lib/jit_s390-sz.c +++ b/lib/jit_s390-sz.c @@ -11,6 +11,10 @@ 2, /* label */ 38, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -353,10 +357,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ #if __WORDSIZE == 64 @@ -371,6 +371,10 @@ 2, /* label */ 38, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 8, /* addr */ 24, /* addi */ 8, /* addcr */ @@ -713,8 +717,4 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_sparc-sz.c b/lib/jit_sparc-sz.c index 5431dc3b6..f062ae098 100644 --- a/lib/jit_sparc-sz.c +++ b/lib/jit_sparc-sz.c @@ -11,6 +11,10 @@ 0, /* label */ 16, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 12, /* addi */ 4, /* addcr */ @@ -353,8 +357,4 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #endif /* __WORDSIZE */ diff --git a/lib/jit_x86-sz.c b/lib/jit_x86-sz.c index c6e4ebd98..d634db45a 100644 --- a/lib/jit_x86-sz.c +++ b/lib/jit_x86-sz.c @@ -11,6 +11,10 @@ 3, /* label */ 34, /* prolog */ 0, /* arg */ + 3, /* va_start */ + 5, /* va_arg */ + 7, /* va_arg_d */ + 0, /* va_end */ 3, /* addr */ 6, /* addi */ 4, /* addcr */ @@ -353,10 +357,6 @@ 0, /* movi_d_w */ 10, /* x86_retval_f */ 10, /* x86_retval_d */ - 3, /* va_start */ - 5, /* va_arg */ - 7, /* va_arg_d */ - 0, /* va_end */ #endif /* __X32 */ #if __X64 @@ -372,6 +372,10 @@ 7, /* label */ 71, /* prolog */ 0, /* arg */ + 0, /* va_start */ + 0, /* va_arg */ + 0, /* va_arg_d */ + 0, /* va_end */ 4, /* addr */ 13, /* addi */ 6, /* addcr */ @@ -714,10 +718,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ #else # if __X64_32 @@ -732,6 +732,10 @@ 3, /* label */ 108, /* prolog */ 0, /* arg */ + 41, /* va_start */ + 45, /* va_arg */ + 54, /* va_arg_d */ + 0, /* va_end */ 5, /* addr */ 7, /* addi */ 6, /* addcr */ @@ -1074,10 +1078,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 41, /* va_start */ - 45, /* va_arg */ - 54, /* va_arg_d */ - 0, /* va_end */ # else #define JIT_INSTR_MAX 115 @@ -1091,6 +1091,10 @@ 7, /* label */ 115, /* prolog */ 0, /* arg */ + 42, /* va_start */ + 41, /* va_arg */ + 50, /* va_arg_d */ + 0, /* va_end */ 5, /* addr */ 13, /* addi */ 6, /* addcr */ @@ -1433,10 +1437,6 @@ 0, /* movi_d_w */ 0, /* x86_retval_f */ 0, /* x86_retval_d */ - 42, /* va_start */ - 41, /* va_arg */ - 50, /* va_arg_d */ - 0, /* va_end */ #endif /* __CYGWIN__ */ # endif /* __X64_32 */ #endif /* __X64 */