From 3c76115aecb7ab2cb6f9cd39b79938f3044ef6cc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 10:48:00 +0100 Subject: [PATCH 01/78] Update version.texi --- doc/version.texi | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/version.texi b/doc/version.texi index 1d4723489..fb8684c24 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 4 September 2017 -@set UPDATED-MONTH September 2017 -@set EDITION 2.1.1 -@set VERSION 2.1.1 +@set UPDATED 18 June 2018 +@set UPDATED-MONTH June 2018 +@set EDITION 2.1.2 +@set VERSION 2.1.2 From 549dc50cfdc6575844739b9baa1553533c9797df Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:16:01 +0100 Subject: [PATCH 02/78] Update .gitignore --- .gitignore | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 62ca42aa8..f75e84714 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,12 @@ +.deps +.libs +*.o +*.lo +*.la +* autom4te.cache aclocal.m4 +compile depcomp INSTALL Makefile @@ -20,9 +26,6 @@ missing size stamp-h1 test-driver -check/.deps -doc/.deps -lib/.deps m4/libtool.m4 m4/lt~obsolete.m4 m4/ltoptions.m4 @@ -31,3 +34,73 @@ m4/ltversion.m4 doc/mdate-sh doc/texinfo.tex lightning.pc +doc/fact +doc/ifib +doc/incr +doc/printf +doc/rfib +doc/rpn +check/*.log +check/*.trs +check/*.nodata +check/3to2 +check/add +check/align +check/allocai +check/allocar +check/all.tst +check/alu_add +check/alu_and +check/alu_com +check/alu_div +check/alu_lsh +check/alu_mul +check/alu_neg +check/alu_or +check/alu_rem +check/alu_rsb +check/alu_rsh +check/alu_sub +check/alux_add +check/alu_xor +check/alux_sub +check/bp +check/branch +check/call +check/carg +check/carry +check/ccall +check/clobber +check/ctramp +check/cva_list +check/cvt +check/divi +check/fib +check/float +check/fop_abs +check/fop_sqrt +check/hton +check/hton.ok +check/jmpr +check/ldsti +check/ldstr +check/ldstr-c +check/ldstxi +check/ldstxi-c +check/ldstxr +check/ldstxr-c +check/lightning +check/nodata +check/put +check/qalu_div +check/qalu_mul +check/range +check/ranger +check/ret +check/rpn +check/self +check/setcode +check/stack +check/tramp +check/va_list +check/varargs From d90a545a5829b7cf45be279ca652be0b83d9921f Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sat, 30 Jun 2018 11:14:25 +0200 Subject: [PATCH 03/78] Strip "get-jit-size" feature from lightning. * libguile/lightning/Makefile.am: * libguile/lightning/configure.ac: * libguile/lightning/size.c: Remove devel-only "get-jit-size" feature. --- Makefile.am | 21 +--------- configure.ac | 9 +--- size.c | 115 --------------------------------------------------- 3 files changed, 2 insertions(+), 143 deletions(-) delete mode 100644 size.c diff --git a/Makefile.am b/Makefile.am index e9114cb85..7903efd61 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc. +# Copyright 2000, 2001, 2002, 2012-2018 Free Software Foundation, Inc. # # This file is part of GNU lightning. # @@ -24,22 +24,3 @@ SUBDIRS = \ pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = lightning.pc - -if get_jit_size -JIT_SIZE_PATH = "$(top_builddir)/jit_$(cpu)-sz.c" -AM_CPPFLAGS=-DGET_JIT_SIZE=1 -DJIT_SIZE_PATH='$(JIT_SIZE_PATH)' -AM_CFLAGS = -I$(top_srcdir)/include -D_GNU_SOURCE $(LIGHTNING_CFLAGS) - -noinst_PROGRAMS = size -size_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -size_SOURCES = size.c - -get_jit_size:: $(JIT_SIZE_PATH) - -$(JIT_SIZE_PATH): - make clean - make CFLAGS='-O0 -g3' check - $(top_builddir)/size - -CLEANFILES = $(JIT_SIZE_PATH) -endif diff --git a/configure.ac b/configure.ac index 34dc02f35..cb6b8d535 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ dnl -dnl Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc. +dnl Copyright 2000, 2001, 2002, 2012-2018 Free Software Foundation, Inc. dnl dnl This file is part of GNU lightning. dnl @@ -135,13 +135,6 @@ else DEBUG=no fi -# This option is only useful during development. -AC_ARG_ENABLE(devel-get-jit-size, - AS_HELP_STRING([--enable-devel-get-jit-size], - [Devel mode to regenerate jit size information]), - [GET_JIT_SIZE=$enableval], [GET_JIT_SIZE=no]) -AM_CONDITIONAL(get_jit_size, [test $GET_JIT_SIZE = yes]) - case "$host_os" in *bsd*|osf*) SHLIB="" ;; *hpux*) SHLIB="-ldld" ;; diff --git a/size.c b/size.c deleted file mode 100644 index 1fd45c464..000000000 --- a/size.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include -#include -#include -#include "lib/jit_names.c" - -jit_int16_t _szs[jit_code_last_code]; - -int -main(int argc, char *argv[]) -{ - FILE *fp; - jit_word_t offset; - int code, size, max; - - if ((fp = fopen(JIT_SIZE_PATH, "r")) == NULL) - exit(-1); - while (fscanf(fp, "%d %d\n", &code, &size) == 2) { - if (_szs[code] < size) - _szs[code] = size; - } - fclose(fp); - - max = 0; - for (offset = 0; offset < jit_code_last_code; offset++) - if (max < _szs[offset]) - max = _szs[offset]; - - if ((fp = fopen(JIT_SIZE_PATH, "w")) == NULL) - exit(-1); - - -#if __X64 || __X32 -# if __X64 - fprintf(fp, "#if __X64\n"); -# if __X64_32 - fprintf(fp, "# if __X64_32\n"); -# else - fprintf(fp, "# if !__X64_32\n"); -# endif -# else - fprintf(fp, "#if __X32\n"); -# endif -#else - fprintf(fp, "#if __WORDSIZE == %d\n", __WORDSIZE); -#endif -#if defined(__arm__) -# if defined(__ARM_PCS_VFP) - fprintf(fp, "#if defined(__ARM_PCS_VFP)\n"); -# else - fprintf(fp, "#if !defined(__ARM_PCS_VFP)\n"); -# endif -#elif defined(__mips__) -# if __WORDSIZE == 32 -# if NEW_ABI - fprintf(fp, "#if NEW_ABI\n"); -# else - fprintf(fp, "#if !NEW_ABI\n"); -# endif -# endif -#elif defined(__ppc__) - fprintf(fp, "#if defined(__ppc__)\n"); -#elif defined(__powerpc__) - fprintf(fp, "#if defined(__powerpc__)\n"); - fprintf(fp, "#if __BYTE_ORDER == %s\n", - __BYTE_ORDER == __BIG_ENDIAN ? "__BIG_ENDIAN" : "__LITTLE_ENDIAN"); -#endif - fprintf(fp, "#define JIT_INSTR_MAX %d\n", max); - for (offset = 0; offset < jit_code_last_code; offset++) - fprintf(fp, " %d, /* %s */\n", _szs[offset], code_name[offset]); -#if defined(__arm__) - fprintf(fp, "#endif /* __ARM_PCS_VFP */\n"); -#elif defined(__mips__) -# if __WORDSIZE == 32 - fprintf(fp, "#endif /* NEW_ABI */\n"); -# endif -#elif defined(__ppc__) - fprintf(fp, "#endif /* __ppc__ */\n"); -#elif defined(__powerpc__) - fprintf(fp, "#endif /* __BYTE_ORDER */\n"); - fprintf(fp, "#endif /* __powerpc__ */\n"); -#endif -#if __X64 || __X32 -# if __X64 - fprintf(fp, "# endif /* __X64_32 */\n"); - fprintf(fp, "#endif /* __X64 */\n"); -# else - fprintf(fp, "#endif /* __X32 */\n"); -# endif -#else - fprintf(fp, "#endif /* __WORDSIZE */\n"); -#endif - - fclose(fp); - - return (0); -} From 423d048b2565f460e4193bf5690507ece21fb540 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:33:58 +0100 Subject: [PATCH 04/78] Remove example .c files from documentation --- doc/fact.c | 75 ---------------------------------------- doc/ifib.c | 49 --------------------------- doc/incr.c | 31 ----------------- doc/printf.c | 40 ---------------------- doc/rfib.c | 53 ----------------------------- doc/rpn.c | 96 ---------------------------------------------------- 6 files changed, 344 deletions(-) delete mode 100644 doc/fact.c delete mode 100644 doc/ifib.c delete mode 100644 doc/incr.c delete mode 100644 doc/printf.c delete mode 100644 doc/rfib.c delete mode 100644 doc/rpn.c diff --git a/doc/fact.c b/doc/fact.c deleted file mode 100644 index 375905b81..000000000 --- a/doc/fact.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include - -static jit_state_t *_jit; - -typedef long (*pwfw_t)(long); /* Pointer to Long Function of Long */ - -int main(int argc, char *argv[]) -{ - pwfw_t factorial; - long arg; - jit_node_t *ac; /* Accumulator */ - jit_node_t *in; /* Argument */ - jit_node_t *call; - jit_node_t *fact; - jit_node_t *jump; - jit_node_t *fact_entry; - jit_node_t *fact_out; - - init_jit(argv[0]); - _jit = jit_new_state(); - - /* declare a forward label */ - fact = jit_forward(); - - jit_prolog(); /* Entry point of the factorial function */ - in = jit_arg(); /* Receive an integer argument */ - jit_getarg(JIT_R0, in); /* Move argument to RO */ - jit_prepare(); - jit_pushargi(1); /* This is the accumulator */ - jit_pushargr(JIT_R0); /* This is the argument */ - call = jit_finishi(NULL); /* Call the tail call optimized function */ - jit_patch_at(call, fact); /* Patch call to forward defined function */ - /* the above could have been written as: - * jit_patch_at(jit_finishi(NULL), fact); - */ - jit_retval(JIT_R0); /* Fetch the result */ - jit_retr(JIT_R0); /* Return it */ - jit_epilog(); /* Epilog *before* label before prolog */ - - /* define the forward label */ - jit_link(fact); /* Entry point of the helper function */ - jit_prolog(); - jit_frame(16); /* Reserve 16 bytes in the stack */ - fact_entry = jit_label(); /* This is the tail call entry point */ - ac = jit_arg(); /* The accumulator is the first argument */ - in = jit_arg(); /* The factorial argument */ - jit_getarg(JIT_R0, ac); /* Move the accumulator to R0 */ - jit_getarg(JIT_R1, in); /* Move the argument to R1 */ - fact_out = jit_blei(JIT_R1, 1); /* Done if argument is one or less */ - jit_mulr(JIT_R0, JIT_R0, JIT_R1); /* accumulator *= argument */ - jit_putargr(JIT_R0, ac); /* Update the accumulator */ - jit_subi(JIT_R1, JIT_R1, 1); /* argument -= 1 */ - jit_putargr(JIT_R1, in); /* Update the argument */ - jump = jit_jmpi(); - jit_patch_at(jump, fact_entry); /* Tail Call Optimize it! */ - jit_patch(fact_out); - jit_retr(JIT_R0); /* Return the accumulator */ - - factorial = jit_emit(); - /* no need to query information about resolved addresses */ - jit_clear_state(); - - if (argc == 2) - arg = atoi(argv[1]); - else - arg = 5; - - /* call the generated code */ - printf("factorial(%ld) = %ld\n", arg, factorial(arg)); - /* release all memory associated with the _jit identifier */ - jit_destroy_state(); - finish_jit(); - return 0; -} diff --git a/doc/ifib.c b/doc/ifib.c deleted file mode 100644 index 745c80b33..000000000 --- a/doc/ifib.c +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); /* Pointer to Int Function of Int */ - -int main(int argc, char *argv[]) -{ - pifi fib; - jit_node_t *in; /* offset of the argument */ - jit_node_t *ref; /* to patch the forward reference */ - jit_node_t *zero; /* to patch the forward reference */ - jit_node_t *jump; /* jump to start of loop */ - jit_node_t *loop; /* start of the loop */ - - init_jit(argv[0]); - _jit = jit_new_state(); - - jit_prolog (); - in = jit_arg (); - jit_getarg (JIT_R0, in); /* R0 = n */ - zero = jit_beqi (JIT_R0, 0); - jit_movr (JIT_R1, JIT_R0); - jit_movi (JIT_R0, 1); - ref = jit_blei (JIT_R1, 2); - jit_subi (JIT_R2, JIT_R1, 2); - jit_movr (JIT_R1, JIT_R0); - - loop= jit_label(); - jit_subi (JIT_R2, JIT_R2, 1); /* decr. counter */ - jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ - jit_addr (JIT_R0, JIT_R0, JIT_R1); /* R0 = R0 + R1 */ - jit_movr (JIT_R1, JIT_V0); /* R1 = V0 */ - jump= jit_bnei (JIT_R2, 0); /* if (R2) goto loop; */ - jit_patch_at(jump, loop); - - jit_patch(ref); /* patch forward jump */ - jit_patch(zero); /* patch forward jump */ - jit_retr (JIT_R0); - - /* call the generated code, passing 36 as an argument */ - fib = jit_emit(); - jit_clear_state(); - printf("fib(%d) = %d\n", 36, fib(36)); - jit_destroy_state(); - finish_jit(); - return 0; -} diff --git a/doc/incr.c b/doc/incr.c deleted file mode 100644 index 88859a873..000000000 --- a/doc/incr.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); /* Pointer to Int Function of Int */ - -int main(int argc, char *argv[]) -{ - jit_node_t *in; - pifi incr; - - init_jit(argv[0]); - _jit = jit_new_state(); - - jit_prolog(); /* @t{ prolog } */ - in = jit_arg(); /* @t{ in = arg } */ - jit_getarg(JIT_R0, in); /* @t{ getarg R0 } */ - jit_addi(JIT_R0, JIT_R0, 1); /* @t{ addi R0\, R0\, 1 } */ - jit_retr(JIT_R0); /* @t{ retr R0 } */ - - incr = jit_emit(); - jit_clear_state(); - - /* call the generated code\, passing 5 as an argument */ - printf("%d + 1 = %d\n", 5, incr(5)); - - jit_destroy_state(); - finish_jit(); - return 0; -} diff --git a/doc/printf.c b/doc/printf.c deleted file mode 100644 index 85485412f..000000000 --- a/doc/printf.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include - -static jit_state_t *_jit; - -typedef void (*pvfi)(int); /* Pointer to Void Function of Int */ - -int main(int argc, char *argv[]) -{ - pvfi myFunction; /* ptr to generated code */ - jit_node_t *start, *end; /* a couple of labels */ - jit_node_t *in; /* to get the argument */ - - init_jit(argv[0]); - _jit = jit_new_state(); - - start = jit_note(__FILE__, __LINE__); - jit_prolog(); - in = jit_arg(); - jit_getarg(JIT_R1, in); - jit_pushargi((jit_word_t)"generated %d bytes\n"); - jit_ellipsis(); - jit_pushargr(JIT_R1); - jit_finishi(printf); - jit_ret(); - jit_epilog(); - end = jit_note(__FILE__, __LINE__); - - myFunction = jit_emit(); - - /* call the generated code, passing its size as argument */ - myFunction((char*)jit_address(end) - (char*)jit_address(start)); - jit_clear_state(); - - jit_disassemble(); - - jit_destroy_state(); - finish_jit(); - return 0; -} diff --git a/doc/rfib.c b/doc/rfib.c deleted file mode 100644 index f14da4243..000000000 --- a/doc/rfib.c +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); /* Pointer to Int Function of Int */ - -int main(int argc, char *argv[]) -{ - pifi fib; - jit_node_t *label; - jit_node_t *call; - jit_node_t *in; /* offset of the argument */ - jit_node_t *ref; /* to patch the forward reference */ - jit_node_t *zero; /* to patch the forward reference */ - - init_jit(argv[0]); - _jit = jit_new_state(); - - label = jit_label(); - jit_prolog (); - in = jit_arg (); - jit_getarg (JIT_R0, in); /* R0 = n */ - zero = jit_beqi (JIT_R0, 0); - jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ - jit_movi (JIT_R0, 1); - ref = jit_blei (JIT_V0, 2); - jit_subi (JIT_V1, JIT_V0, 1); /* V1 = n-1 */ - jit_subi (JIT_V2, JIT_V0, 2); /* V2 = n-2 */ - jit_prepare(); - jit_pushargr(JIT_V1); - call = jit_finishi(NULL); - jit_patch_at(call, label); - jit_retval(JIT_V1); /* V1 = fib(n-1) */ - jit_prepare(); - jit_pushargr(JIT_V2); - call = jit_finishi(NULL); - jit_patch_at(call, label); - jit_retval(JIT_R0); /* R0 = fib(n-2) */ - jit_addr(JIT_R0, JIT_R0, JIT_V1); /* R0 = R0 + V1 */ - - jit_patch(ref); /* patch jump */ - jit_patch(zero); /* patch jump */ - jit_retr(JIT_R0); - - /* call the generated code, passing 32 as an argument */ - fib = jit_emit(); - jit_clear_state(); - printf("fib(%d) = %d\n", 32, fib(32)); - jit_destroy_state(); - finish_jit(); - return 0; -} diff --git a/doc/rpn.c b/doc/rpn.c deleted file mode 100644 index 813148481..000000000 --- a/doc/rpn.c +++ /dev/null @@ -1,96 +0,0 @@ -#include -#include - -typedef int (*pifi)(int); /* Pointer to Int Function of Int */ - -static jit_state_t *_jit; - -void stack_push(int reg, int *sp) -{ - jit_stxi_i (*sp, JIT_FP, reg); - *sp += sizeof (int); -} - -void stack_pop(int reg, int *sp) -{ - *sp -= sizeof (int); - jit_ldxi_i (reg, JIT_FP, *sp); -} - -jit_node_t *compile_rpn(char *expr) -{ - jit_node_t *in, *fn; - int stack_base, stack_ptr; - - fn = jit_note(NULL, 0); - jit_prolog(); - in = jit_arg(); - stack_ptr = stack_base = jit_allocai (32 * sizeof (int)); - - jit_getarg_i(JIT_R2, in); - - while (*expr) { - char buf[32]; - int n; - if (sscanf(expr, "%[0-9]%n", buf, &n)) { - expr += n - 1; - stack_push(JIT_R0, &stack_ptr); - jit_movi(JIT_R0, atoi(buf)); - } else if (*expr == 'x') { - stack_push(JIT_R0, &stack_ptr); - jit_movr(JIT_R0, JIT_R2); - } else if (*expr == '+') { - stack_pop(JIT_R1, &stack_ptr); - jit_addr(JIT_R0, JIT_R1, JIT_R0); - } else if (*expr == '-') { - stack_pop(JIT_R1, &stack_ptr); - jit_subr(JIT_R0, JIT_R1, JIT_R0); - } else if (*expr == '*') { - stack_pop(JIT_R1, &stack_ptr); - jit_mulr(JIT_R0, JIT_R1, JIT_R0); - } else if (*expr == '/') { - stack_pop(JIT_R1, &stack_ptr); - jit_divr(JIT_R0, JIT_R1, JIT_R0); - } else { - fprintf(stderr, "cannot compile: %s\n", expr); - abort(); - } - ++expr; - } - jit_retr(JIT_R0); - jit_epilog(); - return fn; -} - -int main(int argc, char *argv[]) -{ - jit_node_t *nc, *nf; - pifi c2f, f2c; - int i; - - init_jit(argv[0]); - _jit = jit_new_state(); - - nc = compile_rpn("32x9*5/+"); - nf = compile_rpn("x32-5*9/"); - (void)jit_emit(); - c2f = (pifi)jit_address(nc); - f2c = (pifi)jit_address(nf); - jit_clear_state(); - - printf("\nC:"); - for (i = 0; i <= 100; i += 10) printf("%3d ", i); - printf("\nF:"); - for (i = 0; i <= 100; i += 10) printf("%3d ", c2f(i)); - printf("\n"); - - printf("\nF:"); - for (i = 32; i <= 212; i += 18) printf("%3d ", i); - printf("\nC:"); - for (i = 32; i <= 212; i += 18) printf("%3d ", f2c(i)); - printf("\n"); - - jit_destroy_state(); - finish_jit(); - return 0; -} From 414f530c1dac1bda58556e5477b578aa2841ddeb Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:35:01 +0100 Subject: [PATCH 05/78] Inline body.texi and version.texi into lightning.texi --- doc/body.texi | 1679 ------------------------------------------- doc/lightning.texi | 1686 +++++++++++++++++++++++++++++++++++++++++++- doc/version.texi | 4 - 3 files changed, 1684 insertions(+), 1685 deletions(-) delete mode 100644 doc/body.texi delete mode 100644 doc/version.texi diff --git a/doc/body.texi b/doc/body.texi deleted file mode 100644 index 60f569218..000000000 --- a/doc/body.texi +++ /dev/null @@ -1,1679 +0,0 @@ -@ifnottex -@dircategory Software development -@direntry -* lightning: (lightning). Library for dynamic code generation. -@end direntry -@end ifnottex - -@ifnottex -@node Top -@top @lightning{} - -@iftex -@macro comma -@verbatim{|,|} -@end macro -@end iftex - -@ifnottex -@macro comma -@verb{|,|} -@end macro -@end ifnottex - -This document describes @value{TOPIC} the @lightning{} library for -dynamic code generation. - -@menu -* Overview:: What GNU lightning is -* Installation:: Configuring and installing GNU lightning -* The instruction set:: The RISC instruction set used in GNU lightning -* GNU lightning examples:: GNU lightning's examples -* Reentrancy:: Re-entrant usage of GNU lightning -* Customizations:: Advanced code generation customizations -* Acknowledgements:: Acknowledgements for GNU lightning -@end menu -@end ifnottex - -@node Overview -@chapter Introduction to @lightning{} - -@iftex -This document describes @value{TOPIC} the @lightning{} library for -dynamic code generation. -@end iftex - -Dynamic code generation is the generation of machine code -at runtime. It is typically used to strip a layer of interpretation -by allowing compilation to occur at runtime. One of the most -well-known applications of dynamic code generation is perhaps that -of interpreters that compile source code to an intermediate bytecode -form, which is then recompiled to machine code at run-time: this -approach effectively combines the portability of bytecode -representations with the speed of machine code. Another common -application of dynamic code generation is in the field of hardware -simulators and binary emulators, which can use the same techniques -to translate simulated instructions to the instructions of the -underlying machine. - -Yet other applications come to mind: for example, windowing -@dfn{bitblt} operations, matrix manipulations, and network packet -filters. Albeit very powerful and relatively well known within the -compiler community, dynamic code generation techniques are rarely -exploited to their full potential and, with the exception of the -two applications described above, have remained curiosities because -of their portability and functionality barriers: binary instructions -are generated, so programs using dynamic code generation must be -retargeted for each machine; in addition, coding a run-time code -generator is a tedious and error-prone task more than a difficult one. - -@lightning{} provides a portable, fast and easily retargetable dynamic -code generation system. - -To be portable, @lightning{} abstracts over current architectures' -quirks and unorthogonalities. The interface that it exposes to is that -of a standardized RISC architecture loosely based on the SPARC and MIPS -chips. There are a few general-purpose registers (six, not including -those used to receive and pass parameters between subroutines), and -arithmetic operations involve three operands---either three registers -or two registers and an arbitrarily sized immediate value. - -On one hand, this architecture is general enough that it is possible to -generate pretty efficient code even on CISC architectures such as the -Intel x86 or the Motorola 68k families. On the other hand, it matches -real architectures closely enough that, most of the time, the -compiler's constant folding pass ends up generating code which -assembles machine instructions without further tests. - -@node Installation -@chapter Configuring and installing @lightning{} - -The first thing to do to use @lightning{} is to configure the -program, picking the set of macros to be used on the host -architecture; this configuration is automatically performed by -the @file{configure} shell script; to run it, merely type: -@example - ./configure -@end example - -@lightning{} supports the @code{--enable-disassembler} option, that -enables linking to GNU binutils and optionally print human readable -disassembly of the jit code. This option can be disabled by the -@code{--disable-disassembler} option. - -Another option that @file{configure} accepts is -@code{--enable-assertions}, which enables several consistency checks in -the run-time assemblers. These are not usually needed, so you can -decide to simply forget about it; also remember that these consistency -checks tend to slow down your code generator. - -After you've configured @lightning{}, run @file{make} as usual. - -@lightning{} has an extensive set of tests to validate it is working -correctly in the build host. To test it run: -@example - make check -@end example - -The next important step is: -@example - make install -@end example - -This ends the process of installing @lightning{}. - -@node The instruction set -@chapter @lightning{}'s instruction set - -@lightning{}'s instruction set was designed by deriving instructions -that closely match those of most existing RISC architectures, or -that can be easily syntesized if absent. Each instruction is composed -of: -@itemize @bullet -@item -an operation, like @code{sub} or @code{mul} - -@item -most times, a register/immediate flag (@code{r} or @code{i}) - -@item -an unsigned modifier (@code{u}), a type identifier or two, when applicable. -@end itemize - -Examples of legal mnemonics are @code{addr} (integer add, with three -register operands) and @code{muli} (integer multiply, with two -register operands and an immediate operand). Each instruction takes -two or three operands; in most cases, one of them can be an immediate -value instead of a register. - -Most @lightning{} integer operations are signed wordsize operations, -with the exception of operations that convert types, or load or store -values to/from memory. When applicable, the types and C types are as -follow: - -@example - _c @r{signed char} - _uc @r{unsigned char} - _s @r{short} - _us @r{unsigned short} - _i @r{int} - _ui @r{unsigned int} - _l @r{long} - _f @r{float} - _d @r{double} -@end example - -Most integer operations do not need a type modifier, and when loading or -storing values to memory there is an alias to the proper operation -using wordsize operands, that is, if ommited, the type is @r{int} on -32-bit architectures and @r{long} on 64-bit architectures. Note -that lightning also expects @code{sizeof(void*)} to match the wordsize. - -When an unsigned operation result differs from the equivalent signed -operation, there is a the @code{_u} modifier. - -There are at least seven integer registers, of which six are -general-purpose, while the last is used to contain the frame pointer -(@code{FP}). The frame pointer can be used to allocate and access local -variables on the stack, using the @code{allocai} or @code{allocar} -instruction. - -Of the general-purpose registers, at least three are guaranteed to be -preserved across function calls (@code{V0}, @code{V1} and -@code{V2}) and at least three are not (@code{R0}, @code{R1} and -@code{R2}). Six registers are not very much, but this -restriction was forced by the need to target CISC architectures -which, like the x86, are poor of registers; anyway, backends can -specify the actual number of available registers with the calls -@code{JIT_R_NUM} (for caller-save registers) and @code{JIT_V_NUM} -(for callee-save registers). - -There are at least six floating-point registers, named @code{F0} to -@code{F5}. These are usually caller-save and are separate from the integer -registers on the supported architectures; on Intel architectures, -in 32 bit mode if SSE2 is not available or use of X87 is forced, -the register stack is mapped to a flat register file. As for the -integer registers, the macro @code{JIT_F_NUM} yields the number of -floating-point registers. - -The complete instruction set follows; as you can see, most non-memory -operations only take integers (either signed or unsigned) as operands; -this was done in order to reduce the instruction set, and because most -architectures only provide word and long word operations on registers. -There are instructions that allow operands to be extended to fit a larger -data type, both in a signed and in an unsigned way. - -@table @b -@item Binary ALU operations -These accept three operands; the last one can be an immediate. -@code{addx} operations must directly follow @code{addc}, and -@code{subx} must follow @code{subc}; otherwise, results are undefined. -Most, if not all, architectures do not support @r{float} or @r{double} -immediate operands; lightning emulates those operations by moving the -immediate to a temporary register and emiting the call with only -register operands. -@example -addr _f _d O1 = O2 + O3 -addi _f _d O1 = O2 + O3 -addxr O1 = O2 + (O3 + carry) -addxi O1 = O2 + (O3 + carry) -addcr O1 = O2 + O3, set carry -addci O1 = O2 + O3, set carry -subr _f _d O1 = O2 - O3 -subi _f _d O1 = O2 - O3 -subxr O1 = O2 - (O3 + carry) -subxi O1 = O2 - (O3 + carry) -subcr O1 = O2 - O3, set carry -subci O1 = O2 - O3, set carry -rsbr _f _d O1 = O3 - O1 -rsbi _f _d O1 = O3 - O1 -mulr _f _d O1 = O2 * O3 -muli _f _d O1 = O2 * O3 -divr _u _f _d O1 = O2 / O3 -divi _u _f _d O1 = O2 / O3 -remr _u O1 = O2 % O3 -remi _u O1 = O2 % O3 -andr O1 = O2 & O3 -andi O1 = O2 & O3 -orr O1 = O2 | O3 -ori O1 = O2 | O3 -xorr O1 = O2 ^ O3 -xori O1 = O2 ^ O3 -lshr O1 = O2 << O3 -lshi O1 = O2 << O3 -rshr _u O1 = O2 >> O3@footnote{The sign bit is propagated unless using the @code{_u} modifier.} -rshi _u O1 = O2 >> O3@footnote{The sign bit is propagated unless using the @code{_u} modifier.} -@end example - -@item Four operand binary ALU operations -These accept two result registers, and two operands; the last one can -be an immediate. The first two arguments cannot be the same register. - -@code{qmul} stores the low word of the result in @code{O1} and the -high word in @code{O2}. For unsigned multiplication, @code{O2} zero -means there was no overflow. For signed multiplication, no overflow -check is based on sign, and can be detected if @code{O2} is zero or -minus one. - -@code{qdiv} stores the quotient in @code{O1} and the remainder in -@code{O2}. It can be used as quick way to check if a division is -exact, in which case the remainder is zero. - -@example -qmulr _u O1 O2 = O3 * O4 -qmuli _u O1 O2 = O3 * O4 -qdivr _u O1 O2 = O3 / O4 -qdivi _u O1 O2 = O3 / O4 -@end example - -@item Unary ALU operations -These accept two operands, both of which must be registers. -@example -negr _f _d O1 = -O2 -comr O1 = ~O2 -@end example - -These unary ALU operations are only defined for float operands. -@example -absr _f _d O1 = fabs(O2) -sqrtr O1 = sqrt(O2) -@end example - -Besides requiring the @code{r} modifier, there are no unary operations -with an immediate operand. - -@item Compare instructions -These accept three operands; again, the last can be an immediate. -The last two operands are compared, and the first operand, that must be -an integer register, is set to either 0 or 1, according to whether the -given condition was met or not. - -The conditions given below are for the standard behavior of C, -where the ``unordered'' comparison result is mapped to false. - -@example -ltr _u _f _d O1 = (O2 < O3) -lti _u _f _d O1 = (O2 < O3) -ler _u _f _d O1 = (O2 <= O3) -lei _u _f _d O1 = (O2 <= O3) -gtr _u _f _d O1 = (O2 > O3) -gti _u _f _d O1 = (O2 > O3) -ger _u _f _d O1 = (O2 >= O3) -gei _u _f _d O1 = (O2 >= O3) -eqr _f _d O1 = (O2 == O3) -eqi _f _d O1 = (O2 == O3) -ner _f _d O1 = (O2 != O3) -nei _f _d O1 = (O2 != O3) -unltr _f _d O1 = !(O2 >= O3) -unler _f _d O1 = !(O2 > O3) -ungtr _f _d O1 = !(O2 <= O3) -unger _f _d O1 = !(O2 < O3) -uneqr _f _d O1 = !(O2 < O3) && !(O2 > O3) -ltgtr _f _d O1 = !(O2 >= O3) || !(O2 <= O3) -ordr _f _d O1 = (O2 == O2) && (O3 == O3) -unordr _f _d O1 = (O2 != O2) || (O3 != O3) -@end example - -@item Transfer operations -These accept two operands; for @code{ext} both of them must be -registers, while @code{mov} accepts an immediate value as the second -operand. - -Unlike @code{movr} and @code{movi}, the other instructions are used -to truncate a wordsize operand to a smaller integer data type or to -convert float data types. You can also use @code{extr} to convert an -integer to a floating point value: the usual options are @code{extr_f} -and @code{extr_d}. - -@example -movr _f _d O1 = O2 -movi _f _d O1 = O2 -extr _c _uc _s _us _i _ui _f _d O1 = O2 -truncr _f _d O1 = trunc(O2) -@end example - -In 64-bit architectures it may be required to use @code{truncr_f_i}, -@code{truncr_f_l}, @code{truncr_d_i} and @code{truncr_d_l} to match -the equivalent C code. Only the @code{_i} modifier is available in -32-bit architectures. - -@example -truncr_f_i = O1 = O2 -truncr_f_l = O1 = O2 -truncr_d_i = O1 = O2 -truncr_d_l = O1 = O2 -@end example - -The float conversion operations are @emph{destination first, -source second}, but the order of the types is reversed. This happens -for historical reasons. - -@example -extr_f_d = O1 = O2 -extr_d_f = O1 = O2 -@end example - -@item Network extensions -These accept two operands, both of which must be registers; these -two instructions actually perform the same task, yet they are -assigned to two mnemonics for the sake of convenience and -completeness. As usual, the first operand is the destination and -the second is the source. -The @code{_ul} variant is only available in 64-bit architectures. -@example -htonr _us _ui _ul @r{Host-to-network (big endian) order} -ntohr _us _ui _ul @r{Network-to-host order } -@end example - -@item Load operations -@code{ld} accepts two operands while @code{ldx} accepts three; -in both cases, the last can be either a register or an immediate -value. Values are extended (with or without sign, according to -the data type specification) to fit a whole register. -The @code{_ui} and @code{_l} types are only available in 64-bit -architectures. For convenience, there is a version without a -type modifier for integer or pointer operands that uses the -appropriate wordsize call. -@example -ldr _c _uc _s _us _i _ui _l _f _d O1 = *O2 -ldi _c _uc _s _us _i _ui _l _f _d O1 = *O2 -ldxr _c _uc _s _us _i _ui _l _f _d O1 = *(O2+O3) -ldxi _c _uc _s _us _i _ui _l _f _d O1 = *(O2+O3) -@end example - -@item Store operations -@code{st} accepts two operands while @code{stx} accepts three; in -both cases, the first can be either a register or an immediate -value. Values are sign-extended to fit a whole register. -@example -str _c _uc _s _us _i _ui _l _f _d *O1 = O2 -sti _c _uc _s _us _i _ui _l _f _d *O1 = O2 -stxr _c _uc _s _us _i _ui _l _f _d *(O1+O2) = O3 -stxi _c _uc _s _us _i _ui _l _f _d *(O1+O2) = O3 -@end example -As for the load operations, the @code{_ui} and @code{_l} types are -only available in 64-bit architectures, and for convenience, there -is a version without a type modifier for integer or pointer operands -that uses the appropriate wordsize call. - -@item Argument management -These are: -@example -prepare (not specified) -va_start (not specified) -pushargr _f _d -pushargi _f _d -va_push (not specified) -arg _c _uc _s _us _i _ui _l _f _d -getarg _c _uc _s _us _i _ui _l _f _d -va_arg _d -putargr _f _d -putargi _f _d -ret (not specified) -retr _f _d -reti _f _d -va_end (not specified) -retval _c _uc _s _us _i _ui _l _f _d -epilog (not specified) -@end example -As with other operations that use a type modifier, the @code{_ui} and -@code{_l} types are only available in 64-bit architectures, but there -are operations without a type modifier that alias to the appropriate -integer operation with wordsize operands. - -@code{prepare}, @code{pusharg}, and @code{retval} are used by the caller, -while @code{arg}, @code{getarg} and @code{ret} are used by the callee. -A code snippet that wants to call another procedure and has to pass -arguments must, in order: use the @code{prepare} instruction and use -the @code{pushargr} or @code{pushargi} to push the arguments @strong{in -left to right order}; and use @code{finish} or @code{call} (explained below) -to perform the actual call. - -@code{va_start} returns a @code{C} compatible @code{va_list}. To fetch -arguments, use @code{va_arg} for integers and @code{va_arg_d} for doubles. -@code{va_push} is required when passing a @code{va_list} to another function, -because not all architectures expect it as a single pointer. Known case -is DEC Alpha, that requires it as a structure passed by value. - -@code{arg}, @code{getarg} and @code{putarg} are used by the callee. -@code{arg} is different from other instruction in that it does not -actually generate any code: instead, it is a function which returns -a value to be passed to @code{getarg} or @code{putarg}. @footnote{``Return -a value'' means that @lightning{} code that compile these -instructions return a value when expanded.} You should call -@code{arg} as soon as possible, before any function call or, more -easily, right after the @code{prolog} instructions -(which is treated later). - -@code{getarg} accepts a register argument and a value returned by -@code{arg}, and will move that argument to the register, extending -it (with or without sign, according to the data type specification) -to fit a whole register. These instructions are more intimately -related to the usage of the @lightning{} instruction set in code -that generates other code, so they will be treated more -specifically in @ref{GNU lightning examples, , Generating code at -run-time}. - -@code{putarg} is a mix of @code{getarg} and @code{pusharg} in that -it accepts as first argument a register or immediate, and as -second argument a value returned by @code{arg}. It allows changing, -or restoring an argument to the current function, and is a -construct required to implement tail call optimization. Note that -arguments in registers are very cheap, but will be overwritten -at any moment, including on some operations, for example division, -that on several ports is implemented as a function call. - -Finally, the @code{retval} instruction fetches the return value of a -called function in a register. The @code{retval} instruction takes a -register argument and copies the return value of the previously called -function in that register. A function with a return value should use -@code{retr} or @code{reti} to put the return value in the return register -before returning. @xref{Fibonacci, the Fibonacci numbers}, for an example. - -@code{epilog} is an optional call, that marks the end of a function -body. It is automatically generated by @lightning{} if starting a new -function (what should be done after a @code{ret} call) or finishing -generating jit. -It is very important to note that the fact that @code{epilog} being -optional may cause a common mistake. Consider this: -@example -fun1: - prolog - ... - ret -fun2: - prolog -@end example -Because @code{epilog} is added when finding a new @code{prolog}, -this will cause the @code{fun2} label to actually be before the -return from @code{fun1}. Because @lightning{} will actually -understand it as: -@example -fun1: - prolog - ... - ret -fun2: - epilog - prolog -@end example - -You should observe a few rules when using these macros. First of -all, if calling a varargs function, you should use the @code{ellipsis} -call to mark the position of the ellipsis in the C prototype. - -You should not nest calls to @code{prepare} inside a -@code{prepare/finish} block. Doing this will result in undefined -behavior. Note that for functions with zero arguments you can use -just @code{call}. - -@item Branch instructions -Like @code{arg}, these also return a value which, in this case, -is to be used to compile forward branches as explained in -@ref{Fibonacci, , Fibonacci numbers}. They accept two operands to be -compared; of these, the last can be either a register or an immediate. -They are: -@example -bltr _u _f _d @r{if }(O2 < O3)@r{ goto }O1 -blti _u _f _d @r{if }(O2 < O3)@r{ goto }O1 -bler _u _f _d @r{if }(O2 <= O3)@r{ goto }O1 -blei _u _f _d @r{if }(O2 <= O3)@r{ goto }O1 -bgtr _u _f _d @r{if }(O2 > O3)@r{ goto }O1 -bgti _u _f _d @r{if }(O2 > O3)@r{ goto }O1 -bger _u _f _d @r{if }(O2 >= O3)@r{ goto }O1 -bgei _u _f _d @r{if }(O2 >= O3)@r{ goto }O1 -beqr _f _d @r{if }(O2 == O3)@r{ goto }O1 -beqi _f _d @r{if }(O2 == O3)@r{ goto }O1 -bner _f _d @r{if }(O2 != O3)@r{ goto }O1 -bnei _f _d @r{if }(O2 != O3)@r{ goto }O1 - -bunltr _f _d @r{if }!(O2 >= O3)@r{ goto }O1 -bunler _f _d @r{if }!(O2 > O3)@r{ goto }O1 -bungtr _f _d @r{if }!(O2 <= O3)@r{ goto }O1 -bunger _f _d @r{if }!(O2 < O3)@r{ goto }O1 -buneqr _f _d @r{if }!(O2 < O3) && !(O2 > O3)@r{ goto }O1 -bltgtr _f _d @r{if }!(O2 >= O3) || !(O2 <= O3)@r{ goto }O1 -bordr _f _d @r{if } (O2 == O2) && (O3 == O3)@r{ goto }O1 -bunordr _f _d @r{if }!(O2 != O2) || (O3 != O3)@r{ goto }O1 - -bmsr @r{if }O2 & O3@r{ goto }O1 -bmsi @r{if }O2 & O3@r{ goto }O1 -bmcr @r{if }!(O2 & O3)@r{ goto }O1 -bmci @r{if }!(O2 & O3)@r{ goto }O1@footnote{These mnemonics mean, respectively, @dfn{branch if mask set} and @dfn{branch if mask cleared}.} -boaddr _u O2 += O3@r{, goto }O1@r{ if overflow} -boaddi _u O2 += O3@r{, goto }O1@r{ if overflow} -bxaddr _u O2 += O3@r{, goto }O1@r{ if no overflow} -bxaddi _u O2 += O3@r{, goto }O1@r{ if no overflow} -bosubr _u O2 -= O3@r{, goto }O1@r{ if overflow} -bosubi _u O2 -= O3@r{, goto }O1@r{ if overflow} -bxsubr _u O2 -= O3@r{, goto }O1@r{ if no overflow} -bxsubi _u O2 -= O3@r{, goto }O1@r{ if no overflow} -@end example - -@item Jump and return operations -These accept one argument except @code{ret} and @code{jmpi} which -have none; the difference between @code{finishi} and @code{calli} -is that the latter does not clean the stack from pushed parameters -(if any) and the former must @strong{always} follow a @code{prepare} -instruction. -@example -callr (not specified) @r{function call to register O1} -calli (not specified) @r{function call to immediate O1} -finishr (not specified) @r{function call to register O1} -finishi (not specified) @r{function call to immediate O1} -jmpr (not specified) @r{unconditional jump to register} -jmpi (not specified) @r{unconditional jump} -ret (not specified) @r{return from subroutine} -retr _c _uc _s _us _i _ui _l _f _d -reti _c _uc _s _us _i _ui _l _f _d -retval _c _uc _s _us _i _ui _l _f _d @r{move return value} - @r{to register} -@end example - -Like branch instruction, @code{jmpi} also returns a value which is to -be used to compile forward branches. @xref{Fibonacci, , Fibonacci -numbers}. - -@item Labels -There are 3 @lightning{} instructions to create labels: -@example -label (not specified) @r{simple label} -forward (not specified) @r{forward label} -indirect (not specified) @r{special simple label} -@end example - -@code{label} is normally used as @code{patch_at} argument for backward -jumps. - -@example - jit_node_t *jump, *label; -label = jit_label(); - ... - jump = jit_beqr(JIT_R0, JIT_R1); - jit_patch_at(jump, label); -@end example - -@code{forward} is used to patch code generation before the actual -position of the label is known. - -@example - jit_node_t *jump, *label; -label = jit_forward(); - jump = jit_beqr(JIT_R0, JIT_R1); - jit_patch_at(jump, label); - ... - jit_link(label); -@end example - -@code{indirect} is useful when creating jump tables, and tells -@lightning{} to not optimize out a label that is not the target of -any jump, because an indirect jump may land where it is defined. - -@example - jit_node_t *jump, *label; - ... - jmpr(JIT_R0); @rem{/* may jump to label */} - ... -label = jit_indirect(); -@end example - -@code{indirect} is an special case of @code{note} and @code{name} -because it is a valid argument to @code{address}. - -Note that the usual idiom to write the previous example is -@example - jit_node_t *addr, *jump; -addr = jit_movi(JIT_R0, 0); @rem{/* immediate is ignored */} - ... - jmpr(JIT_R0); - ... - jit_patch(addr); @rem{/* implicit label added */} -@end example - -that automatically binds the implicit label added by @code{patch} with -the @code{movi}, but on some special conditions it is required to create -an "unbound" label. - -@item Function prolog - -These macros are used to set up a function prolog. The @code{allocai} -call accept a single integer argument and returns an offset value -for stack storage access. The @code{allocar} accepts two registers -arguments, the first is set to the offset for stack access, and the -second is the size in bytes argument. - -@example -prolog (not specified) @r{function prolog} -allocai (not specified) @r{reserve space on the stack} -allocar (not specified) @r{allocate space on the stack} -@end example - -@code{allocai} receives the number of bytes to allocate and returns -the offset from the frame pointer register @code{FP} to the base of -the area. - -@code{allocar} receives two register arguments. The first is where -to store the offset from the frame pointer register @code{FP} to the -base of the area. The second argument is the size in bytes. Note -that @code{allocar} is dynamic allocation, and special attention -should be taken when using it. If called in a loop, every iteration -will allocate stack space. Stack space is aligned from 8 to 64 bytes -depending on backend requirements, even if allocating only one byte. -It is advisable to not use it with @code{frame} and @code{tramp}; it -should work with @code{frame} with special care to call only once, -but is not supported if used in @code{tramp}, even if called only -once. - -As a small appetizer, here is a small function that adds 1 to the input -parameter (an @code{int}). I'm using an assembly-like syntax here which -is a bit different from the one used when writing real subroutines with -@lightning{}; the real syntax will be introduced in @xref{GNU lightning -examples, , Generating code at run-time}. - -@example -incr: - prolog -in = arg @rem{! We have an integer argument} - getarg R0, in @rem{! Move it to R0} - addi R0, R0, 1 @rem{! Add 1} - retr R0 @rem{! And return the result} -@end example - -And here is another function which uses the @code{printf} function from -the standard C library to write a number in hexadecimal notation: - -@example -printhex: - prolog -in = arg @rem{! Same as above} - getarg R0, in - prepare @rem{! Begin call sequence for printf} - pushargi "%x" @rem{! Push format string} - ellipsis @rem{! Varargs start here} - pushargr R0 @rem{! Push second argument} - finishi printf @rem{! Call printf} - ret @rem{! Return to caller} -@end example - -@item Trampolines, continuations and tail call optimization - -Frequently it is required to generate jit code that must jump to -code generated later, possibly from another @code{jit_context_t}. -These require compatible stack frames. - -@lightning{} provides two primitives from where trampolines, -continuations and tail call optimization can be implemented. - -@example -frame (not specified) @r{create stack frame} -tramp (not specified) @r{assume stack frame} -@end example - -@code{frame} receives an integer argument@footnote{It is not -automatically computed because it does not know about the -requirement of later generated code.} that defines the size in -bytes for the stack frame of the current, @code{C} callable, -jit function. To calculate this value, a good formula is maximum -number of arguments to any called native function times -eight@footnote{Times eight so that it works for double arguments. -And would not need conditionals for ports that pass arguments in -the stack.}, plus the sum of the arguments to any call to -@code{jit_allocai}. @lightning{} automatically adjusts this value -for any backend specific stack memory it may need, or any -alignment constraint. - -@code{frame} also instructs @lightning{} to save all callee -save registers in the prolog and reload in the epilog. - -@example -main: @rem{! jit entry point} - prolog @rem{! function prolog} - frame 256 @rem{! save all callee save registers and} - @rem{! reserve at least 256 bytes in stack} -main_loop: - ... - jmpi handler @rem{! jumps to external code} - ... - ret @rem{! return to the caller} -@end example - -@code{tramp} differs from @code{frame} only that a prolog and epilog -will not be generated. Note that @code{prolog} must still be used. -The code under @code{tramp} must be ready to be entered with a jump -at the prolog position, and instead of a return, it must end with -a non conditional jump. @code{tramp} exists solely for the fact -that it allows optimizing out prolog and epilog code that would -never be executed. - -@example -handler: @rem{! handler entry point} - prolog @rem{! function prolog} - tramp 256 @rem{! assumes all callee save registers} - @rem{! are saved and there is at least} - @rem{! 256 bytes in stack} - ... - jmpi main_loop @rem{! return to the main loop} -@end example - -@lightning{} only supports Tail Call Optimization using the -@code{tramp} construct. Any other way is not guaranteed to -work on all ports. - -An example of a simple (recursive) tail call optimization: - -@example -factorial: @rem{! Entry point of the factorial function} - prolog -in = arg @rem{! Receive an integer argument} - getarg R0, in @rem{! Move argument to RO} - prepare - pushargi 1 @rem{! This is the accumulator} - pushargr R0 @rem{! This is the argument} - finishi fact @rem{! Call the tail call optimized function} - retval R0 @rem{! Fetch the result} - retr R0 @rem{! Return it} - epilog @rem{! Epilog *before* label before prolog} - -fact: @rem{! Entry point of the helper function} - prolog - frame 16 @rem{! Reserve 16 bytes in the stack} -fact_entry: @rem{! This is the tail call entry point} -ac = arg @rem{! The accumulator is the first argument} -in = arg @rem{! The factorial argument} - getarg R0, ac @rem{! Move the accumulator to R0} - getarg R1, in @rem{! Move the argument to R1} - blei fact_out, R1, 1 @rem{! Done if argument is one or less} - mulr R0, R0, R1 @rem{! accumulator *= argument} - putargr R0, ac @rem{! Update the accumulator} - subi R1, R1, 1 @rem{! argument -= 1} - putargr R1, in @rem{! Update the argument} - jmpi fact_entry @rem{! Tail Call Optimize it!} -fact_out: - retr R0 @rem{! Return the accumulator} -@end example - -@item Predicates -@example -forward_p (not specified) @r{forward label predicate} -indirect_p (not specified) @r{indirect label predicate} -target_p (not specified) @r{used label predicate} -arg_register_p (not specified) @r{argument kind predicate} -callee_save_p (not specified) @r{callee save predicate} -pointer_p (not specified) @r{pointer predicate} -@end example - -@code{forward_p} expects a @code{jit_node_t*} argument, and -returns non zero if it is a forward label reference, that is, -a label returned by @code{forward}, that still needs a -@code{link} call. - -@code{indirect_p} expects a @code{jit_node_t*} argument, and returns -non zero if it is an indirect label reference, that is, a label that -was returned by @code{indirect}. - -@code{target_p} expects a @code{jit_node_t*} argument, that is any -kind of label, and will return non zero if there is at least one -jump or move referencing it. - -@code{arg_register_p} expects a @code{jit_node_t*} argument, that must -have been returned by @code{arg}, @code{arg_f} or @code{arg_d}, and -will return non zero if the argument lives in a register. This call -is useful to know the live range of register arguments, as those -are very fast to read and write, but have volatile values. - -@code{callee_save_p} exects a valid @code{JIT_Rn}, @code{JIT_Vn}, or -@code{JIT_Fn}, and will return non zero if the register is callee -save. This call is useful because on several ports, the @code{JIT_Rn} -and @code{JIT_Fn} registers are actually callee save; no need -to save and load the values when making function calls. - -@code{pointer_p} expects a pointer argument, and will return non -zero if the pointer is inside the generated jit code. Must be -called after @code{jit_emit} and before @code{jit_destroy_state}. -@end table - -@node GNU lightning examples -@chapter Generating code at run-time - -To use @lightning{}, you should include the @file{lightning.h} file that -is put in your include directory by the @samp{make install} command. - -Each of the instructions above translates to a macro or function call. -All you have to do is prepend @code{jit_} (lowercase) to opcode names -and @code{JIT_} (uppercase) to register names. Of course, parameters -are to be put between parentheses. - -This small tutorial presents three examples: - -@iftex -@itemize @bullet -@item -The @code{incr} function found in @ref{The instruction set, , -@lightning{}'s instruction set}: - -@item -A simple function call to @code{printf} - -@item -An RPN calculator. - -@item -Fibonacci numbers -@end itemize -@end iftex -@ifnottex -@menu -* incr:: A function which increments a number by one -* printf:: A simple function call to printf -* RPN calculator:: A more complex example, an RPN calculator -* Fibonacci:: Calculating Fibonacci numbers -@end menu -@end ifnottex - -@node incr -@section A function which increments a number by one - -Let's see how to create and use the sample @code{incr} function created -in @ref{The instruction set, , @lightning{}'s instruction set}: - -@example -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} - -int main(int argc, char *argv[]) -@{ - jit_node_t *in; - pifi incr; - - init_jit(argv[0]); - _jit = jit_new_state(); - - jit_prolog(); @rem{/* @t{ prolog } */} - in = jit_arg(); @rem{/* @t{ in = arg } */} - jit_getarg(JIT_R0, in); @rem{/* @t{ getarg R0 } */} - jit_addi(JIT_R0, JIT_R0, 1); @rem{/* @t{ addi R0@comma{} R0@comma{} 1 } */} - jit_retr(JIT_R0); @rem{/* @t{ retr R0 } */} - - incr = jit_emit(); - jit_clear_state(); - - @rem{/* call the generated code@comma{} passing 5 as an argument */} - printf("%d + 1 = %d\n", 5, incr(5)); - - jit_destroy_state(); - finish_jit(); - return 0; -@} -@end example - -Let's examine the code line by line (well, almost@dots{}): - -@table @t -@item #include -You already know about this. It defines all of @lightning{}'s macros. - -@item static jit_state_t *_jit; -You might wonder about what is @code{jit_state_t}. It is a structure -that stores jit code generation information. The name @code{_jit} is -special, because since multiple jit generators can run at the same -time, you must either @r{#define _jit my_jit_state} or name it -@code{_jit}. - -@item typedef int (*pifi)(int); -Just a handy typedef for a pointer to a function that takes an -@code{int} and returns another. - -@item jit_node_t *in; -Declares a variable to hold an identifier for a function argument. It -is an opaque pointer, that will hold the return of a call to @code{arg} -and be used as argument to @code{getarg}. - -@item pifi incr; -Declares a function pointer variable to a function that receives an -@code{int} and returns an @code{int}. - -@item init_jit(argv[0]); -You must call this function before creating a @code{jit_state_t} -object. This function does global state initialization, and may need -to detect CPU or Operating System features. It receives a string -argument that is later used to read symbols from a shared object using -GNU binutils if disassembly was enabled at configure time. If no -disassembly will be performed a NULL pointer can be used as argument. - -@item _jit = jit_new_state(); -This call initializes a @lightning{} jit state. - -@item jit_prolog(); -Ok, so we start generating code for our beloved function@dots{} - -@item in = jit_arg(); -@itemx jit_getarg(JIT_R0, in); -We retrieve the first (and only) argument, an integer, and store it -into the general-purpose register @code{R0}. - -@item jit_addi(JIT_R0, JIT_R0, 1); -We add one to the content of the register. - -@item jit_retr(JIT_R0); -This instruction generates a standard function epilog that returns -the contents of the @code{R0} register. - -@item incr = jit_emit(); -This instruction is very important. It actually translates the -@lightning{} macros used before to machine code, flushes the generated -code area out of the processor's instruction cache and return a -pointer to the start of the code. - -@item jit_clear_state(); -This call cleanups any data not required for jit execution. Note -that it must be called after any call to @code{jit_print} or -@code{jit_address}, as this call destroy the @lightning{} -intermediate representation. - -@item printf("%d + 1 = %d", 5, incr(5)); -Calling our function is this simple---it is not distinguishable from -a normal C function call, the only difference being that @code{incr} -is a variable. - -@item jit_destroy_state(); -Releases all memory associated with the jit context. It should be -called after known the jit will no longer be called. - -@item finish_jit(); -This call cleanups any global state hold by @lightning{}, and is -advisable to call it once jit code will no longer be generated. -@end table - -@lightning{} abstracts two phases of dynamic code generation: selecting -instructions that map the standard representation, and emitting binary -code for these instructions. The client program has the responsibility -of describing the code to be generated using the standard @lightning{} -instruction set. - -Let's examine the code generated for @code{incr} on the SPARC and x86_64 -architecture (on the right is the code that an assembly-language -programmer would write): - -@table @b -@item SPARC -@example - save %sp, -112, %sp - mov %i0, %g2 retl - inc %g2 inc %o0 - mov %g2, %i0 - restore - retl - nop -@end example -In this case, @lightning{} introduces overhead to create a register -window (not knowing that the procedure is a leaf procedure) and to -move the argument to the general purpose register @code{R0} (which -maps to @code{%g2} on the SPARC). -@end table - -@table @b -@item x86_64 -@example - sub $0x30,%rsp - mov %rbp,(%rsp) - mov %rsp,%rbp - sub $0x18,%rsp - mov %rdi,%rax mov %rdi, %rax - add $0x1,%rax inc %rax - mov %rbp,%rsp - mov (%rsp),%rbp - add $0x30,%rsp - retq retq -@end example -In this case, the main overhead is due to the function's prolog and -epilog, and stack alignment after reserving stack space for word -to/from float conversions or moving data from/to x87 to/from SSE. -Note that besides allocating space to save callee saved registers, -no registers are saved/restored because @lightning{} notices those -registers are not modified. There is currently no logic to detect -if it needs to allocate stack space for type conversions neither -proper leaf function detection, but these are subject to change -(FIXME). -@end table - -@node printf -@section A simple function call to @code{printf} - -Again, here is the code for the example: - -@example -#include -#include - -static jit_state_t *_jit; - -typedef void (*pvfi)(int); @rem{/* Pointer to Void Function of Int */} - -int main(int argc, char *argv[]) -@{ - pvfi myFunction; @rem{/* ptr to generated code */} - jit_node_t *start, *end; @rem{/* a couple of labels */} - jit_node_t *in; @rem{/* to get the argument */} - - init_jit(argv[0]); - _jit = jit_new_state(); - - start = jit_note(__FILE__, __LINE__); - jit_prolog(); - in = jit_arg(); - jit_getarg(JIT_R1, in); - jit_pushargi((jit_word_t)"generated %d bytes\n"); - jit_ellipsis(); - jit_pushargr(JIT_R1); - jit_finishi(printf); - jit_ret(); - jit_epilog(); - end = jit_note(__FILE__, __LINE__); - - myFunction = jit_emit(); - - @rem{/* call the generated code@comma{} passing its size as argument */} - myFunction((char*)jit_address(end) - (char*)jit_address(start)); - jit_clear_state(); - - jit_disassemble(); - - jit_destroy_state(); - finish_jit(); - return 0; -@} -@end example - -The function shows how many bytes were generated. Most of the code -is not very interesting, as it resembles very closely the program -presented in @ref{incr, , A function which increments a number by one}. - -For this reason, we're going to concentrate on just a few statements. - -@table @t -@item start = jit_note(__FILE__, __LINE__); -@itemx @r{@dots{}} -@itemx end = jit_note(__FILE__, __LINE__); -These two instruction call the @code{jit_note} macro, which creates -a note in the jit code; arguments to @code{jit_note} usually are a -filename string and line number integer, but using NULL for the -string argument is perfectly valid if only need to create a simple -marker in the code. - -@item jit_ellipsis(); -@code{ellipsis} usually is only required if calling varargs functions -with double arguments, but it is a good practice to properly describe -the @r{@dots{}} in the call sequence. - -@item jit_pushargi((jit_word_t)"generated %d bytes\n"); -Note the use of the @code{(jit_word_t)} cast, that is used only -to avoid a compiler warning, due to using a pointer where a -wordsize integer type was expected. - -@item jit_prepare(); -@itemx @r{@dots{}} -@itemx jit_finishi(printf); -Once the arguments to @code{printf} have been pushed, what means -moving them to stack or register arguments, the @code{printf} -function is called and the stack cleaned. Note how @lightning{} -abstracts the differences between different architectures and -ABI's -- the client program does not know how parameter passing -works on the host architecture. - -@item jit_epilog(); -Usually it is not required to call @code{epilog}, but because it -is implicitly called when noticing the end of a function, if the -@code{end} variable was set with a @code{note} call after the -@code{ret}, it would not consider the function epilog. - -@item myFunction((char*)jit_address(end) - (char*)jit_address(start)); -This calls the generate jit function passing as argument the offset -difference from the @code{start} and @code{end} notes. The @code{address} -call must be done after the @code{emit} call or either a fatal error -will happen (if @lightning{} is built with assertions enable) or an -undefined value will be returned. - -@item jit_clear_state(); -Note that @code{jit_clear_state} was called after executing jit in -this example. It was done because it must be called after any call -to @code{jit_address} or @code{jit_print}. - -@item jit_disassemble(); -@code{disassemble} will dump the generated code to standard output, -unless @lightning{} was built with the disassembler disabled, in which -case no output will be shown. -@end table - -@node RPN calculator -@section A more complex example, an RPN calculator - -We create a small stack-based RPN calculator which applies a series -of operators to a given parameter and to other numeric operands. -Unlike previous examples, the code generator is fully parameterized -and is able to compile different formulas to different functions. -Here is the code for the expression compiler; a sample usage will -follow. - -Since @lightning{} does not provide push/pop instruction, this -example uses a stack-allocated area to store the data. Such an -area can be allocated using the macro @code{allocai}, which -receives the number of bytes to allocate and returns the offset -from the frame pointer register @code{FP} to the base of the -area. - -Usually, you will use the @code{ldxi} and @code{stxi} instruction -to access stack-allocated variables. However, it is possible to -use operations such as @code{add} to compute the address of the -variables, and pass the address around. - -@example -#include -#include - -typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} - -static jit_state_t *_jit; - -void stack_push(int reg, int *sp) -@{ - jit_stxi_i (*sp, JIT_FP, reg); - *sp += sizeof (int); -@} - -void stack_pop(int reg, int *sp) -@{ - *sp -= sizeof (int); - jit_ldxi_i (reg, JIT_FP, *sp); -@} - -jit_node_t *compile_rpn(char *expr) -@{ - jit_node_t *in, *fn; - int stack_base, stack_ptr; - - fn = jit_note(NULL, 0); - jit_prolog(); - in = jit_arg(); - stack_ptr = stack_base = jit_allocai (32 * sizeof (int)); - - jit_getarg_i(JIT_R2, in); - - while (*expr) @{ - char buf[32]; - int n; - if (sscanf(expr, "%[0-9]%n", buf, &n)) @{ - expr += n - 1; - stack_push(JIT_R0, &stack_ptr); - jit_movi(JIT_R0, atoi(buf)); - @} else if (*expr == 'x') @{ - stack_push(JIT_R0, &stack_ptr); - jit_movr(JIT_R0, JIT_R2); - @} else if (*expr == '+') @{ - stack_pop(JIT_R1, &stack_ptr); - jit_addr(JIT_R0, JIT_R1, JIT_R0); - @} else if (*expr == '-') @{ - stack_pop(JIT_R1, &stack_ptr); - jit_subr(JIT_R0, JIT_R1, JIT_R0); - @} else if (*expr == '*') @{ - stack_pop(JIT_R1, &stack_ptr); - jit_mulr(JIT_R0, JIT_R1, JIT_R0); - @} else if (*expr == '/') @{ - stack_pop(JIT_R1, &stack_ptr); - jit_divr(JIT_R0, JIT_R1, JIT_R0); - @} else @{ - fprintf(stderr, "cannot compile: %s\n", expr); - abort(); - @} - ++expr; - @} - jit_retr(JIT_R0); - jit_epilog(); - return fn; -@} -@end example - -The principle on which the calculator is based is easy: the stack top -is held in R0, while the remaining items of the stack are held in the -memory area that we allocate with @code{allocai}. Compiling a numeric -operand or the argument @code{x} pushes the old stack top onto the -stack and moves the operand into R0; compiling an operator pops the -second operand off the stack into R1, and compiles the operation so -that the result goes into R0, thus becoming the new stack top. - -This example allocates a fixed area for 32 @code{int}s. This is not -a problem when the function is a leaf like in this case; in a full-blown -compiler you will want to analyze the input and determine the number -of needed stack slots---a very simple example of register allocation. -The area is then managed like a stack using @code{stack_push} and -@code{stack_pop}. - -Source code for the client (which lies in the same source file) follows: - -@example -int main(int argc, char *argv[]) -@{ - jit_node_t *nc, *nf; - pifi c2f, f2c; - int i; - - init_jit(argv[0]); - _jit = jit_new_state(); - - nc = compile_rpn("32x9*5/+"); - nf = compile_rpn("x32-5*9/"); - (void)jit_emit(); - c2f = (pifi)jit_address(nc); - f2c = (pifi)jit_address(nf); - jit_clear_state(); - - printf("\nC:"); - for (i = 0; i <= 100; i += 10) printf("%3d ", i); - printf("\nF:"); - for (i = 0; i <= 100; i += 10) printf("%3d ", c2f(i)); - printf("\n"); - - printf("\nF:"); - for (i = 32; i <= 212; i += 18) printf("%3d ", i); - printf("\nC:"); - for (i = 32; i <= 212; i += 18) printf("%3d ", f2c(i)); - printf("\n"); - - jit_destroy_state(); - finish_jit(); - return 0; -@} -@end example - -The client displays a conversion table between Celsius and Fahrenheit -degrees (both Celsius-to-Fahrenheit and Fahrenheit-to-Celsius). The -formulas are, @math{F(c) = c*9/5+32} and @math{C(f) = (f-32)*5/9}, -respectively. - -Providing the formula as an argument to @code{compile_rpn} effectively -parameterizes code generation, making it possible to use the same code -to compile different functions; this is what makes dynamic code -generation so powerful. - -@node Fibonacci -@section Fibonacci numbers - -The code in this section calculates the Fibonacci sequence. That is -modeled by the recurrence relation: -@display - f(0) = 0 - f(1) = f(2) = 1 - f(n) = f(n-1) + f(n-2) -@end display - -The purpose of this example is to introduce branches. There are two -kind of branches: backward branches and forward branches. We'll -present the calculation in a recursive and iterative form; the -former only uses forward branches, while the latter uses both. - -@example -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} - -int main(int argc, char *argv[]) -@{ - pifi fib; - jit_node_t *label; - jit_node_t *call; - jit_node_t *in; @rem{/* offset of the argument */} - jit_node_t *ref; @rem{/* to patch the forward reference */} - jit_node_t *zero; @rem{/* to patch the forward reference */} - - init_jit(argv[0]); - _jit = jit_new_state(); - - label = jit_label(); - jit_prolog (); - in = jit_arg (); - jit_getarg (JIT_V0, in); @rem{/* R0 = n */} - zero = jit_beqi (JIT_R0, 0); - jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ - jit_movi (JIT_R0, 1); - ref = jit_blei (JIT_V0, 2); - jit_subi (JIT_V1, JIT_V0, 1); @rem{/* V1 = n-1 */} - jit_subi (JIT_V2, JIT_V0, 2); @rem{/* V2 = n-2 */} - jit_prepare(); - jit_pushargr(JIT_V1); - call = jit_finishi(NULL); - jit_patch_at(call, label); - jit_retval(JIT_V1); @rem{/* V1 = fib(n-1) */} - jit_prepare(); - jit_pushargr(JIT_V2); - call = jit_finishi(NULL); - jit_patch_at(call, label); - jit_retval(JIT_R0); @rem{/* R0 = fib(n-2) */} - jit_addr(JIT_R0, JIT_R0, JIT_V1); @rem{/* R0 = R0 + V1 */} - - jit_patch(ref); @rem{/* patch jump */} - jit_patch(zero); @rem{/* patch jump */} - jit_retr(JIT_R0); - - @rem{/* call the generated code@comma{} passing 32 as an argument */} - fib = jit_emit(); - jit_clear_state(); - printf("fib(%d) = %d\n", 32, fib(32)); - jit_destroy_state(); - finish_jit(); - return 0; -@} -@end example - -As said above, this is the first example of dynamically compiling -branches. Branch instructions have two operands containing the -values to be compared, and return a @code{jit_note_t *} object -to be patched. - -Because labels final address are only known after calling @code{emit}, -it is required to call @code{patch} or @code{patch_at}, what does -tell @lightning{} that the target to patch is actually a pointer to -a @code{jit_node_t *} object, otherwise, it would assume that is -a pointer to a C function. Note that conditional branches do not -receive a label argument, so they must be patched. - -You need to call @code{patch_at} on the return of value @code{calli}, -@code{finishi}, and @code{calli} if it is actually referencing a label -in the jit code. All branch instructions do not receive a label -argument. Note that @code{movi} is an special case, and patching it -is usually done to get the final address of a label, usually to later -call @code{jmpr}. - -Now, here is the iterative version: - -@example -#include -#include - -static jit_state_t *_jit; - -typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} - -int main(int argc, char *argv[]) -@{ - pifi fib; - jit_node_t *in; @rem{/* offset of the argument */} - jit_node_t *ref; @rem{/* to patch the forward reference */} - jit_node_t *zero; @rem{/* to patch the forward reference */} - jit_node_t *jump; @rem{/* jump to start of loop */} - jit_node_t *loop; @rem{/* start of the loop */} - - init_jit(argv[0]); - _jit = jit_new_state(); - - jit_prolog (); - in = jit_arg (); - jit_getarg (JIT_R0, in); @rem{/* R0 = n */} - zero = jit_beqi (JIT_R0, 0); - jit_movr (JIT_R1, JIT_R0); - jit_movi (JIT_R0, 1); - ref = jit_blti (JIT_R1, 2); - jit_subi (JIT_R2, JIT_R2, 2); - jit_movr (JIT_R1, JIT_R0); - - loop= jit_label(); - jit_subi (JIT_R2, JIT_R2, 1); @rem{/* decr. counter */} - jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ - jit_addr (JIT_R0, JIT_R0, JIT_R1); /* R0 = R0 + R1 */ - jit_movr (JIT_R1, JIT_V0); /* R1 = V0 */ - jump= jit_bnei (JIT_R2, 0); /* if (R2) goto loop; */ - jit_patch_at(jump, loop); - - jit_patch(ref); @rem{/* patch forward jump */} - jit_patch(zero); @rem{/* patch forward jump */} - jit_retr (JIT_R0); - - @rem{/* call the generated code@comma{} passing 36 as an argument */} - fib = jit_emit(); - jit_clear_state(); - printf("fib(%d) = %d\n", 36, fib(36)); - jit_destroy_state(); - finish_jit(); - return 0; -@} -@end example - -This code calculates the recurrence relation using iteration (a -@code{for} loop in high-level languages). There are no function -calls anymore: instead, there is a backward jump (the @code{bnei} at -the end of the loop). - -Note that the program must remember the address for backward jumps; -for forward jumps it is only required to remember the jump code, -and call @code{patch} for the implicit label. - -@node Reentrancy -@chapter Re-entrant usage of @lightning{} - -@lightning{} uses the special @code{_jit} identifier. To be able -to be able to use multiple jit generation states at the same -time, it is required to used code similar to: - -@example - struct jit_state lightning; - #define lightning _jit -@end example - -This will cause the symbol defined to @code{_jit} to be passed as -the first argument to the underlying @lightning{} implementation, -that is usually a function with an @code{_} (underscode) prefix -and with an argument named @code{_jit}, in the pattern: - -@example - static void _jit_mnemonic(jit_state_t *, jit_gpr_t, jit_gpr_t); - #define jit_mnemonic(u, v) _jit_mnemonic(_jit, u, v); -@end example - -The reason for this is to use the same syntax as the initial lightning -implementation and to avoid needing the user to keep adding an extra -argument to every call, as multiple jit states generating code in -paralell should be very uncommon. - -@section Registers -@chapter Accessing the whole register file - -As mentioned earlier in this chapter, all @lightning{} back-ends are -guaranteed to have at least six general-purpose integer registers and -six floating-point registers, but many back-ends will have more. - -To access the entire register files, you can use the -@code{JIT_R}, @code{JIT_V} and @code{JIT_F} macros. They -accept a parameter that identifies the register number, which -must be strictly less than @code{JIT_R_NUM}, @code{JIT_V_NUM} -and @code{JIT_F_NUM} respectively; the number need not be -constant. Of course, expressions like @code{JIT_R0} and -@code{JIT_R(0)} denote the same register, and likewise for -integer callee-saved, or floating-point, registers. - -@node Customizations -@chapter Customizations - -Frequently it is desirable to have more control over how code is -generated or how memory is used during jit generation or execution. - -@section Memory functions -To aid in complete control of memory allocation and deallocation -@lightning{} provides wrappers that default to standard @code{malloc}, -@code{realloc} and @code{free}. These are loosely based on the -GNU GMP counterparts, with the difference that they use the same -prototype of the system allocation functions, that is, no @code{size} -for @code{free} or @code{old_size} for @code{realloc}. - -@deftypefun void jit_set_memory_functions (@* void *(*@var{alloc_func_ptr}) (size_t), @* void *(*@var{realloc_func_ptr}) (void *, size_t), @* void (*@var{free_func_ptr}) (void *)) -@lightning{} guarantees that memory is only allocated or released -using these wrapped functions, but you must note that if lightning -was linked to GNU binutils, malloc is probably will be called multiple -times from there when initializing the disassembler. - -Because @code{init_jit} may call memory functions, if you need to call -@code{jit_set_memory_functions}, it must be called before @code{init_jit}, -otherwise, when calling @code{finish_jit}, a pointer allocated with the -previous or default wrappers will be passed. -@end deftypefun - -@deftypefun void jit_get_memory_functions (@* void *(**@var{alloc_func_ptr}) (size_t), @* void *(**@var{realloc_func_ptr}) (void *, size_t), @* void (**@var{free_func_ptr}) (void *)) -Get the current memory allocation function. Also, unlike the GNU GMP -counterpart, it is an error to pass @code{NULL} pointers as arguments. -@end deftypefun - -@section Alternate code buffer -To instruct @lightning{} to use an alternate code buffer it is required -to call @code{jit_realize} before @code{jit_emit}, and then query states -and customize as appropriate. - -@deftypefun void jit_realize () -Must be called once, before @code{jit_emit}, to instruct @lightning{} -that no other @code{jit_xyz} call will be made. -@end deftypefun - -@deftypefun jit_pointer_t jit_get_code (jit_word_t *@var{code_size}) -Returns NULL or the previous value set with @code{jit_set_code}, and -sets the @var{code_size} argument to an appropriate value. -If @code{jit_get_code} is called before @code{jit_emit}, the -@var{code_size} argument is set to the expected amount of bytes -required to generate code. -If @code{jit_get_code} is called after @code{jit_emit}, the -@var{code_size} argument is set to the exact amount of bytes used -by the code. -@end deftypefun - -@deftypefun void jit_set_code (jit_ponter_t @var{code}, jit_word_t @var{size}) -Instructs @lightning{} to output to the @var{code} argument and -use @var{size} as a guard to not write to invalid memory. If during -@code{jit_emit} @lightning{} finds out that the code would not fit -in @var{size} bytes, it halts code emit and returns @code{NULL}. -@end deftypefun - -A simple example of a loop using an alternate buffer is: - -@example - jit_uint8_t *code; - int *(func)(int); @rem{/* function pointer */} - jit_word_t code_size; - jit_word_t real_code_size; - @rem{...} - jit_realize(); @rem{/* ready to generate code */} - jit_get_code(&code_size); @rem{/* get expected code size */} - code_size = (code_size + 4095) & -4096; - do (;;) @{ - code = mmap(NULL, code_size, PROT_EXEC | PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, -1, 0); - jit_set_code(code, code_size); - if ((func = jit_emit()) == NULL) @{ - munmap(code, code_size); - code_size += 4096; - @} - @} while (func == NULL); - jit_get_code(&real_code_size); @rem{/* query exact size of the code */} -@end example - -The first call to @code{jit_get_code} should return @code{NULL} and set -the @code{code_size} argument to the expected amount of bytes required -to emit code. -The second call to @code{jit_get_code} is after a successful call to -@code{jit_emit}, and will return the value previously set with -@code{jit_set_code} and set the @code{real_code_size} argument to the -exact amount of bytes used to emit the code. - -@section Alternate data buffer -Sometimes it may be desirable to customize how, or to prevent -@lightning{} from using an extra buffer for constants or debug -annotation. Usually when also using an alternate code buffer. - -@deftypefun jit_pointer_t jit_get_data (jit_word_t *@var{data_size}, jit_word_t *@var{note_size}) -Returns @code{NULL} or the previous value set with @code{jit_set_data}, -and sets the @var{data_size} argument to how many bytes are required -for the constants data buffer, and @var{note_size} to how many bytes -are required to store the debug note information. -Note that it always preallocate one debug note entry even if -@code{jit_name} or @code{jit_note} are never called, but will return -zero in the @var{data_size} argument if no constant is required; -constants are only used for the @code{float} and @code{double} operations -that have an immediate argument, and not in all @lightning{} ports. -@end deftypefun - -@deftypefun void jit_set_data (jit_pointer_t @var{data}, jit_word_t @var{size}, jit_word_t @var{flags}) - -@var{data} can be NULL if disabling constants and annotations, otherwise, -a valid pointer must be passed. An assertion is done that the data will -fit in @var{size} bytes (but that is a noop if @lightning{} was built -with @code{-DNDEBUG}). - -@var{size} tells the space in bytes available in @var{data}. - -@var{flags} can be zero to tell to just use the alternate data buffer, -or a composition of @code{JIT_DISABLE_DATA} and @code{JIT_DISABLE_NOTE} - -@table @t -@item JIT_DISABLE_DATA -@cindex JIT_DISABLE_DATA -Instructs @lightning{} to not use a constant table, but to use an -alternate method to synthesize those, usually with a larger code -sequence using stack space to transfer the value from a GPR to a -FPR register. - -@item JIT_DISABLE_NOTE -@cindex JIT_DISABLE_NOTE -Instructs @lightning{} to not store file or function name, and -line numbers in the constant buffer. -@end table -@end deftypefun - -A simple example of a preventing usage of a data buffer is: - -@example - @rem{...} - jit_realize(); @rem{/* ready to generate code */} - jit_get_data(NULL, NULL); - jit_set_data(NULL, 0, JIT_DISABLE_DATA | JIT_DISABLE_NOTE); - @rem{...} -@end example - -Or to only use a data buffer, if required: - -@example - jit_uint8_t *data; - jit_word_t data_size; - @rem{...} - jit_realize(); @rem{/* ready to generate code */} - jit_get_data(&data_size, NULL); - if (data_size) - data = malloc(data_size); - else - data = NULL; - jit_set_data(data, data_size, JIT_DISABLE_NOTE); - @rem{...} - if (data) - free(data); - @rem{...} -@end example - -@node Acknowledgements -@chapter Acknowledgements - -As far as I know, the first general-purpose portable dynamic code -generator is @sc{dcg}, by Dawson R.@: Engler and T.@: A.@: Proebsting. -Further work by Dawson R. Engler resulted in the @sc{vcode} system; -unlike @sc{dcg}, @sc{vcode} used no intermediate representation and -directly inspired @lightning{}. - -Thanks go to Ian Piumarta, who kindly accepted to release his own -program @sc{ccg} under the GNU General Public License, thereby allowing -@lightning{} to use the run-time assemblers he had wrote for @sc{ccg}. -@sc{ccg} provides a way of dynamically assemble programs written in the -underlying architecture's assembly language. So it is not portable, -yet very interesting. - -I also thank Steve Byrne for writing GNU Smalltalk, since @lightning{} -was first developed as a tool to be used in GNU Smalltalk's dynamic -translator from bytecodes to native code. diff --git a/doc/lightning.texi b/doc/lightning.texi index c7d8f98f1..88f397a37 100644 --- a/doc/lightning.texi +++ b/doc/lightning.texi @@ -68,8 +68,1690 @@ @c End of macro section @c --------------------------------------------------------------------- -@include version.texi -@include body.texi +@set UPDATED 18 June 2018 +@set UPDATED-MONTH June 2018 +@set EDITION 2.1.2 +@set VERSION 2.1.2 + +@ifnottex +@dircategory Software development +@direntry +* lightning: (lightning). Library for dynamic code generation. +@end direntry +@end ifnottex + +@ifnottex +@node Top +@top @lightning{} + +@iftex +@macro comma +@verbatim{|,|} +@end macro +@end iftex + +@ifnottex +@macro comma +@verb{|,|} +@end macro +@end ifnottex + +This document describes @value{TOPIC} the @lightning{} library for +dynamic code generation. + +@menu +* Overview:: What GNU lightning is +* Installation:: Configuring and installing GNU lightning +* The instruction set:: The RISC instruction set used in GNU lightning +* GNU lightning examples:: GNU lightning's examples +* Reentrancy:: Re-entrant usage of GNU lightning +* Customizations:: Advanced code generation customizations +* Acknowledgements:: Acknowledgements for GNU lightning +@end menu +@end ifnottex + +@node Overview +@chapter Introduction to @lightning{} + +@iftex +This document describes @value{TOPIC} the @lightning{} library for +dynamic code generation. +@end iftex + +Dynamic code generation is the generation of machine code +at runtime. It is typically used to strip a layer of interpretation +by allowing compilation to occur at runtime. One of the most +well-known applications of dynamic code generation is perhaps that +of interpreters that compile source code to an intermediate bytecode +form, which is then recompiled to machine code at run-time: this +approach effectively combines the portability of bytecode +representations with the speed of machine code. Another common +application of dynamic code generation is in the field of hardware +simulators and binary emulators, which can use the same techniques +to translate simulated instructions to the instructions of the +underlying machine. + +Yet other applications come to mind: for example, windowing +@dfn{bitblt} operations, matrix manipulations, and network packet +filters. Albeit very powerful and relatively well known within the +compiler community, dynamic code generation techniques are rarely +exploited to their full potential and, with the exception of the +two applications described above, have remained curiosities because +of their portability and functionality barriers: binary instructions +are generated, so programs using dynamic code generation must be +retargeted for each machine; in addition, coding a run-time code +generator is a tedious and error-prone task more than a difficult one. + +@lightning{} provides a portable, fast and easily retargetable dynamic +code generation system. + +To be portable, @lightning{} abstracts over current architectures' +quirks and unorthogonalities. The interface that it exposes to is that +of a standardized RISC architecture loosely based on the SPARC and MIPS +chips. There are a few general-purpose registers (six, not including +those used to receive and pass parameters between subroutines), and +arithmetic operations involve three operands---either three registers +or two registers and an arbitrarily sized immediate value. + +On one hand, this architecture is general enough that it is possible to +generate pretty efficient code even on CISC architectures such as the +Intel x86 or the Motorola 68k families. On the other hand, it matches +real architectures closely enough that, most of the time, the +compiler's constant folding pass ends up generating code which +assembles machine instructions without further tests. + +@node Installation +@chapter Configuring and installing @lightning{} + +The first thing to do to use @lightning{} is to configure the +program, picking the set of macros to be used on the host +architecture; this configuration is automatically performed by +the @file{configure} shell script; to run it, merely type: +@example + ./configure +@end example + +@lightning{} supports the @code{--enable-disassembler} option, that +enables linking to GNU binutils and optionally print human readable +disassembly of the jit code. This option can be disabled by the +@code{--disable-disassembler} option. + +Another option that @file{configure} accepts is +@code{--enable-assertions}, which enables several consistency checks in +the run-time assemblers. These are not usually needed, so you can +decide to simply forget about it; also remember that these consistency +checks tend to slow down your code generator. + +After you've configured @lightning{}, run @file{make} as usual. + +@lightning{} has an extensive set of tests to validate it is working +correctly in the build host. To test it run: +@example + make check +@end example + +The next important step is: +@example + make install +@end example + +This ends the process of installing @lightning{}. + +@node The instruction set +@chapter @lightning{}'s instruction set + +@lightning{}'s instruction set was designed by deriving instructions +that closely match those of most existing RISC architectures, or +that can be easily syntesized if absent. Each instruction is composed +of: +@itemize @bullet +@item +an operation, like @code{sub} or @code{mul} + +@item +most times, a register/immediate flag (@code{r} or @code{i}) + +@item +an unsigned modifier (@code{u}), a type identifier or two, when applicable. +@end itemize + +Examples of legal mnemonics are @code{addr} (integer add, with three +register operands) and @code{muli} (integer multiply, with two +register operands and an immediate operand). Each instruction takes +two or three operands; in most cases, one of them can be an immediate +value instead of a register. + +Most @lightning{} integer operations are signed wordsize operations, +with the exception of operations that convert types, or load or store +values to/from memory. When applicable, the types and C types are as +follow: + +@example + _c @r{signed char} + _uc @r{unsigned char} + _s @r{short} + _us @r{unsigned short} + _i @r{int} + _ui @r{unsigned int} + _l @r{long} + _f @r{float} + _d @r{double} +@end example + +Most integer operations do not need a type modifier, and when loading or +storing values to memory there is an alias to the proper operation +using wordsize operands, that is, if ommited, the type is @r{int} on +32-bit architectures and @r{long} on 64-bit architectures. Note +that lightning also expects @code{sizeof(void*)} to match the wordsize. + +When an unsigned operation result differs from the equivalent signed +operation, there is a the @code{_u} modifier. + +There are at least seven integer registers, of which six are +general-purpose, while the last is used to contain the frame pointer +(@code{FP}). The frame pointer can be used to allocate and access local +variables on the stack, using the @code{allocai} or @code{allocar} +instruction. + +Of the general-purpose registers, at least three are guaranteed to be +preserved across function calls (@code{V0}, @code{V1} and +@code{V2}) and at least three are not (@code{R0}, @code{R1} and +@code{R2}). Six registers are not very much, but this +restriction was forced by the need to target CISC architectures +which, like the x86, are poor of registers; anyway, backends can +specify the actual number of available registers with the calls +@code{JIT_R_NUM} (for caller-save registers) and @code{JIT_V_NUM} +(for callee-save registers). + +There are at least six floating-point registers, named @code{F0} to +@code{F5}. These are usually caller-save and are separate from the integer +registers on the supported architectures; on Intel architectures, +in 32 bit mode if SSE2 is not available or use of X87 is forced, +the register stack is mapped to a flat register file. As for the +integer registers, the macro @code{JIT_F_NUM} yields the number of +floating-point registers. + +The complete instruction set follows; as you can see, most non-memory +operations only take integers (either signed or unsigned) as operands; +this was done in order to reduce the instruction set, and because most +architectures only provide word and long word operations on registers. +There are instructions that allow operands to be extended to fit a larger +data type, both in a signed and in an unsigned way. + +@table @b +@item Binary ALU operations +These accept three operands; the last one can be an immediate. +@code{addx} operations must directly follow @code{addc}, and +@code{subx} must follow @code{subc}; otherwise, results are undefined. +Most, if not all, architectures do not support @r{float} or @r{double} +immediate operands; lightning emulates those operations by moving the +immediate to a temporary register and emiting the call with only +register operands. +@example +addr _f _d O1 = O2 + O3 +addi _f _d O1 = O2 + O3 +addxr O1 = O2 + (O3 + carry) +addxi O1 = O2 + (O3 + carry) +addcr O1 = O2 + O3, set carry +addci O1 = O2 + O3, set carry +subr _f _d O1 = O2 - O3 +subi _f _d O1 = O2 - O3 +subxr O1 = O2 - (O3 + carry) +subxi O1 = O2 - (O3 + carry) +subcr O1 = O2 - O3, set carry +subci O1 = O2 - O3, set carry +rsbr _f _d O1 = O3 - O1 +rsbi _f _d O1 = O3 - O1 +mulr _f _d O1 = O2 * O3 +muli _f _d O1 = O2 * O3 +divr _u _f _d O1 = O2 / O3 +divi _u _f _d O1 = O2 / O3 +remr _u O1 = O2 % O3 +remi _u O1 = O2 % O3 +andr O1 = O2 & O3 +andi O1 = O2 & O3 +orr O1 = O2 | O3 +ori O1 = O2 | O3 +xorr O1 = O2 ^ O3 +xori O1 = O2 ^ O3 +lshr O1 = O2 << O3 +lshi O1 = O2 << O3 +rshr _u O1 = O2 >> O3@footnote{The sign bit is propagated unless using the @code{_u} modifier.} +rshi _u O1 = O2 >> O3@footnote{The sign bit is propagated unless using the @code{_u} modifier.} +@end example + +@item Four operand binary ALU operations +These accept two result registers, and two operands; the last one can +be an immediate. The first two arguments cannot be the same register. + +@code{qmul} stores the low word of the result in @code{O1} and the +high word in @code{O2}. For unsigned multiplication, @code{O2} zero +means there was no overflow. For signed multiplication, no overflow +check is based on sign, and can be detected if @code{O2} is zero or +minus one. + +@code{qdiv} stores the quotient in @code{O1} and the remainder in +@code{O2}. It can be used as quick way to check if a division is +exact, in which case the remainder is zero. + +@example +qmulr _u O1 O2 = O3 * O4 +qmuli _u O1 O2 = O3 * O4 +qdivr _u O1 O2 = O3 / O4 +qdivi _u O1 O2 = O3 / O4 +@end example + +@item Unary ALU operations +These accept two operands, both of which must be registers. +@example +negr _f _d O1 = -O2 +comr O1 = ~O2 +@end example + +These unary ALU operations are only defined for float operands. +@example +absr _f _d O1 = fabs(O2) +sqrtr O1 = sqrt(O2) +@end example + +Besides requiring the @code{r} modifier, there are no unary operations +with an immediate operand. + +@item Compare instructions +These accept three operands; again, the last can be an immediate. +The last two operands are compared, and the first operand, that must be +an integer register, is set to either 0 or 1, according to whether the +given condition was met or not. + +The conditions given below are for the standard behavior of C, +where the ``unordered'' comparison result is mapped to false. + +@example +ltr _u _f _d O1 = (O2 < O3) +lti _u _f _d O1 = (O2 < O3) +ler _u _f _d O1 = (O2 <= O3) +lei _u _f _d O1 = (O2 <= O3) +gtr _u _f _d O1 = (O2 > O3) +gti _u _f _d O1 = (O2 > O3) +ger _u _f _d O1 = (O2 >= O3) +gei _u _f _d O1 = (O2 >= O3) +eqr _f _d O1 = (O2 == O3) +eqi _f _d O1 = (O2 == O3) +ner _f _d O1 = (O2 != O3) +nei _f _d O1 = (O2 != O3) +unltr _f _d O1 = !(O2 >= O3) +unler _f _d O1 = !(O2 > O3) +ungtr _f _d O1 = !(O2 <= O3) +unger _f _d O1 = !(O2 < O3) +uneqr _f _d O1 = !(O2 < O3) && !(O2 > O3) +ltgtr _f _d O1 = !(O2 >= O3) || !(O2 <= O3) +ordr _f _d O1 = (O2 == O2) && (O3 == O3) +unordr _f _d O1 = (O2 != O2) || (O3 != O3) +@end example + +@item Transfer operations +These accept two operands; for @code{ext} both of them must be +registers, while @code{mov} accepts an immediate value as the second +operand. + +Unlike @code{movr} and @code{movi}, the other instructions are used +to truncate a wordsize operand to a smaller integer data type or to +convert float data types. You can also use @code{extr} to convert an +integer to a floating point value: the usual options are @code{extr_f} +and @code{extr_d}. + +@example +movr _f _d O1 = O2 +movi _f _d O1 = O2 +extr _c _uc _s _us _i _ui _f _d O1 = O2 +truncr _f _d O1 = trunc(O2) +@end example + +In 64-bit architectures it may be required to use @code{truncr_f_i}, +@code{truncr_f_l}, @code{truncr_d_i} and @code{truncr_d_l} to match +the equivalent C code. Only the @code{_i} modifier is available in +32-bit architectures. + +@example +truncr_f_i = O1 = O2 +truncr_f_l = O1 = O2 +truncr_d_i = O1 = O2 +truncr_d_l = O1 = O2 +@end example + +The float conversion operations are @emph{destination first, +source second}, but the order of the types is reversed. This happens +for historical reasons. + +@example +extr_f_d = O1 = O2 +extr_d_f = O1 = O2 +@end example + +@item Network extensions +These accept two operands, both of which must be registers; these +two instructions actually perform the same task, yet they are +assigned to two mnemonics for the sake of convenience and +completeness. As usual, the first operand is the destination and +the second is the source. +The @code{_ul} variant is only available in 64-bit architectures. +@example +htonr _us _ui _ul @r{Host-to-network (big endian) order} +ntohr _us _ui _ul @r{Network-to-host order } +@end example + +@item Load operations +@code{ld} accepts two operands while @code{ldx} accepts three; +in both cases, the last can be either a register or an immediate +value. Values are extended (with or without sign, according to +the data type specification) to fit a whole register. +The @code{_ui} and @code{_l} types are only available in 64-bit +architectures. For convenience, there is a version without a +type modifier for integer or pointer operands that uses the +appropriate wordsize call. +@example +ldr _c _uc _s _us _i _ui _l _f _d O1 = *O2 +ldi _c _uc _s _us _i _ui _l _f _d O1 = *O2 +ldxr _c _uc _s _us _i _ui _l _f _d O1 = *(O2+O3) +ldxi _c _uc _s _us _i _ui _l _f _d O1 = *(O2+O3) +@end example + +@item Store operations +@code{st} accepts two operands while @code{stx} accepts three; in +both cases, the first can be either a register or an immediate +value. Values are sign-extended to fit a whole register. +@example +str _c _uc _s _us _i _ui _l _f _d *O1 = O2 +sti _c _uc _s _us _i _ui _l _f _d *O1 = O2 +stxr _c _uc _s _us _i _ui _l _f _d *(O1+O2) = O3 +stxi _c _uc _s _us _i _ui _l _f _d *(O1+O2) = O3 +@end example +As for the load operations, the @code{_ui} and @code{_l} types are +only available in 64-bit architectures, and for convenience, there +is a version without a type modifier for integer or pointer operands +that uses the appropriate wordsize call. + +@item Argument management +These are: +@example +prepare (not specified) +va_start (not specified) +pushargr _f _d +pushargi _f _d +va_push (not specified) +arg _c _uc _s _us _i _ui _l _f _d +getarg _c _uc _s _us _i _ui _l _f _d +va_arg _d +putargr _f _d +putargi _f _d +ret (not specified) +retr _f _d +reti _f _d +va_end (not specified) +retval _c _uc _s _us _i _ui _l _f _d +epilog (not specified) +@end example +As with other operations that use a type modifier, the @code{_ui} and +@code{_l} types are only available in 64-bit architectures, but there +are operations without a type modifier that alias to the appropriate +integer operation with wordsize operands. + +@code{prepare}, @code{pusharg}, and @code{retval} are used by the caller, +while @code{arg}, @code{getarg} and @code{ret} are used by the callee. +A code snippet that wants to call another procedure and has to pass +arguments must, in order: use the @code{prepare} instruction and use +the @code{pushargr} or @code{pushargi} to push the arguments @strong{in +left to right order}; and use @code{finish} or @code{call} (explained below) +to perform the actual call. + +@code{va_start} returns a @code{C} compatible @code{va_list}. To fetch +arguments, use @code{va_arg} for integers and @code{va_arg_d} for doubles. +@code{va_push} is required when passing a @code{va_list} to another function, +because not all architectures expect it as a single pointer. Known case +is DEC Alpha, that requires it as a structure passed by value. + +@code{arg}, @code{getarg} and @code{putarg} are used by the callee. +@code{arg} is different from other instruction in that it does not +actually generate any code: instead, it is a function which returns +a value to be passed to @code{getarg} or @code{putarg}. @footnote{``Return +a value'' means that @lightning{} code that compile these +instructions return a value when expanded.} You should call +@code{arg} as soon as possible, before any function call or, more +easily, right after the @code{prolog} instructions +(which is treated later). + +@code{getarg} accepts a register argument and a value returned by +@code{arg}, and will move that argument to the register, extending +it (with or without sign, according to the data type specification) +to fit a whole register. These instructions are more intimately +related to the usage of the @lightning{} instruction set in code +that generates other code, so they will be treated more +specifically in @ref{GNU lightning examples, , Generating code at +run-time}. + +@code{putarg} is a mix of @code{getarg} and @code{pusharg} in that +it accepts as first argument a register or immediate, and as +second argument a value returned by @code{arg}. It allows changing, +or restoring an argument to the current function, and is a +construct required to implement tail call optimization. Note that +arguments in registers are very cheap, but will be overwritten +at any moment, including on some operations, for example division, +that on several ports is implemented as a function call. + +Finally, the @code{retval} instruction fetches the return value of a +called function in a register. The @code{retval} instruction takes a +register argument and copies the return value of the previously called +function in that register. A function with a return value should use +@code{retr} or @code{reti} to put the return value in the return register +before returning. @xref{Fibonacci, the Fibonacci numbers}, for an example. + +@code{epilog} is an optional call, that marks the end of a function +body. It is automatically generated by @lightning{} if starting a new +function (what should be done after a @code{ret} call) or finishing +generating jit. +It is very important to note that the fact that @code{epilog} being +optional may cause a common mistake. Consider this: +@example +fun1: + prolog + ... + ret +fun2: + prolog +@end example +Because @code{epilog} is added when finding a new @code{prolog}, +this will cause the @code{fun2} label to actually be before the +return from @code{fun1}. Because @lightning{} will actually +understand it as: +@example +fun1: + prolog + ... + ret +fun2: + epilog + prolog +@end example + +You should observe a few rules when using these macros. First of +all, if calling a varargs function, you should use the @code{ellipsis} +call to mark the position of the ellipsis in the C prototype. + +You should not nest calls to @code{prepare} inside a +@code{prepare/finish} block. Doing this will result in undefined +behavior. Note that for functions with zero arguments you can use +just @code{call}. + +@item Branch instructions +Like @code{arg}, these also return a value which, in this case, +is to be used to compile forward branches as explained in +@ref{Fibonacci, , Fibonacci numbers}. They accept two operands to be +compared; of these, the last can be either a register or an immediate. +They are: +@example +bltr _u _f _d @r{if }(O2 < O3)@r{ goto }O1 +blti _u _f _d @r{if }(O2 < O3)@r{ goto }O1 +bler _u _f _d @r{if }(O2 <= O3)@r{ goto }O1 +blei _u _f _d @r{if }(O2 <= O3)@r{ goto }O1 +bgtr _u _f _d @r{if }(O2 > O3)@r{ goto }O1 +bgti _u _f _d @r{if }(O2 > O3)@r{ goto }O1 +bger _u _f _d @r{if }(O2 >= O3)@r{ goto }O1 +bgei _u _f _d @r{if }(O2 >= O3)@r{ goto }O1 +beqr _f _d @r{if }(O2 == O3)@r{ goto }O1 +beqi _f _d @r{if }(O2 == O3)@r{ goto }O1 +bner _f _d @r{if }(O2 != O3)@r{ goto }O1 +bnei _f _d @r{if }(O2 != O3)@r{ goto }O1 + +bunltr _f _d @r{if }!(O2 >= O3)@r{ goto }O1 +bunler _f _d @r{if }!(O2 > O3)@r{ goto }O1 +bungtr _f _d @r{if }!(O2 <= O3)@r{ goto }O1 +bunger _f _d @r{if }!(O2 < O3)@r{ goto }O1 +buneqr _f _d @r{if }!(O2 < O3) && !(O2 > O3)@r{ goto }O1 +bltgtr _f _d @r{if }!(O2 >= O3) || !(O2 <= O3)@r{ goto }O1 +bordr _f _d @r{if } (O2 == O2) && (O3 == O3)@r{ goto }O1 +bunordr _f _d @r{if }!(O2 != O2) || (O3 != O3)@r{ goto }O1 + +bmsr @r{if }O2 & O3@r{ goto }O1 +bmsi @r{if }O2 & O3@r{ goto }O1 +bmcr @r{if }!(O2 & O3)@r{ goto }O1 +bmci @r{if }!(O2 & O3)@r{ goto }O1@footnote{These mnemonics mean, respectively, @dfn{branch if mask set} and @dfn{branch if mask cleared}.} +boaddr _u O2 += O3@r{, goto }O1@r{ if overflow} +boaddi _u O2 += O3@r{, goto }O1@r{ if overflow} +bxaddr _u O2 += O3@r{, goto }O1@r{ if no overflow} +bxaddi _u O2 += O3@r{, goto }O1@r{ if no overflow} +bosubr _u O2 -= O3@r{, goto }O1@r{ if overflow} +bosubi _u O2 -= O3@r{, goto }O1@r{ if overflow} +bxsubr _u O2 -= O3@r{, goto }O1@r{ if no overflow} +bxsubi _u O2 -= O3@r{, goto }O1@r{ if no overflow} +@end example + +@item Jump and return operations +These accept one argument except @code{ret} and @code{jmpi} which +have none; the difference between @code{finishi} and @code{calli} +is that the latter does not clean the stack from pushed parameters +(if any) and the former must @strong{always} follow a @code{prepare} +instruction. +@example +callr (not specified) @r{function call to register O1} +calli (not specified) @r{function call to immediate O1} +finishr (not specified) @r{function call to register O1} +finishi (not specified) @r{function call to immediate O1} +jmpr (not specified) @r{unconditional jump to register} +jmpi (not specified) @r{unconditional jump} +ret (not specified) @r{return from subroutine} +retr _c _uc _s _us _i _ui _l _f _d +reti _c _uc _s _us _i _ui _l _f _d +retval _c _uc _s _us _i _ui _l _f _d @r{move return value} + @r{to register} +@end example + +Like branch instruction, @code{jmpi} also returns a value which is to +be used to compile forward branches. @xref{Fibonacci, , Fibonacci +numbers}. + +@item Labels +There are 3 @lightning{} instructions to create labels: +@example +label (not specified) @r{simple label} +forward (not specified) @r{forward label} +indirect (not specified) @r{special simple label} +@end example + +@code{label} is normally used as @code{patch_at} argument for backward +jumps. + +@example + jit_node_t *jump, *label; +label = jit_label(); + ... + jump = jit_beqr(JIT_R0, JIT_R1); + jit_patch_at(jump, label); +@end example + +@code{forward} is used to patch code generation before the actual +position of the label is known. + +@example + jit_node_t *jump, *label; +label = jit_forward(); + jump = jit_beqr(JIT_R0, JIT_R1); + jit_patch_at(jump, label); + ... + jit_link(label); +@end example + +@code{indirect} is useful when creating jump tables, and tells +@lightning{} to not optimize out a label that is not the target of +any jump, because an indirect jump may land where it is defined. + +@example + jit_node_t *jump, *label; + ... + jmpr(JIT_R0); @rem{/* may jump to label */} + ... +label = jit_indirect(); +@end example + +@code{indirect} is an special case of @code{note} and @code{name} +because it is a valid argument to @code{address}. + +Note that the usual idiom to write the previous example is +@example + jit_node_t *addr, *jump; +addr = jit_movi(JIT_R0, 0); @rem{/* immediate is ignored */} + ... + jmpr(JIT_R0); + ... + jit_patch(addr); @rem{/* implicit label added */} +@end example + +that automatically binds the implicit label added by @code{patch} with +the @code{movi}, but on some special conditions it is required to create +an "unbound" label. + +@item Function prolog + +These macros are used to set up a function prolog. The @code{allocai} +call accept a single integer argument and returns an offset value +for stack storage access. The @code{allocar} accepts two registers +arguments, the first is set to the offset for stack access, and the +second is the size in bytes argument. + +@example +prolog (not specified) @r{function prolog} +allocai (not specified) @r{reserve space on the stack} +allocar (not specified) @r{allocate space on the stack} +@end example + +@code{allocai} receives the number of bytes to allocate and returns +the offset from the frame pointer register @code{FP} to the base of +the area. + +@code{allocar} receives two register arguments. The first is where +to store the offset from the frame pointer register @code{FP} to the +base of the area. The second argument is the size in bytes. Note +that @code{allocar} is dynamic allocation, and special attention +should be taken when using it. If called in a loop, every iteration +will allocate stack space. Stack space is aligned from 8 to 64 bytes +depending on backend requirements, even if allocating only one byte. +It is advisable to not use it with @code{frame} and @code{tramp}; it +should work with @code{frame} with special care to call only once, +but is not supported if used in @code{tramp}, even if called only +once. + +As a small appetizer, here is a small function that adds 1 to the input +parameter (an @code{int}). I'm using an assembly-like syntax here which +is a bit different from the one used when writing real subroutines with +@lightning{}; the real syntax will be introduced in @xref{GNU lightning +examples, , Generating code at run-time}. + +@example +incr: + prolog +in = arg @rem{! We have an integer argument} + getarg R0, in @rem{! Move it to R0} + addi R0, R0, 1 @rem{! Add 1} + retr R0 @rem{! And return the result} +@end example + +And here is another function which uses the @code{printf} function from +the standard C library to write a number in hexadecimal notation: + +@example +printhex: + prolog +in = arg @rem{! Same as above} + getarg R0, in + prepare @rem{! Begin call sequence for printf} + pushargi "%x" @rem{! Push format string} + ellipsis @rem{! Varargs start here} + pushargr R0 @rem{! Push second argument} + finishi printf @rem{! Call printf} + ret @rem{! Return to caller} +@end example + +@item Trampolines, continuations and tail call optimization + +Frequently it is required to generate jit code that must jump to +code generated later, possibly from another @code{jit_context_t}. +These require compatible stack frames. + +@lightning{} provides two primitives from where trampolines, +continuations and tail call optimization can be implemented. + +@example +frame (not specified) @r{create stack frame} +tramp (not specified) @r{assume stack frame} +@end example + +@code{frame} receives an integer argument@footnote{It is not +automatically computed because it does not know about the +requirement of later generated code.} that defines the size in +bytes for the stack frame of the current, @code{C} callable, +jit function. To calculate this value, a good formula is maximum +number of arguments to any called native function times +eight@footnote{Times eight so that it works for double arguments. +And would not need conditionals for ports that pass arguments in +the stack.}, plus the sum of the arguments to any call to +@code{jit_allocai}. @lightning{} automatically adjusts this value +for any backend specific stack memory it may need, or any +alignment constraint. + +@code{frame} also instructs @lightning{} to save all callee +save registers in the prolog and reload in the epilog. + +@example +main: @rem{! jit entry point} + prolog @rem{! function prolog} + frame 256 @rem{! save all callee save registers and} + @rem{! reserve at least 256 bytes in stack} +main_loop: + ... + jmpi handler @rem{! jumps to external code} + ... + ret @rem{! return to the caller} +@end example + +@code{tramp} differs from @code{frame} only that a prolog and epilog +will not be generated. Note that @code{prolog} must still be used. +The code under @code{tramp} must be ready to be entered with a jump +at the prolog position, and instead of a return, it must end with +a non conditional jump. @code{tramp} exists solely for the fact +that it allows optimizing out prolog and epilog code that would +never be executed. + +@example +handler: @rem{! handler entry point} + prolog @rem{! function prolog} + tramp 256 @rem{! assumes all callee save registers} + @rem{! are saved and there is at least} + @rem{! 256 bytes in stack} + ... + jmpi main_loop @rem{! return to the main loop} +@end example + +@lightning{} only supports Tail Call Optimization using the +@code{tramp} construct. Any other way is not guaranteed to +work on all ports. + +An example of a simple (recursive) tail call optimization: + +@example +factorial: @rem{! Entry point of the factorial function} + prolog +in = arg @rem{! Receive an integer argument} + getarg R0, in @rem{! Move argument to RO} + prepare + pushargi 1 @rem{! This is the accumulator} + pushargr R0 @rem{! This is the argument} + finishi fact @rem{! Call the tail call optimized function} + retval R0 @rem{! Fetch the result} + retr R0 @rem{! Return it} + epilog @rem{! Epilog *before* label before prolog} + +fact: @rem{! Entry point of the helper function} + prolog + frame 16 @rem{! Reserve 16 bytes in the stack} +fact_entry: @rem{! This is the tail call entry point} +ac = arg @rem{! The accumulator is the first argument} +in = arg @rem{! The factorial argument} + getarg R0, ac @rem{! Move the accumulator to R0} + getarg R1, in @rem{! Move the argument to R1} + blei fact_out, R1, 1 @rem{! Done if argument is one or less} + mulr R0, R0, R1 @rem{! accumulator *= argument} + putargr R0, ac @rem{! Update the accumulator} + subi R1, R1, 1 @rem{! argument -= 1} + putargr R1, in @rem{! Update the argument} + jmpi fact_entry @rem{! Tail Call Optimize it!} +fact_out: + retr R0 @rem{! Return the accumulator} +@end example + +@item Predicates +@example +forward_p (not specified) @r{forward label predicate} +indirect_p (not specified) @r{indirect label predicate} +target_p (not specified) @r{used label predicate} +arg_register_p (not specified) @r{argument kind predicate} +callee_save_p (not specified) @r{callee save predicate} +pointer_p (not specified) @r{pointer predicate} +@end example + +@code{forward_p} expects a @code{jit_node_t*} argument, and +returns non zero if it is a forward label reference, that is, +a label returned by @code{forward}, that still needs a +@code{link} call. + +@code{indirect_p} expects a @code{jit_node_t*} argument, and returns +non zero if it is an indirect label reference, that is, a label that +was returned by @code{indirect}. + +@code{target_p} expects a @code{jit_node_t*} argument, that is any +kind of label, and will return non zero if there is at least one +jump or move referencing it. + +@code{arg_register_p} expects a @code{jit_node_t*} argument, that must +have been returned by @code{arg}, @code{arg_f} or @code{arg_d}, and +will return non zero if the argument lives in a register. This call +is useful to know the live range of register arguments, as those +are very fast to read and write, but have volatile values. + +@code{callee_save_p} exects a valid @code{JIT_Rn}, @code{JIT_Vn}, or +@code{JIT_Fn}, and will return non zero if the register is callee +save. This call is useful because on several ports, the @code{JIT_Rn} +and @code{JIT_Fn} registers are actually callee save; no need +to save and load the values when making function calls. + +@code{pointer_p} expects a pointer argument, and will return non +zero if the pointer is inside the generated jit code. Must be +called after @code{jit_emit} and before @code{jit_destroy_state}. +@end table + +@node GNU lightning examples +@chapter Generating code at run-time + +To use @lightning{}, you should include the @file{lightning.h} file that +is put in your include directory by the @samp{make install} command. + +Each of the instructions above translates to a macro or function call. +All you have to do is prepend @code{jit_} (lowercase) to opcode names +and @code{JIT_} (uppercase) to register names. Of course, parameters +are to be put between parentheses. + +This small tutorial presents three examples: + +@iftex +@itemize @bullet +@item +The @code{incr} function found in @ref{The instruction set, , +@lightning{}'s instruction set}: + +@item +A simple function call to @code{printf} + +@item +An RPN calculator. + +@item +Fibonacci numbers +@end itemize +@end iftex +@ifnottex +@menu +* incr:: A function which increments a number by one +* printf:: A simple function call to printf +* RPN calculator:: A more complex example, an RPN calculator +* Fibonacci:: Calculating Fibonacci numbers +@end menu +@end ifnottex + +@node incr +@section A function which increments a number by one + +Let's see how to create and use the sample @code{incr} function created +in @ref{The instruction set, , @lightning{}'s instruction set}: + +@example +#include +#include + +static jit_state_t *_jit; + +typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} + +int main(int argc, char *argv[]) +@{ + jit_node_t *in; + pifi incr; + + init_jit(argv[0]); + _jit = jit_new_state(); + + jit_prolog(); @rem{/* @t{ prolog } */} + in = jit_arg(); @rem{/* @t{ in = arg } */} + jit_getarg(JIT_R0, in); @rem{/* @t{ getarg R0 } */} + jit_addi(JIT_R0, JIT_R0, 1); @rem{/* @t{ addi R0@comma{} R0@comma{} 1 } */} + jit_retr(JIT_R0); @rem{/* @t{ retr R0 } */} + + incr = jit_emit(); + jit_clear_state(); + + @rem{/* call the generated code@comma{} passing 5 as an argument */} + printf("%d + 1 = %d\n", 5, incr(5)); + + jit_destroy_state(); + finish_jit(); + return 0; +@} +@end example + +Let's examine the code line by line (well, almost@dots{}): + +@table @t +@item #include +You already know about this. It defines all of @lightning{}'s macros. + +@item static jit_state_t *_jit; +You might wonder about what is @code{jit_state_t}. It is a structure +that stores jit code generation information. The name @code{_jit} is +special, because since multiple jit generators can run at the same +time, you must either @r{#define _jit my_jit_state} or name it +@code{_jit}. + +@item typedef int (*pifi)(int); +Just a handy typedef for a pointer to a function that takes an +@code{int} and returns another. + +@item jit_node_t *in; +Declares a variable to hold an identifier for a function argument. It +is an opaque pointer, that will hold the return of a call to @code{arg} +and be used as argument to @code{getarg}. + +@item pifi incr; +Declares a function pointer variable to a function that receives an +@code{int} and returns an @code{int}. + +@item init_jit(argv[0]); +You must call this function before creating a @code{jit_state_t} +object. This function does global state initialization, and may need +to detect CPU or Operating System features. It receives a string +argument that is later used to read symbols from a shared object using +GNU binutils if disassembly was enabled at configure time. If no +disassembly will be performed a NULL pointer can be used as argument. + +@item _jit = jit_new_state(); +This call initializes a @lightning{} jit state. + +@item jit_prolog(); +Ok, so we start generating code for our beloved function@dots{} + +@item in = jit_arg(); +@itemx jit_getarg(JIT_R0, in); +We retrieve the first (and only) argument, an integer, and store it +into the general-purpose register @code{R0}. + +@item jit_addi(JIT_R0, JIT_R0, 1); +We add one to the content of the register. + +@item jit_retr(JIT_R0); +This instruction generates a standard function epilog that returns +the contents of the @code{R0} register. + +@item incr = jit_emit(); +This instruction is very important. It actually translates the +@lightning{} macros used before to machine code, flushes the generated +code area out of the processor's instruction cache and return a +pointer to the start of the code. + +@item jit_clear_state(); +This call cleanups any data not required for jit execution. Note +that it must be called after any call to @code{jit_print} or +@code{jit_address}, as this call destroy the @lightning{} +intermediate representation. + +@item printf("%d + 1 = %d", 5, incr(5)); +Calling our function is this simple---it is not distinguishable from +a normal C function call, the only difference being that @code{incr} +is a variable. + +@item jit_destroy_state(); +Releases all memory associated with the jit context. It should be +called after known the jit will no longer be called. + +@item finish_jit(); +This call cleanups any global state hold by @lightning{}, and is +advisable to call it once jit code will no longer be generated. +@end table + +@lightning{} abstracts two phases of dynamic code generation: selecting +instructions that map the standard representation, and emitting binary +code for these instructions. The client program has the responsibility +of describing the code to be generated using the standard @lightning{} +instruction set. + +Let's examine the code generated for @code{incr} on the SPARC and x86_64 +architecture (on the right is the code that an assembly-language +programmer would write): + +@table @b +@item SPARC +@example + save %sp, -112, %sp + mov %i0, %g2 retl + inc %g2 inc %o0 + mov %g2, %i0 + restore + retl + nop +@end example +In this case, @lightning{} introduces overhead to create a register +window (not knowing that the procedure is a leaf procedure) and to +move the argument to the general purpose register @code{R0} (which +maps to @code{%g2} on the SPARC). +@end table + +@table @b +@item x86_64 +@example + sub $0x30,%rsp + mov %rbp,(%rsp) + mov %rsp,%rbp + sub $0x18,%rsp + mov %rdi,%rax mov %rdi, %rax + add $0x1,%rax inc %rax + mov %rbp,%rsp + mov (%rsp),%rbp + add $0x30,%rsp + retq retq +@end example +In this case, the main overhead is due to the function's prolog and +epilog, and stack alignment after reserving stack space for word +to/from float conversions or moving data from/to x87 to/from SSE. +Note that besides allocating space to save callee saved registers, +no registers are saved/restored because @lightning{} notices those +registers are not modified. There is currently no logic to detect +if it needs to allocate stack space for type conversions neither +proper leaf function detection, but these are subject to change +(FIXME). +@end table + +@node printf +@section A simple function call to @code{printf} + +Again, here is the code for the example: + +@example +#include +#include + +static jit_state_t *_jit; + +typedef void (*pvfi)(int); @rem{/* Pointer to Void Function of Int */} + +int main(int argc, char *argv[]) +@{ + pvfi myFunction; @rem{/* ptr to generated code */} + jit_node_t *start, *end; @rem{/* a couple of labels */} + jit_node_t *in; @rem{/* to get the argument */} + + init_jit(argv[0]); + _jit = jit_new_state(); + + start = jit_note(__FILE__, __LINE__); + jit_prolog(); + in = jit_arg(); + jit_getarg(JIT_R1, in); + jit_pushargi((jit_word_t)"generated %d bytes\n"); + jit_ellipsis(); + jit_pushargr(JIT_R1); + jit_finishi(printf); + jit_ret(); + jit_epilog(); + end = jit_note(__FILE__, __LINE__); + + myFunction = jit_emit(); + + @rem{/* call the generated code@comma{} passing its size as argument */} + myFunction((char*)jit_address(end) - (char*)jit_address(start)); + jit_clear_state(); + + jit_disassemble(); + + jit_destroy_state(); + finish_jit(); + return 0; +@} +@end example + +The function shows how many bytes were generated. Most of the code +is not very interesting, as it resembles very closely the program +presented in @ref{incr, , A function which increments a number by one}. + +For this reason, we're going to concentrate on just a few statements. + +@table @t +@item start = jit_note(__FILE__, __LINE__); +@itemx @r{@dots{}} +@itemx end = jit_note(__FILE__, __LINE__); +These two instruction call the @code{jit_note} macro, which creates +a note in the jit code; arguments to @code{jit_note} usually are a +filename string and line number integer, but using NULL for the +string argument is perfectly valid if only need to create a simple +marker in the code. + +@item jit_ellipsis(); +@code{ellipsis} usually is only required if calling varargs functions +with double arguments, but it is a good practice to properly describe +the @r{@dots{}} in the call sequence. + +@item jit_pushargi((jit_word_t)"generated %d bytes\n"); +Note the use of the @code{(jit_word_t)} cast, that is used only +to avoid a compiler warning, due to using a pointer where a +wordsize integer type was expected. + +@item jit_prepare(); +@itemx @r{@dots{}} +@itemx jit_finishi(printf); +Once the arguments to @code{printf} have been pushed, what means +moving them to stack or register arguments, the @code{printf} +function is called and the stack cleaned. Note how @lightning{} +abstracts the differences between different architectures and +ABI's -- the client program does not know how parameter passing +works on the host architecture. + +@item jit_epilog(); +Usually it is not required to call @code{epilog}, but because it +is implicitly called when noticing the end of a function, if the +@code{end} variable was set with a @code{note} call after the +@code{ret}, it would not consider the function epilog. + +@item myFunction((char*)jit_address(end) - (char*)jit_address(start)); +This calls the generate jit function passing as argument the offset +difference from the @code{start} and @code{end} notes. The @code{address} +call must be done after the @code{emit} call or either a fatal error +will happen (if @lightning{} is built with assertions enable) or an +undefined value will be returned. + +@item jit_clear_state(); +Note that @code{jit_clear_state} was called after executing jit in +this example. It was done because it must be called after any call +to @code{jit_address} or @code{jit_print}. + +@item jit_disassemble(); +@code{disassemble} will dump the generated code to standard output, +unless @lightning{} was built with the disassembler disabled, in which +case no output will be shown. +@end table + +@node RPN calculator +@section A more complex example, an RPN calculator + +We create a small stack-based RPN calculator which applies a series +of operators to a given parameter and to other numeric operands. +Unlike previous examples, the code generator is fully parameterized +and is able to compile different formulas to different functions. +Here is the code for the expression compiler; a sample usage will +follow. + +Since @lightning{} does not provide push/pop instruction, this +example uses a stack-allocated area to store the data. Such an +area can be allocated using the macro @code{allocai}, which +receives the number of bytes to allocate and returns the offset +from the frame pointer register @code{FP} to the base of the +area. + +Usually, you will use the @code{ldxi} and @code{stxi} instruction +to access stack-allocated variables. However, it is possible to +use operations such as @code{add} to compute the address of the +variables, and pass the address around. + +@example +#include +#include + +typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} + +static jit_state_t *_jit; + +void stack_push(int reg, int *sp) +@{ + jit_stxi_i (*sp, JIT_FP, reg); + *sp += sizeof (int); +@} + +void stack_pop(int reg, int *sp) +@{ + *sp -= sizeof (int); + jit_ldxi_i (reg, JIT_FP, *sp); +@} + +jit_node_t *compile_rpn(char *expr) +@{ + jit_node_t *in, *fn; + int stack_base, stack_ptr; + + fn = jit_note(NULL, 0); + jit_prolog(); + in = jit_arg(); + stack_ptr = stack_base = jit_allocai (32 * sizeof (int)); + + jit_getarg_i(JIT_R2, in); + + while (*expr) @{ + char buf[32]; + int n; + if (sscanf(expr, "%[0-9]%n", buf, &n)) @{ + expr += n - 1; + stack_push(JIT_R0, &stack_ptr); + jit_movi(JIT_R0, atoi(buf)); + @} else if (*expr == 'x') @{ + stack_push(JIT_R0, &stack_ptr); + jit_movr(JIT_R0, JIT_R2); + @} else if (*expr == '+') @{ + stack_pop(JIT_R1, &stack_ptr); + jit_addr(JIT_R0, JIT_R1, JIT_R0); + @} else if (*expr == '-') @{ + stack_pop(JIT_R1, &stack_ptr); + jit_subr(JIT_R0, JIT_R1, JIT_R0); + @} else if (*expr == '*') @{ + stack_pop(JIT_R1, &stack_ptr); + jit_mulr(JIT_R0, JIT_R1, JIT_R0); + @} else if (*expr == '/') @{ + stack_pop(JIT_R1, &stack_ptr); + jit_divr(JIT_R0, JIT_R1, JIT_R0); + @} else @{ + fprintf(stderr, "cannot compile: %s\n", expr); + abort(); + @} + ++expr; + @} + jit_retr(JIT_R0); + jit_epilog(); + return fn; +@} +@end example + +The principle on which the calculator is based is easy: the stack top +is held in R0, while the remaining items of the stack are held in the +memory area that we allocate with @code{allocai}. Compiling a numeric +operand or the argument @code{x} pushes the old stack top onto the +stack and moves the operand into R0; compiling an operator pops the +second operand off the stack into R1, and compiles the operation so +that the result goes into R0, thus becoming the new stack top. + +This example allocates a fixed area for 32 @code{int}s. This is not +a problem when the function is a leaf like in this case; in a full-blown +compiler you will want to analyze the input and determine the number +of needed stack slots---a very simple example of register allocation. +The area is then managed like a stack using @code{stack_push} and +@code{stack_pop}. + +Source code for the client (which lies in the same source file) follows: + +@example +int main(int argc, char *argv[]) +@{ + jit_node_t *nc, *nf; + pifi c2f, f2c; + int i; + + init_jit(argv[0]); + _jit = jit_new_state(); + + nc = compile_rpn("32x9*5/+"); + nf = compile_rpn("x32-5*9/"); + (void)jit_emit(); + c2f = (pifi)jit_address(nc); + f2c = (pifi)jit_address(nf); + jit_clear_state(); + + printf("\nC:"); + for (i = 0; i <= 100; i += 10) printf("%3d ", i); + printf("\nF:"); + for (i = 0; i <= 100; i += 10) printf("%3d ", c2f(i)); + printf("\n"); + + printf("\nF:"); + for (i = 32; i <= 212; i += 18) printf("%3d ", i); + printf("\nC:"); + for (i = 32; i <= 212; i += 18) printf("%3d ", f2c(i)); + printf("\n"); + + jit_destroy_state(); + finish_jit(); + return 0; +@} +@end example + +The client displays a conversion table between Celsius and Fahrenheit +degrees (both Celsius-to-Fahrenheit and Fahrenheit-to-Celsius). The +formulas are, @math{F(c) = c*9/5+32} and @math{C(f) = (f-32)*5/9}, +respectively. + +Providing the formula as an argument to @code{compile_rpn} effectively +parameterizes code generation, making it possible to use the same code +to compile different functions; this is what makes dynamic code +generation so powerful. + +@node Fibonacci +@section Fibonacci numbers + +The code in this section calculates the Fibonacci sequence. That is +modeled by the recurrence relation: +@display + f(0) = 0 + f(1) = f(2) = 1 + f(n) = f(n-1) + f(n-2) +@end display + +The purpose of this example is to introduce branches. There are two +kind of branches: backward branches and forward branches. We'll +present the calculation in a recursive and iterative form; the +former only uses forward branches, while the latter uses both. + +@example +#include +#include + +static jit_state_t *_jit; + +typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} + +int main(int argc, char *argv[]) +@{ + pifi fib; + jit_node_t *label; + jit_node_t *call; + jit_node_t *in; @rem{/* offset of the argument */} + jit_node_t *ref; @rem{/* to patch the forward reference */} + jit_node_t *zero; @rem{/* to patch the forward reference */} + + init_jit(argv[0]); + _jit = jit_new_state(); + + label = jit_label(); + jit_prolog (); + in = jit_arg (); + jit_getarg (JIT_V0, in); @rem{/* R0 = n */} + zero = jit_beqi (JIT_R0, 0); + jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ + jit_movi (JIT_R0, 1); + ref = jit_blei (JIT_V0, 2); + jit_subi (JIT_V1, JIT_V0, 1); @rem{/* V1 = n-1 */} + jit_subi (JIT_V2, JIT_V0, 2); @rem{/* V2 = n-2 */} + jit_prepare(); + jit_pushargr(JIT_V1); + call = jit_finishi(NULL); + jit_patch_at(call, label); + jit_retval(JIT_V1); @rem{/* V1 = fib(n-1) */} + jit_prepare(); + jit_pushargr(JIT_V2); + call = jit_finishi(NULL); + jit_patch_at(call, label); + jit_retval(JIT_R0); @rem{/* R0 = fib(n-2) */} + jit_addr(JIT_R0, JIT_R0, JIT_V1); @rem{/* R0 = R0 + V1 */} + + jit_patch(ref); @rem{/* patch jump */} + jit_patch(zero); @rem{/* patch jump */} + jit_retr(JIT_R0); + + @rem{/* call the generated code@comma{} passing 32 as an argument */} + fib = jit_emit(); + jit_clear_state(); + printf("fib(%d) = %d\n", 32, fib(32)); + jit_destroy_state(); + finish_jit(); + return 0; +@} +@end example + +As said above, this is the first example of dynamically compiling +branches. Branch instructions have two operands containing the +values to be compared, and return a @code{jit_note_t *} object +to be patched. + +Because labels final address are only known after calling @code{emit}, +it is required to call @code{patch} or @code{patch_at}, what does +tell @lightning{} that the target to patch is actually a pointer to +a @code{jit_node_t *} object, otherwise, it would assume that is +a pointer to a C function. Note that conditional branches do not +receive a label argument, so they must be patched. + +You need to call @code{patch_at} on the return of value @code{calli}, +@code{finishi}, and @code{calli} if it is actually referencing a label +in the jit code. All branch instructions do not receive a label +argument. Note that @code{movi} is an special case, and patching it +is usually done to get the final address of a label, usually to later +call @code{jmpr}. + +Now, here is the iterative version: + +@example +#include +#include + +static jit_state_t *_jit; + +typedef int (*pifi)(int); @rem{/* Pointer to Int Function of Int */} + +int main(int argc, char *argv[]) +@{ + pifi fib; + jit_node_t *in; @rem{/* offset of the argument */} + jit_node_t *ref; @rem{/* to patch the forward reference */} + jit_node_t *zero; @rem{/* to patch the forward reference */} + jit_node_t *jump; @rem{/* jump to start of loop */} + jit_node_t *loop; @rem{/* start of the loop */} + + init_jit(argv[0]); + _jit = jit_new_state(); + + jit_prolog (); + in = jit_arg (); + jit_getarg (JIT_R0, in); @rem{/* R0 = n */} + zero = jit_beqi (JIT_R0, 0); + jit_movr (JIT_R1, JIT_R0); + jit_movi (JIT_R0, 1); + ref = jit_blti (JIT_R1, 2); + jit_subi (JIT_R2, JIT_R2, 2); + jit_movr (JIT_R1, JIT_R0); + + loop= jit_label(); + jit_subi (JIT_R2, JIT_R2, 1); @rem{/* decr. counter */} + jit_movr (JIT_V0, JIT_R0); /* V0 = R0 */ + jit_addr (JIT_R0, JIT_R0, JIT_R1); /* R0 = R0 + R1 */ + jit_movr (JIT_R1, JIT_V0); /* R1 = V0 */ + jump= jit_bnei (JIT_R2, 0); /* if (R2) goto loop; */ + jit_patch_at(jump, loop); + + jit_patch(ref); @rem{/* patch forward jump */} + jit_patch(zero); @rem{/* patch forward jump */} + jit_retr (JIT_R0); + + @rem{/* call the generated code@comma{} passing 36 as an argument */} + fib = jit_emit(); + jit_clear_state(); + printf("fib(%d) = %d\n", 36, fib(36)); + jit_destroy_state(); + finish_jit(); + return 0; +@} +@end example + +This code calculates the recurrence relation using iteration (a +@code{for} loop in high-level languages). There are no function +calls anymore: instead, there is a backward jump (the @code{bnei} at +the end of the loop). + +Note that the program must remember the address for backward jumps; +for forward jumps it is only required to remember the jump code, +and call @code{patch} for the implicit label. + +@node Reentrancy +@chapter Re-entrant usage of @lightning{} + +@lightning{} uses the special @code{_jit} identifier. To be able +to be able to use multiple jit generation states at the same +time, it is required to used code similar to: + +@example + struct jit_state lightning; + #define lightning _jit +@end example + +This will cause the symbol defined to @code{_jit} to be passed as +the first argument to the underlying @lightning{} implementation, +that is usually a function with an @code{_} (underscode) prefix +and with an argument named @code{_jit}, in the pattern: + +@example + static void _jit_mnemonic(jit_state_t *, jit_gpr_t, jit_gpr_t); + #define jit_mnemonic(u, v) _jit_mnemonic(_jit, u, v); +@end example + +The reason for this is to use the same syntax as the initial lightning +implementation and to avoid needing the user to keep adding an extra +argument to every call, as multiple jit states generating code in +paralell should be very uncommon. + +@section Registers +@chapter Accessing the whole register file + +As mentioned earlier in this chapter, all @lightning{} back-ends are +guaranteed to have at least six general-purpose integer registers and +six floating-point registers, but many back-ends will have more. + +To access the entire register files, you can use the +@code{JIT_R}, @code{JIT_V} and @code{JIT_F} macros. They +accept a parameter that identifies the register number, which +must be strictly less than @code{JIT_R_NUM}, @code{JIT_V_NUM} +and @code{JIT_F_NUM} respectively; the number need not be +constant. Of course, expressions like @code{JIT_R0} and +@code{JIT_R(0)} denote the same register, and likewise for +integer callee-saved, or floating-point, registers. + +@node Customizations +@chapter Customizations + +Frequently it is desirable to have more control over how code is +generated or how memory is used during jit generation or execution. + +@section Memory functions +To aid in complete control of memory allocation and deallocation +@lightning{} provides wrappers that default to standard @code{malloc}, +@code{realloc} and @code{free}. These are loosely based on the +GNU GMP counterparts, with the difference that they use the same +prototype of the system allocation functions, that is, no @code{size} +for @code{free} or @code{old_size} for @code{realloc}. + +@deftypefun void jit_set_memory_functions (@* void *(*@var{alloc_func_ptr}) (size_t), @* void *(*@var{realloc_func_ptr}) (void *, size_t), @* void (*@var{free_func_ptr}) (void *)) +@lightning{} guarantees that memory is only allocated or released +using these wrapped functions, but you must note that if lightning +was linked to GNU binutils, malloc is probably will be called multiple +times from there when initializing the disassembler. + +Because @code{init_jit} may call memory functions, if you need to call +@code{jit_set_memory_functions}, it must be called before @code{init_jit}, +otherwise, when calling @code{finish_jit}, a pointer allocated with the +previous or default wrappers will be passed. +@end deftypefun + +@deftypefun void jit_get_memory_functions (@* void *(**@var{alloc_func_ptr}) (size_t), @* void *(**@var{realloc_func_ptr}) (void *, size_t), @* void (**@var{free_func_ptr}) (void *)) +Get the current memory allocation function. Also, unlike the GNU GMP +counterpart, it is an error to pass @code{NULL} pointers as arguments. +@end deftypefun + +@section Alternate code buffer +To instruct @lightning{} to use an alternate code buffer it is required +to call @code{jit_realize} before @code{jit_emit}, and then query states +and customize as appropriate. + +@deftypefun void jit_realize () +Must be called once, before @code{jit_emit}, to instruct @lightning{} +that no other @code{jit_xyz} call will be made. +@end deftypefun + +@deftypefun jit_pointer_t jit_get_code (jit_word_t *@var{code_size}) +Returns NULL or the previous value set with @code{jit_set_code}, and +sets the @var{code_size} argument to an appropriate value. +If @code{jit_get_code} is called before @code{jit_emit}, the +@var{code_size} argument is set to the expected amount of bytes +required to generate code. +If @code{jit_get_code} is called after @code{jit_emit}, the +@var{code_size} argument is set to the exact amount of bytes used +by the code. +@end deftypefun + +@deftypefun void jit_set_code (jit_ponter_t @var{code}, jit_word_t @var{size}) +Instructs @lightning{} to output to the @var{code} argument and +use @var{size} as a guard to not write to invalid memory. If during +@code{jit_emit} @lightning{} finds out that the code would not fit +in @var{size} bytes, it halts code emit and returns @code{NULL}. +@end deftypefun + +A simple example of a loop using an alternate buffer is: + +@example + jit_uint8_t *code; + int *(func)(int); @rem{/* function pointer */} + jit_word_t code_size; + jit_word_t real_code_size; + @rem{...} + jit_realize(); @rem{/* ready to generate code */} + jit_get_code(&code_size); @rem{/* get expected code size */} + code_size = (code_size + 4095) & -4096; + do (;;) @{ + code = mmap(NULL, code_size, PROT_EXEC | PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANON, -1, 0); + jit_set_code(code, code_size); + if ((func = jit_emit()) == NULL) @{ + munmap(code, code_size); + code_size += 4096; + @} + @} while (func == NULL); + jit_get_code(&real_code_size); @rem{/* query exact size of the code */} +@end example + +The first call to @code{jit_get_code} should return @code{NULL} and set +the @code{code_size} argument to the expected amount of bytes required +to emit code. +The second call to @code{jit_get_code} is after a successful call to +@code{jit_emit}, and will return the value previously set with +@code{jit_set_code} and set the @code{real_code_size} argument to the +exact amount of bytes used to emit the code. + +@section Alternate data buffer +Sometimes it may be desirable to customize how, or to prevent +@lightning{} from using an extra buffer for constants or debug +annotation. Usually when also using an alternate code buffer. + +@deftypefun jit_pointer_t jit_get_data (jit_word_t *@var{data_size}, jit_word_t *@var{note_size}) +Returns @code{NULL} or the previous value set with @code{jit_set_data}, +and sets the @var{data_size} argument to how many bytes are required +for the constants data buffer, and @var{note_size} to how many bytes +are required to store the debug note information. +Note that it always preallocate one debug note entry even if +@code{jit_name} or @code{jit_note} are never called, but will return +zero in the @var{data_size} argument if no constant is required; +constants are only used for the @code{float} and @code{double} operations +that have an immediate argument, and not in all @lightning{} ports. +@end deftypefun + +@deftypefun void jit_set_data (jit_pointer_t @var{data}, jit_word_t @var{size}, jit_word_t @var{flags}) + +@var{data} can be NULL if disabling constants and annotations, otherwise, +a valid pointer must be passed. An assertion is done that the data will +fit in @var{size} bytes (but that is a noop if @lightning{} was built +with @code{-DNDEBUG}). + +@var{size} tells the space in bytes available in @var{data}. + +@var{flags} can be zero to tell to just use the alternate data buffer, +or a composition of @code{JIT_DISABLE_DATA} and @code{JIT_DISABLE_NOTE} + +@table @t +@item JIT_DISABLE_DATA +@cindex JIT_DISABLE_DATA +Instructs @lightning{} to not use a constant table, but to use an +alternate method to synthesize those, usually with a larger code +sequence using stack space to transfer the value from a GPR to a +FPR register. + +@item JIT_DISABLE_NOTE +@cindex JIT_DISABLE_NOTE +Instructs @lightning{} to not store file or function name, and +line numbers in the constant buffer. +@end table +@end deftypefun + +A simple example of a preventing usage of a data buffer is: + +@example + @rem{...} + jit_realize(); @rem{/* ready to generate code */} + jit_get_data(NULL, NULL); + jit_set_data(NULL, 0, JIT_DISABLE_DATA | JIT_DISABLE_NOTE); + @rem{...} +@end example + +Or to only use a data buffer, if required: + +@example + jit_uint8_t *data; + jit_word_t data_size; + @rem{...} + jit_realize(); @rem{/* ready to generate code */} + jit_get_data(&data_size, NULL); + if (data_size) + data = malloc(data_size); + else + data = NULL; + jit_set_data(data, data_size, JIT_DISABLE_NOTE); + @rem{...} + if (data) + free(data); + @rem{...} +@end example + +@node Acknowledgements +@chapter Acknowledgements + +As far as I know, the first general-purpose portable dynamic code +generator is @sc{dcg}, by Dawson R.@: Engler and T.@: A.@: Proebsting. +Further work by Dawson R. Engler resulted in the @sc{vcode} system; +unlike @sc{dcg}, @sc{vcode} used no intermediate representation and +directly inspired @lightning{}. + +Thanks go to Ian Piumarta, who kindly accepted to release his own +program @sc{ccg} under the GNU General Public License, thereby allowing +@lightning{} to use the run-time assemblers he had wrote for @sc{ccg}. +@sc{ccg} provides a way of dynamically assemble programs written in the +underlying architecture's assembly language. So it is not portable, +yet very interesting. + +I also thank Steve Byrne for writing GNU Smalltalk, since @lightning{} +was first developed as a tool to be used in GNU Smalltalk's dynamic +translator from bytecodes to native code. @c %**end of header (This is for running Texinfo on a region.) diff --git a/doc/version.texi b/doc/version.texi deleted file mode 100644 index fb8684c24..000000000 --- a/doc/version.texi +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 18 June 2018 -@set UPDATED-MONTH June 2018 -@set EDITION 2.1.2 -@set VERSION 2.1.2 From 59064a1949ede01c5933c933a3eb97d37ae119dc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:35:53 +0100 Subject: [PATCH 06/78] Move lightning.texi up to root, and remove Makefile.am --- doc/.cvsignore | 3 -- doc/.gitignore | 2 -- doc/Makefile.am | 45 ---------------------------- doc/lightning.texi => lightning.texi | 0 4 files changed, 50 deletions(-) delete mode 100644 doc/.cvsignore delete mode 100644 doc/.gitignore delete mode 100644 doc/Makefile.am rename doc/lightning.texi => lightning.texi (100%) diff --git a/doc/.cvsignore b/doc/.cvsignore deleted file mode 100644 index 01e2da890..000000000 --- a/doc/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.info* -stamp-* -version.texi diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index f62c13f51..000000000 --- a/doc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.info* -stamp-* diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index c95206b24..000000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -# -# Copyright 2012-2017 Free Software Foundation, Inc. -# -# This file is part of GNU lightning. -# -# GNU lightning is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU lightning is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# - -AM_CFLAGS = -I$(top_srcdir)/include -D_GNU_SOURCE - -info_TEXINFOS = lightning.texi -MOSTLYCLEANFILES = lightning.tmp - -lightning_TEXINFOS = body.texi version.texi - -noinst_PROGRAMS = incr printf rpn rfib ifib fact - -$(top_builddir)/lib/liblightning.la: - cd $(top_builddir)/lib; $(MAKE) $(AM_MAKEFLAGS) liblightning.la - -incr_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -incr_SOURCES = incr.c - -printf_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -printf_SOURCES = printf.c - -rpn_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -rpn_SOURCES = rpn.c - -rfib_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -rfib_SOURCES = rfib.c - -ifib_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -ifib_SOURCES = ifib.c - -fact_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB) -fact_SOURCES = fact.c diff --git a/doc/lightning.texi b/lightning.texi similarity index 100% rename from doc/lightning.texi rename to lightning.texi From 4ca2f6ef2a0bf2091ff1d02314989c35dcd20cdb Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:40:00 +0100 Subject: [PATCH 07/78] Archive lightning ChangeLog --- ChangeLog | 4025 +------------------------------------------ ChangeLog.lightning | 4018 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4030 insertions(+), 4013 deletions(-) create mode 100644 ChangeLog.lightning diff --git a/ChangeLog b/ChangeLog index 19b3335f5..cc7c8e9b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4018 +1,17 @@ -2018-04-20 Paulo Andrade +-*- text -*- - * include/lightning/jit_private.h: Add new register classes to - flag float registers and double only registers, required for sparc64 - where only low 32 bit fpr registers can be used for single precision - operations. - Add new 128 bit jit_regset_t type for sparc64 register set. +Starting from October 30, 2018, the Lightening project no longer stores +change logs in `ChangeLog' files. Instead, changes are detailed in the +version control system's logs. They can be seen by downloading a copy +of the Git repository: - * include/lightning/jit_sparc.h, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, - lib/jit_sparc-sz.c, lib/jit_sparc.c: Update for 64 bits sparc. + $ git clone https://gitlab.com/wingo/lightening + $ git log - * lib/lightning.c: Update for new jit_regset_t required for sparc64. +Alternatively, they can be seen on the web, using the Gitweb interface +at: -2018-02-26 Paulo Andrade + https://gitlab.com/wingo/lightening - * 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. - -2018-02-22 Paulo Andrade - - * lib/jit_alpha-cpu.c: Always set t12 to the address of the - current function, to properly work on all systems. Previously - the shortcut did only work on Tru64. For Linux and glibc the - change is required. - -2018-02-22 Paulo Andrade - - * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c: - Correct wrong logic in usage of jit_live in jit_retr. The - problem is that if a temporary is required during epilog, - the return register might be allocated, so, jit_live must always - be used. - -2018-01-31 Paulo Andrade - - * lib/lightning.c: Avoid deep recursions when computing live - register ranges. - -2018-01-31 Paulo Andrade - - * lib/jit_mips-cpu.c: Correct frame size and varargs - initialization for the n32 abi. - * lib/jit_mips.c, lib/jit_mips-fpu.c: Correct 32 bit abis - in big-endian. - -2017-09-13 Paulo Andrade - - * configure.ac: Add check for binutils 2.29 prototype to the - disassembler function. - * lib/jit_disasm.c: Adapt for binutils 2.29 change. - -2017-06-09 Paulo Andrade - - * include/lightning/jit_private.h, lib/lightning.c: Add a - second pass from start when computing register live ranges. - This should be used temporarily, and is required for certain - loop constructs, with several consecutive blocks not referencing - a live register. - -2016-05-05 Paulo Andrade - - * lib/lightning.c: Correct wrong movr simplification, - remove no longer needed code to set return registers live - and update live register set when reaching a label boundary, - but do not descend if the block has been already visited. - The later need some tuning for complex code generation, where - it will still have issues. - -2015-11-30 Paulo Andrade - - * doc/body.texi: Change documentation to no longer say - it is a variant of the Fibonacci sequence, and document - a proper implementation. - Thanks to Jon Arintok for pointing out that the Fibonacci - sequence generation was incorrect. It was documented, but - still confusing. - - * check/fib.tst, check/fib.ok, check/bp.tst, check/bp.ok, - doc/ifib.c, doc/rbif.c: Implement a proper Fibonacci - sequence implementation. - -2015-07-03 Paulo Andrade - - * lib/jit_mips-cpu.c: Correct definition of htonr_ul. - Correct prolog/epilog/va* routines to work on o64 abi. - - * lib/jit_mips-fpu.c: Correct load of double literal - argument when not using a data buffer. - Remove alignment correction in vaarg_d if using the - new mips abi. - - * lib/jit_mips.c: Correct code to allow creating variadic - jit functions when using the new mips abi. - - * lib/jit_rewind.c: Minor adjust for rewind when using - the new mips abi, if there are varargs arguments in - registers. - -2015-06-06 Paulo Andrade - - * lib/jit_ia64-cpu.c: Search backward for the last output - register used, otherwise would stop too early if a float - argument used the slot. - Correct offset of first va_list argument, and use proper - va_list abi. - - * lib/jit_ia64-fpu.c: Add new functions to move a gpr - to a fpr register, to counterpart the ones that move a - fpr to a gpr. These are required to properly implement - jit_getarg*_{f,d} on complex prototypes, or variadic - jit functions. - - * lib/jit_ia64-sz.c: Update for support to jit variadic - functions. - - * lib/jit_ia64.c: Implement proper abi for variadic - jit functions. - -2015-06-04 Paulo Andrade - - * lib/jit_rewind.c: New file implementing generic functions - to "rewind", or rewrite IR code sequences. - - * include/lightning.h: Add several new codes, that previously - were a function call, that would synthesize the operation. - Now, there is a code for the operation, and a new flag to - know an operation is synthesized. - - * include/lightning/jit_private.h: Add several new macros to - help construct synthesized IR code sequences. - - * lib/Makefile.am: Update for lib/jit_rewind.c. - - * lib/jit_disasm.c: Update for a small rework on jit_node_t, - so that --enable-devel-disassembler does not need a change - in the layout of jit_node_t. - - * lib/jit_names.c: Update for the new codes. - - * lib/jit_print.c: Update to print more readable output, and - flag synthesized IR code sequences. - - * lib/jit_aarch64-sz.c, lib/jit_aarch64.c, - lib/jit_arm-sz.c, lib/jit_arm.c, lib/jit_x86-sz.c, - lib/jit_x86.c: Update for new synthesized IR code sequences. - - * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu., lib/jit_ppc-sz.c, - lib/jit_ppc.c, lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, - lib/jit_mips-sz.c, lib/jit_mips.c, lib/jit_s390-fpu.c, - lib/jit_s390-sz.c, lib/jit_s390.c: Update for new synthesized - IR code sequences and correct bugs in the initial varargs - implementation support. - - * lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_hppa-sz.c, - lib/jit_hppa.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, - lib/jit_sparc-sz.c, lib/jit_sparc.c: Add generic, untested - support for the new synthesized IR code sequences. Known - most likely broken right now, and should be corrected once - access to these hosts is available. - - * lib/lightning.c: Update for new IR codes, and add support - for not yet existing instructions that change third argument. - - * size.c: Change to use different tables for LE and BE PowerPC. - Correct a wrong endif for x32. - -2015-05-25 Paulo Andrade - - * check/cva_list.c: New file implementing a test to ensure - the value returned by jit_va_start is a valid C va_list. - - * check/va_list.ok: New simple helper file, as now the - va_list.tst test is enabled. - - * check/va_list.tst: Rewritten for an extensive variadic - jit functions test. - - * check/Makefile.am: Update for the new tests. - - * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm-vfp.c, - lib/jit_arm.c: Correct broken software float in a previous - commit. Note that the hard float abi implementation is known - broken at this time, for special cases involving variadic - functions, and should be corrected next. - - lib/jit_x86-cpu.c, lib/jit_x86-sz.c, lib/jit_x86.c: Correct - the jit_va_list_t semantics to match C va_list. - -2015-05-24 Paulo Andrade - - * lib/Makefile.am: Bump library major. This is a preparation - for a rework that was due for quite some time, but that is - now required to properly implement variadic jit functions. - The rework is mainly required to know at prolog parsing, if - a function is variadic or not. This will benefit a few - backends, and is mandatory for the hard float arm abi. - The rework was already planned for quite some time, to - be able to use a variable stack framesize, and for leaf - functions optimization where applicable. - The change will be source compatible, but will change - some internals, and jit_code_t values, as some new will - be added. - The only behavior change is that, jit_arg_register_p may - change return value on hard float arm abi, if called before - or after jit_ellipsis. Common sense anyway, would say to - make that call after jit_ellipsis, but documentation - should be updated for it. - -2015-05-24 Paulo Andrade - - * lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: Correct base - aarch64 varargs code. - -2015-05-24 Paulo Andrade - - * check/lightning.c: Clearly run check if clang is the system - compiler. - -2015-05-20 Paulo Andrade - - * lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, lib/jit_sparc.c: - Add base support to jit vararg functions to the sparc backend. - -2015-05-20 Paulo Andrade - - * lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, lib/jit_alpha.c: - Add base support to jit vararg functions to the alpha backend. - -2015-05-19 Paulo Andrade - - * lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, lib/jit_hppa.c: - Add base support to jit vararg functions to the hppa backend. - -2015-05-10 Paulo Andrade - - * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64.c: - Add base support to jit vararg functions to the ia64 backend. - -2015-05-10 Paulo Andrade - - * lib/jit_ia64-fpu.c, lib/jit_ia64.c: Correct movi_d_w - and movi_f_w implementation to work when not using a - data buffer. This causes the check varargs.tst to - work when passing "-d" to the lightning test tool. - -2015-05-10 Paulo Andrade - - * lib/jit_ia64.c: Implement inline assembly cache flush, - required on multiprocessor systems. - -2015-05-06 Paulo Andrade - - * lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c: - Add base support to jit vararg functions to the mips backend. - Currently only supported on the o32 abi, until access to a - n32 system is arranged. - -2015-05-05 Paulo Andrade - - * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: - Add base support to jit vararg functions to the PowerPC backend. - -2015-05-02 Paulo Andrade - - * lib/jit_s390-cpu.c, lib/jit_s390-fpu.c, lib/jit_s390.c: - Add base support to jit vararg functions to the s390 backend. - -2015-05-01 Paulo Andrade - - * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm-vfp.c, - lib/jit_arm.c: Add base support to jit vararg - functions to the arm backend. - -2015-04-30 Paulo Andrade - - * lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, - lib/jit_aarch64.c: Add base support to jit vararg - functions to the aarch64 backend. - -2015-04-27 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_names.c, lib/lightning.c: Add initial support - for the new jit_va_start, jit_va_arg, jit_va_arg_d, and - jit_va_end interfaces. The jit_va_start call is supposed - to return a va_list compatible pointer, but not yet - decided if it will be "declared" stdarg compatible, - as for now only x86 support has been added (and should - be compatible), but issues may arise on other backends. - - * check/lightning.c: Add wrappers to call the new jit_va_* - interfaces. - - * lib/jit_x86-cpu.c, lib/jit_x86.c: Implement the new - jit_va_* for x86. - - * lib/jit_x86-sz.c: Add fields, but not yet fully updated, - as this is an intermediate commit. - - * lib/jit_aarch64-sz.c, lib/jit_aarch64.c, - lib/jit_alpha-sz.c, lib/jit_alpha.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: Prepare for the - new jit_va_* interfaces. Not yet implemented, and will - cause an assertion if used. - - * check/va_list.tst: Simple early test case, that works - on x86_64, x32, ix86, cygwin, and cygwin64. - -2015-02-17 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_aarch64-cpu.c, lib/jit_aarch64.c, - lib/jit_alpha-cpu.c, lib/jit_alpha.c, - lib/jit_arm-cpu.c, lib/jit_arm.c, - lib/jit_hppa-cpu.c, lib/jit_hppa.c, - lib/jit_ia64-cpu.c, lib/jit_ia64.c, - lib/jit_mips-cpu.c, lib/jit_mips.c, - lib/jit_ppc-cpu.c, lib/jit_ppc.c, - lib/jit_s390-cpu.c, lib/jit_s390.c, - lib/jit_sparc-cpu.c, lib/jit_sparc.c, - lib/jit_x86-cpu.c, lib/jit_x86.c: Implement the new - jit_allocar(offs, size) interface, that receives - two integer registers arguments, allocates space - dynamically in the stack, returns the offset in - the first argument, and uses the second argument - for the size in bytes of the memory to be allocated. - - * check/allocar.ok, check/allocar.tst: New files - implementing test cases for the new jit_allocar - interface. - - * check/Makefile.am, check/lightning.c: Update for - the new test case and interface. - - * doc/body.texi: Add documentation of the new - interface. - -2015-02-17 Paulo Andrade - - * include/lightning/jit_x86.h, lib/jit_x86-cpu.c, - lib/jit_x86-x87.c: No longer make st(7) available. - Need to keep one x87 slots empty to avoid exceptions. - This has the side effect of no longer needing the - hackish emms instruction before a function call. - -2015-02-16 Paulo Andrade - - * lib/lightning.c: Remove the jit_regno_patch bitfield - register fields before actual emit, as it is only really - used before emit, otherwise, on special conditions it - may consider live registers as dead during code emit. - -2015-02-15 Paulo Andrade - - * lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: - Correct encoding of ldxr* stxr* in the x32 abi. If the - displacement register is negative, it would generate - a 64 bit instruction with a 32 bit unsigned displacement. - - * check/ranger.tst, check/ranger.ok: New files, implementing - a test case for negative loads and stores. This is range.tst - converted to use registers instead of immediate offsets. - - check/Makefile.am: Update for the new test case. - -2015-02-07 Paulo Andrade - - * lib/jit_size.c: Preventively use at least 144 bytes - if JIT_INSTR_MAX is less than it. The logic is not - guaranteed to be 100% precise, it is mostly heuristics - to allocate a buffer with as close as possible size, - but a wrong value may cause code generation to write - past the end of the buffer. - -2015-02-03 Paulo Andrade - - * lib/lightning.c: Correct the reason the bug in - simplify_stxi was not triggered before, it was due to - incorrectly resetting the value->code field, what was - causing it to never properly optimize: - stxi Im0 Rb0 Rt0 - ldxi Rt1 Rb1 Im1 - when Rb0 == Rb1, Rt0 == Rt1 and Im0 == Im1 - There was another possible issue, that has been also - addressed in this commit, that would be the case of - Rbn == Rtn, where no redundancy removal is possible. - -2015-02-03 Paulo Andrade - - * lib/lightning.c: Correct wrong check in simplify_stxi. - The test was incorrectly comparing the target register - and the displacement offset. This was a time bomb bug, - that would trigger in code like: - stxi Im0 Rb0 Rt0 - stxi Im1 Rb1 Rt1 - if Rb0 == Rb1 && Rt0 == Rt1 && Im0 == Rt1, that is, - the wrong check was Im0 == Rt1, instead of the supposed - Im0 == Imm1 (that was what the code mean't to do). It - was removing the second stxi assuming it was redundantly - generated; as that is not uncommon pattern on - translators generating jit. - -2015-02-02 Paulo Andrade - - * configure.ac, include/lightning/jit_private.h, - lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, - lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, - lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: Add a new - --enable-devel-disassembler option, that should be used - during development, or lightning debug. This option - intermixes previous jit_print and jit_disassemble - output, making it easier to visualize what lightning - call was used, and what code was generated. - -2015-01-31 Paulo Andrade - - * lib/jit_arm-cpu.c, lib/jit_arm.c: Only limit to 24 bit - displacement non conditional jump in the same jit_state_t. - -2015-01-19 Paulo Andrade - - * doc/body.texi: Reorder documentation, making jit_frame - and jit_tramp the lightning response to the need of - trampolines, continuations and tail call optimizations. - A pseudo code example of a factorial function was added. - Also added a section for description of the available - predicates. - - * doc/fact.c: New file, implementing a simple example of - a translation of a trivial, recursive, tail call optimization - into lightning calls. This is the conversion to functional C - code of the example in doc/body.texi. - - * doc/Makefile.am: Update for the next test case. - -2015-01-17 Paulo Andrade - - * include/lightning.h, lib/jit_aarch64.c, - lib/jit_alpha.c, lib/jit_arm-vfp.c, lib/jit_arm.c, - lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, - lib/jit_ppc.c, lib/jit_s390.c, lib/jit_sparc.c, - lib/jit_x86.c: Add the new jit_arg_register_p predicate. - The predicate is expected to be used to know if an - argument is in a register, what would need special - handling if code that can overwrite non callee save - registers is executed. - - * check/carg.c: New test case to check consistency and - expected usage of jit_arg_register_p. - - * check/Makefile.am: Update for new test case. - -2015-01-17 Paulo Andrade - - * include/lightning/jit_aarch64.h, - include/lightning/jit_alpha.h, - include/lightning/jit_arm.h, - include/lightning/jit_hppa.h, - include/lightning/jit_mips.h, - include/lightning/jit_ppc.h, - include/lightning/jit_s390.h, - include/lightning/jit_sparc.h, - include/lightning/jit_x86.h, - lib/jit_aarch64.c, lib/jit_alpha.c, - lib/jit_arm.c, lib/jit_hppa.c, - lib/jit_ia64.c, lib/jit_mips.c, - lib/jit_ppc.c, lib/jit_s390.c, - lib/jit_sparc.c, lib/jit_x86.c: Remove jit_arg_reg_p and - jit_arg_f_reg_p from a public header, and define it only - on port specific files where an integer offset is used - to qualify an argument identifier. Exported code expects - an opaque pointer (but of jit_node_t* type) to "qualify" - an argument identifier. - This patch, and the code review/simplification done during - it also corrected some bugs: - o Inconsistent jit_arg_d value of double argument after 3 - integer arguments in arm for jit_functions; tested, C - functions were being properly called. - o Inconsistent use of getarg_{f,d} and putarg*_{f,d} on - s390 (32-bit) that happened to not have a proper test - case, as it would only happen for jit functions, and - tested, called C functions had proper arguments. - o Corrected a "last minute" correction that did not go - to the committed version, and would not compile on hppa, - due to bad _jit_putargi_d prototype definition. - -2015-01-17 Paulo Andrade - - * doc/body.texi: Correct wrong/outdated information for - hton*, pusharg* and ret*, and add missing documentation - for rsb*, qmul*, qdvi* and putarg*. - -2015-01-15 Paulo Andrade - - * configure.ac, lib/jit_disasm.c: Rewrite workaround - to apparent problem to initialize powerpc disassembler. - -2015-01-15 Paulo Andrade - - * include/lightning.h, lib/jit_aarch64.c, - lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, - lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, - lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: - Implement jit_putarg*. It works as a mix of jit_getarg* - and jit_pusharg*, in the way that the first argument is - a register or immediate, and the second is a pointer - returned by jit_arg*. The use of the interface is to change - values of arguments to the current jit function. - - * check/put.ok, check/put.tst: New test cases exercising - the new jit_putarg* interface. - - * check/Makefile.am, check/lightning.c: Update for the - new test case and interface. - -2015-01-08 Paulo Andrade - - * include/lightning/jit_s390.h, lib/jit_s390-cpu.c, - lib/jit_s390-fpu.c, lib/jit_s390-sz.c, lib/jit_s390.c: - Renamed s390x* files to s390*. - - * check/float.tst, check/lightning.c, configure.ac, - include/lightning.h, include/lightning/Makefile.am, - lib/Makefile.am, lib/jit_s390.c, lib/jit_size.c, - lib/lightning.c: Update for renamed files. - -2015-01-08 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - include/lightning/jit_s390x.h, lib/jit_disasm.c, - lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, - lib/jit_s390x.c, lib/jit_size.c, lib/lightning.c: - Add support for generating jit for s390 32 bit. This change - also removed %f15 from the list of temporaries fpr registers; - it was not being used, but if were, it would corrupt the - stack frame because the spill address would overwrite grp - offsets. - -2014-12-26 Paulo Andrade - - * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Correct some endianess issues - on the powerpc le backend. - -2014-12-26 Paulo Andrade - - * lib/jit_ppc-cpu.c: Add mcrxr instruction emulation, - as this instruction has been phased out, and should be - implemented as a kernel trap. - -2014-12-26 Paulo Andrade - - * lib/jit_arm.c: Better check for need to flush constants - before the pool being no longer reachable. - -2014-12-25 Paulo Andrade - - * include/lightning.h: Split jit_htonr in the new 3 interfaces - jit_htonr_us, jit_htonr_ui and jit_htonr_ul, the later only - available on 64 bit. The plain/untyped jit_htonr macro call - maps to the wordsize one. - * lib/jit_aarch64-cpu.c, lib/jit_aarch64-sz.c, lib/jit_aarch64.c, - lib/jit_alpha-cpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c, - lib/jit_arm-cpu.c, lib/jit_arm-sz.c, lib/jit_arm.c, - lib/jit_hppa-cpu.c, lib/jit_hppa-sz.c, lib/jit_hppa.c, - lib/jit_ia64-cpu.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, - lib/jit_mips-cpu.c, lib/jit_mips-sz.c, lib/jit_mips.c, - lib/jit_ppc-cpu.c, lib/jit_ppc-sz.c, lib/jit_ppc.c, - lib/jit_s390x-cpu.c, lib/jit_s390x-sz.c, lib/jit_s390x.c, - lib/jit_sparc-cpu.c, lib/jit_sparc-sz.c, lib/jit_sparc.c, - lib/jit_x86-cpu.c, lib/jit_x86-sz.c, lib/jit_x86.c: - Update backends for the new jit_htonr*. - * check/lightning.c, lib/jit_names.c, lib/lightning.c: - Update for the new jit_htonr* interfaces. - * check/Makefile.am: Update for new test cases. - * check/hton.ok, check/hton.tst: New test cases. - -2014-12-24 Paulo Andrade - - * include/lightning/jit_private.h, include/lightning/jit_x86.h, - lib/jit_disasm.c, lib/jit_x86-cpu.c, lib/jit_x86-sse.c, - lib/jit_x86-sz.c, lib/jit_x86-x87.c, lib/jit_x86.c, - size.c: Implement support for the x32 abi. Built and - tested on Gentoo default/linux/amd64/13.0/x32 profile. - -2014-12-24 Paulo Andrade - - * lib/jit_names.c: Add missing rsbi_f and rsbi_d strings. - -2014-12-21 Paulo Andrade - - * lib/jit_arm.c: Call __clear_cache for every page. - This should only be required for older boards or - toolchain setup, but has been reported to be required - for lightning at some point. - -2014-12-21 Paulo Andrade - - * lib/jit_arm.c: Correct check to guard overflow of index - of constants from program counter. - -2014-11-24 Paulo Andrade - - * lib/lightning.c: Remove an optimization to calee save - registers that may incorrectly remove a jit_movr under - special conditions. - -2014-11-20 Paulo Andrade - - * include/lightning/jit_ppc.h, lib/jit_ppc-cpu.c, - lib/jit_ppc.c: Add initial powerpc le support. - -2014-11-20 Paulo Andrade - - * lib/jit_disasm.c: Change thumb or arm disassemble based on - jit code before disassembly. - - * lib/jit_arm-cpu.c: Correct reversed arguments to LDRD and - STRD instructions, and correct checking for support of those. - - * lib/jit_arm-swf.c: Correct wrong use of LDRD and STRD and - only use those if the register is even. - - * check/check.arm.swf.sh, check/check.arm4.swf.sh: New files - to test LDRD and STRD, as well as the alternate code path - when those are not available, in the .arm4. test case. - - * check/Makefile.am: Update for the new test cases. - -2014-11-08 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_aarch64.c, - lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, - lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, - lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c: - Implement a private jit_flush call, that flushes - the cache, if applicable, aligning down to the - previous and up to the next page boundary. - -2014-11-08 Paulo Andrade - - * check/ctramp.c: New file. It just repeats the test - of tramp.tst, but using two jit_state_t, what should - test possible issues with two contexts, and also validate - jit_tramp works on backends with function descriptions. - - * check/Makefile.am: Update for new test case. - -2014-11-03 Paulo Andrade - - * include/lightning/jit_mips.h: Do not make the t9 register - JIT_R11 (or JIT_R7 for n32 or n64 abi) available. Previously - it cause problems if one expects it to not be changed in a - function call. For example, calling a jit function, where it - really does not need to be changed. - -2014-10-26 Paulo Andrade - - * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, - lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, - lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c: Add an - assertion to all code generation "drivers" to ensure - _jitc->regarg is empty or in an expected state, after - translation of a lightning instruction to native code. - This change was a brute force test to find out other cases - of a temporary not being release (like was happening with - _bmsi and _bmci on x86), but no other case was found, - after running make check, with assertions enabled, on all - backends. - -2014-10-26 Paulo Andrade - - * lib/jit_x86-cpu.c: Correct a register allocation leak in - _bmsi and _bmci. - -2014-10-25 Paulo Andrade - - * lib/jit_disasm.c: Do not cause an fatal error if init_jit - fails in the jit_init_debug call. - -2014-10-24 Paulo Andrade - - * lib/jit_ia64.c, lib/jit_ppc.c: Correct handling of function - descriptor when first prolog is a jit_tramp prolog. The - test case was using the same jit_context_t, so was not - triggering this condition. - - * lib/jit_ppc-cpu.c: Properly handle jump displacements that - do not fit on 24 powerpc. This required changing from previous - "mtlr reg, blr" to "mtctr reg, bctr" to properly handle - the logic to "hide" function descriptors, but that would - also be required as the proper jit_jmpr when/if implementing - optimizations to leaf functions (was working with blr because - it is saved/reloaded in prolog/epilog). - -2014-10-21 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Add three predicates - to query information about labels. jit_forward_p(label) - will return non zero if the label is "forward", that is - need a call to jit_link(label), jit_indirect_p(label) - that returns non zero if the label was created with the - jit_indirect() call, and jit_target_p(label) that will - return non zero if there is at least one jump patched - to land at that label. - -2014-10-18 Paulo Andrade - - * check/range.ok, check/range.tst: New test case designed - to catch incorrect code generation, usually due to incorrect - test of immediate size. The test checks a large amount of - encodings in "power of two" boundaries. This test exorcises - a significant amount of code paths that was previously not - tested. - - * check/Makefile.am: Add range test to make check target. - - * lib/jit_aarch64-cpu.c: Correct wrong address calculation - for stxi_c, stxi_s, stxi_i and stxi_l when the offset is - too large. - - * lib/jit_mips-fpu.c: Correct wrong size test to check if - an immediate can be encoded in a float or double store. - - * lib/jit_s390x-cpu.c: Correct inverted encoding to stxi_s - when the offset cannot be encoded, and fallbacks to an - alternate encoding in 2 instructions. - -2014-10-17 Paulo Andrade - - * check/alu_rsb.ok, check/alu_rsb.tst: New files implementing - tests for jit_rsb*. - - * check/Makefile.am, check/lightning.c, include/lightning.h, - lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, lib/jit_aarch64-sz.c, - lib/jit_aarch64.c, lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, - lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_arm-cpu.c, - lib/jit_arm-swf.c, lib/jit_arm-sz.c, lib/jit_arm-vfp.c, - lib/jit_arm.c, lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, - lib/jit_hppa-sz.c, lib/jit_hppa.c, lib/jit_ia64-cpu.c, - lib/jit_ia64-fpu.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, - lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips-sz.c, - lib/jit_mips.c, lib/jit_names.c, lib/jit_ppc-cpu.c, - lib/jit_ppc-fpu.c, lib/jit_ppc-sz.c, lib/jit_ppc.c, - lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, - lib/jit_s390x.c, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, - lib/jit_sparc-sz.c, lib/jit_sparc.c, lib/jit_x86-cpu.c, - lib/jit_x86-sse.c, lib/jit_x86-sz.c, lib/jit_x86-x87.c, - lib/jit_x86.c, lib/lightning.c: Implement jit_rsb*. This - was a missing lightning 1.x interface, that on most - backends is synthesized, but on a few backends (hppa and ia64), - it can generate better code as on those there is, or the - only instruction with an immediate is in "rsb" format - (left operand). - -2014-10-17 Paulo Andrade - - * lib/jit_names.c: New file with single definition of string - representation of lightning IR codes. - - * size.c: Modified to append the code name in a C comment - after the maximum instruction size. - - * lib/jit_print.c: Minor change to not duplicate jit_names.c - contents. - - * lib/jit_aarch64-sz.c, lib/jit_alpha-sz.c, lib/jit_arm-sz.c, - lib/jit_hppa-sz.c, lib/jit_ia64-sz.c, lib/jit_mips-sz.c, - lib/jit_ppc-sz.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c, - lib/jit_x86-sz.c: Rewritten to add string representation of - IR codes in a C comment. - -2014-10-14 Paulo Andrade - - * lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c, - lib/jit_hppa-cpu.c, lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c, - lib/jit_sparc-cpu.c: Implement or correct the internal - nop(count) call that receives an argument that tells the - modulo bytes to align the code for the next instruction. - - * include/lightning.h, lib/lightning.c, lib/jit_aarch64.c, - lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, lib/jit_ia64.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, - lib/jit_x86.c: Implement the new jit_align() call that receive - an argument, that tells the modulo, in bytes, to align the - next instruction. In most backends the only value that makes - a difference is a value that matches sizeof(void*), as all - other values usually are already automatically aligned in - labels, but not guaranteed to be aligned at word size bytes. - - * check/align.ok, check/align.tst: New files, implementing - a simple test for the new jit_align() interface. - - * check/Makefile.am, check/lightning.c, lib/jit_aarch64-sz.c, - lib/jit_alpha-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, - lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, - lib/jit_print.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c, - lib/jit_x86-sz.c: Update for the new jit_code_align code and - the jit_align() interface. - -2014-10-13 Paulo Andrade - - * include/lightning.h, lib/jit_size.c, size.c: Use a - symbolic value for the last IR code. - -2014-10-12 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c, - lib/jit_hppa-cpu.c, lib/jit_ia64-cpu.c, lib/jit_mips-cpu.c, - lib/jit_ppc-cpu.c, lib/jit_s390x-cpu.c, lib/jit_sparc-cpu.c, - lib/jit_x86-cpu.c, lib/lightning.c: Implement the new - jit_frame and jit_tramp interfaces, that allow writing - trampoline like calls, where a single dispatcher jit buffer - is written, and later other jit buffers are created, with - the same stack frame layout as the dispatcher. This is the - logic that GNU Smalltalk used in lightning 1.x, and is required - to make a sane port for lighting 2.x. - - * jit_ia64-cpu.c: Implement support for jit_frame and jit_tramp, - and also correct wrong encoding for B4 instructions, that - implement jmpr, as well as correct reverse logic in _jmpr, - that was moving the branch register to the jump register, - and not vice-versa. - Also, if a stack frame is to be assumed, always assume it may - call a function with up to 8 arguments, regardless of the - hint frame argument. - - * lib/jit_arm.c: Add a new must_align_p() interface to ensure - function prologs are always aligned. This condition was - previously always true, somewhat by accident, but with - jit_tramp it is not guaranteed. - - * jit_ia64-cpu.c: lib/jit_ppc.c: Add minor special handling - required to implement jit_tramp, where a function descriptor - should not be added before a prolog, as jit_tramp means omit - prolog. - - * check/lightning.c: Update test driver for the new interfaces. - - * check/Makefile.am, check/tramp.tst, check/tramp.ok: Add - a simple test and example of the jit_frame and jit_tramp - usage implementing a simple Fibonacci function using a - simulation of an interpreter stack and how it would handle - state in language specific variables. - - * doc/body.texi: Add documentation for jit_frame and - jit_tramp. - -2014-09-29 Paulo Andrade - - * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, - lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, - lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, - lib/jit_x86.c, lib/lightning.c: Allow jit_jmpi on a - target that is not a node. This may lead to hard to - debug code generation, but is a required feature for - certain generators, like the ones that used lightning - 1.2x. Note that previously, but not really well - documented, it was instructed to use: - jit_movi(rn, addr); jit_jmpr(rn); - but now, plain: - jit_patch_abs(jit_jmpi(), addr); - should also work. - -2014-09-24 Paulo Andrade - - * lib/jit_x86-sz.c: Generate information about instruction - lengths for more precise calculation of buffer size on - Windows x64. This change is specially important because - the maximum instruction length is larger than other - systems, what could cause an out of bounds write on - special conditions without this update. - -2014-09-24 Paulo Andrade - - * check/lightning.c: Add workaround to conflicting global - optind variable in cygwin binutils that have an internal - getopt* implementation. - - * lib/jit_x86-cpu.c: Add a simple define ffsl ffs if building - for 32 bit and there is no ffsl function. - -2014-09-24 Paulo Andrade - - * check/lightning.c: Add a hopefully temporary kludge to not use - sprintf and sscanf returned by dlsym. This is required to pass - the varargs test. - - * include/lightning/jit_private.h: Use symbolic name for first - integer register argument, as this is different in sysv and - win64 abi. - - * include/lightning/jit_x86.h: Add conditionals and definitions - for Windows x64 (under __CYGWIN__ preprocessor conditional). - - * lib/jit_x86-cpu.c: Correct one instruction encoding bug, that - was working by accident. Only use rax to rdx for some byte - operations to work on compatibility mode (that is, to generate - the proper encoding, instead of actually generating encoding - for high byte registers, e.g. %bh). - Add proper prolog and epilog for windows x64. - - * lib/jit_x86-sse.c: Correct a swapped rex prefix for float - operations. - - * lib/jit_x86.c: Adjust to support Windows x64 abi. - - * check/check.x87.nodata.sh: New file, previously used but that - was missing git. - -2014-09-07 Paulo Andrade - - * lib/lightning.c: Mark all registers advertised as live, as - per jit_callee_save_p as live whenever reaching a jump that - cannot be tracked. This is a rethink of the previous commit, - and is a better approach, otherwise there would not be much - sense on relying on jit_callee_save_p if it could not be - trusted. - - * check/jmpr.tst, check/jmpr.ok: New files implementing a very - simple test case, that would actually cause an assertion on - code before the change to only mark as live when reaching a - jump that could not tracked, the actually advertised as callee - save registers. - - check/Makefile.am: Update for new jmpr test case. - -2014-09-01 Paulo Andrade - - * lib/lightning.c: Do not mark all registers in unknown state - as live on jit_jmpr, or jit_jmpi to an absolute address. Instead, - treat it as a function call, and only consider JIT_Vn registers - as possibly live. - -2014-08-29 Paulo Andrade - - * doc/body.texi: Add a proper info menu entry for - GNU lightning. - - * doc/version.texi: Regenerate. - -2014-08-16 Paulo Andrade - - * lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, - lib/jit_arm-cpu.c, lib/jit_arm-vfp.c, - lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, - lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, - lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, - lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, - lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, - lib/jit_s390x.c, lib/jit_sparc-cpu.c, - lib/jit_x86-cpu.c, lib/jit_x86-sse.c, - lib/jit_x86-x87.c: Review generation of all branch - instructions and always adds the jit_class_nospill - bitfield for temporary registers that cannot be spilled - because the reload would be after a conditional jump; the - patch only adds an extra assertion. These conditions do - not happen on documented lightning usage, but can happen - if one uses the not exported jit_get_reg and jit_unget_reg - calls and cause enough register starvation. - -2014-08-16 Paulo Andrade - - * lib/jit_alpha.c: Correct wrong bitmask of most argument - float register arguments, that were being set as callee - save instead of argument registers class. - -2014-08-16 Paulo Andrade - - * lib/jit_arm-sz.c: Regenerate table of known maximum - instruction sizes for the software float fallback, - that implements "virtual" float registers in the stack - and operations as calls to libgcc. - - * size.c: Correct typo in the generated jit_arm-sz.c file. - -2014-08-10 Paulo Andrade - - * include/lightning/jit_alpha.h, lib/jit_alpha-cpu.c, - lib/jit_alpha-fpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c: - New files implementing a lightning Alpha port. Thanks - to Trent Nelson and snakebit.net staff for providing access - to an Alpha system. - - * check/float.tst, check/lightning.c, configure.ac, - include/lightning.h, include/lightning/Makefile.am, - include/lightning/jit_private.h, lib/Makefile.am, - lib/jit_disasm.c, lib/jit_size.c, lib/lightning.c: - Minor changes to adapt for the new Alpha port. - -2014-08-10 Paulo Andrade - - * lib/lightning.c: Always mark JIT_RET and JIT_FRET as - live in a function epilog. This is required because - on some ports a complex sequence, allocating one or more - registers, may be required to jump from a ret* to the - epilog, and the lightning api does not have annotations - to know if a function returns a value, or the type of - the return value. - -2014-08-10 Paulo Andrade - - * lib/lightning.c: Change the correct live bitmask of - return registers after a function call in jit_update. - -2014-08-10 Paulo Andrade - - * lib/lightning.c: Change assertions to have an int - result and correct a bad bit mask assertion. - -2014-08-10 Paulo Andrade - - * lib/jit_aarch64.c: Correct bad setup for assertion - of consistency before a patch. - -2014-08-10 Paulo Andrade - - * lib/jit_mips-cpu.c: Correct typo in the jit_bmsr - implementation that was using the wrong test result - register. - -2014-07-28 Paulo Andrade - - * lib/jit_memory.c: Do not call free on NULL pointers. - - * include/lightning/jit_private.h, lib/jit_note.c, - lib/lightning.c: Add a wrapper to memcpy and memmove - to not actually call those functions with a zero size - argument, and likely also a null src or dst. - -2014-07-27 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_disasm.c, - lib/lightning.c: Remove the global jit_progname variable. - It was being only used in jit_init_debug, that is called - from init_jit, so, just pass an argument. - -2014-07-27 Paulo Andrade - - * doc/body.texi: Add note that jit_set_memory_functions - should be called before init_jit, because init_jit - itself may call the memory wrappers. - -2014-04-22 Paulo Andrade - - * lib/jit_arm.c: Do not get confused with default settings - if /proc is not mounted on Linux specific code path. - -2014-04-09 Paulo Andrade - - * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, - include/lightning/jit_hppa.h, include/lightning/jit_ia64.h, - include/lightning/jit_mips.h, include/lightning/jit_ppc.h, - include/lightning/jit_private.h, include/lightning/jit_s390x.h, - include/lightning/jit_sparc.h, include/lightning/jit_x86.h: - Do not add jit_regset_t, JIT_RA0, and JIT_FA0 to the installed - header file. These types and definitions are supposed to be - only used internally. - -2014-04-05 Paulo Andrade - - * lib/jit_arm-cpu.c: Only adjust stack pointer in prolog if - need stack space, that is, do not emit a nop instruction - subtracting zero from the stack pointer. - -2014-04-04 Paulo Andrade - - * lib/jit_disasm.c: Correct a crash in the doc/printf example - on arm due to releasing the data_info information in - jit_clear_state. This is a special case for arm only, and - actually, only armv5 or older uses the data_info buffer, - or when forcing arm instruction set mode besides thumb - available. - -2014-12-03 Paulo Andrade - - * doc/body.texi: Write detailed description and examples for - jit_get_memory_functions, jit_set_memory_functions, - jit_get_code, jit_set_code, jit_get_data and jit_set_data. - -2014-12-03 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/lightning.c: Implement the new jit_set_data() interface, - and the new jit_get_data() helper. Like jit_set_code(), - jit_realize() should be called before jit_set_data(). - The most common usage should be jit_set_data(JIT_DISABLE_DATA - | JIT_DISABLE_NOTE), to force synthesize any float/double - constant in the stack and not generate any debug information. - - * lib/jit_note.c: Minor change to debug note generation as - now it uses an alternate temporary data buffer during constants - and debug generation to accommodate the possibility of the user - setting an alternate data buffer. - - * lib/jit_hppa-fpu.c, lib/jit_s390x.c, lib/jit_s390x-cpu.c, - lib/jit_s390x-fpu.c, lib/jit_sparc.c, lib/jit_sparc-fpu.c, - lib/jit_x86-sse.c, lib/jit_x86-x87.c: Implement jit_set_data. - - * lib/jit_hppa-sz.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c, - lib/jit_s390x-sz.c: Update for several instructions that now - have a different maximum length due to jit_set_data. - - * lib/jit_mips-fpu.c: Implement jit_set_data, but missing - validation on n32 and n64 abis (and/or big endian). - - * lib/jit_mips-sz.c: Update for changes in o32. - - * lib/jit_ppc-fpu.c: Implement jit_set_data, but missing - validation on Darwin PPC. - - * lib/jit_ppc-sz.c: Update for changes in powerpc 32 and - 64 bit. - - * lib/jit_ia64-fpu.c: Implement untested jit_set_data. - - * TODO: Add note to list ports that were not tested for the - new jit_set_data() feature, due to no longer having access - to them. - - * check/nodata.c: New file implementing a simple test exercising - several different conditions created by jit_set_data(). - - * check/check.nodata.sh: New file implementing a wrapper - over the existing *.tst files, that runs all tests without - using a data buffer for constants; only meaningful (and - enabled) on architectures that used to store float/double - constants on a read only data buffer. - - * configure.ac, check/Makefile.am: Update for the new test - cases. - - * check/lightning.c: Implement the new "-d" option that - sets an internal flag to call jit_set_data() disable - constants and debug, that is, using only a pure code - buffer. - -2014-11-03 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/lightning.c: Implement the new jit_set_code() interface, - that allows instructing lightning to use an alternate code - buffer. The new jit_realize() function should be called - before jit_set_code(), and usually call jit_get_code() - to query the amount of bytes expected to be required for - the code. - - * lib/jit_size.c: Minor update to have less chances of - miscalculating the code buffer by starting the counter - with the size of the longest instruction instead of zero, - as code emit fails if at any moment less than the longest - instruction bytes are available. - - * check/setcode.c: New file implementing some basic tests - of the new jit_set_code() interface. - - * check/Makefile.am: Update for newer test case. - -2014-06-03 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Add the new - jit_indirect() call, that returns a special label node, - and tells lightning that the label may be the target of - an indirect jump. - - * doc/body.texi: Document the new jit_indirect() call, and - add examples of different ways to create labels and branches. - -2014-23-02 Paulo Andrade - - * lib/jit_x86.c: Rewrite previous patch to inline save/restore - because clobbering %ebx in x86 is treated as an error - (jit_x86.c:239:5: error: PIC register clobbered by 'ebx' in 'asm'). - -2014-19-02 Paulo Andrade - - * lib/jit_x86.c: Rewrite incorrect inline assembly that could - truncate a variable in a callee save register. Now it simply - tells gcc that the register is clobbered, instead of using a - *32 bit* swap with a temporary variable. The problem only - happens when compiling with optimization. - -2014-19-02 Paulo Andrade - - * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, - include/lightning/jit_hppa.h, include/lightning/jit_ia64.h, - include/lightning/jit_mips.h, include/lightning/jit_ppc.h, - include/lightning/jit_s390x.h, include/lightning/jit_sparc.h, - include/lightning/jit_x86.h: Change jit_regset_t to an - unsigned type, to allow safe right shift. - - * lib/lightning.c: Rewrite jit_regset_scan1 to allow easier - compiler optimization. - -2013-12-03 Paulo Andrade - - * lib/jit_x86-x87.c: Correct wrong optimization when - loading the log(2) constant. - -2013-12-03 Paulo Andrade - - * lib/jit_x86-cpu.c: Use the emms instruction before - calling any function. This is particularly important - when using c99 complex functions as it can easily - overflow the x87 stack due to the way lightning uses - the x87 stack as a flat register file. - -2013-12-02 Paulo Andrade - - * lib/jit_x86-x87.c: Correct wrong code generation due - to comparing the base and not the value register with - %st(0) in stxi_f. - -2013-12-02 Paulo Andrade - - * lib/jit_x86-x87.c, lib/jit_x86.c: Use 8 bytes aligned - stack offset for float/double x87 to/from sse move. - -2013-11-27 Paulo Andrade - - * configure.ac, lib/jit_arm-swf.c, lib/jit_arm.c: Add - changes that should at least allow building lightning - on Apple iOS7. - -2013-10-08 Paulo Andrade - - * lib/jit_ppc-cpu.c: Correct wrong shortcut for ldxi_l with - a zero offset, that was calling ldr_i instead of ldr_l. - -2013-10-08 Paulo Andrade - - * include/lightning/jit_arm.h, lib/jit_arm-cpu.c: Do not use - by default load/store instructions that map to ldrt/strt. - There is already the long displacement version for positive - offsets, and when using a (shorter) negative offset it does - not map to ldrt/strt. At least on qemu strt may cause - reproducible, but unexpected SIGILL. - -2013-10-08 Paulo Andrade - - * lib/jit_arm-vfp.c: Correct wrong load/store offset - calculation when the displacement is constant but too - large to use an instruction with an immediate offset. - -2013-10-07 Paulo Andrade - - * check/self.c: Extend tests to validate jit_callee_save_p - does not cause an assertion on valid arguments, and test - extra registers defined on some backends. - - * configure.ac: Do not ignore environment CFLAGS when - checking if need to test runtime configurable options, - like use x87 when sse2 is available, arm instruction set - instead of thumb, etc. - - * include/lightning/jit_arm.h: Correct wrong jit_f macro - definition. - - * include/lightning/jit_ia64.h, include/lightning/jit_ppc.h: - Correct wrong jit_r macro definition. - - * lib/jit_x86-x87.c, lib/jit_x86.c: Actually use the - reserved stack space for integer to/from float conversion. - The stack space was also changed to ensure it is 8 bytes - aligned. Also, for Solaris x86 in 32 bit mode, an alternate - truncr_d was implemented because for some reason it is - failing with SIGILL if using the "fisttpl" instructions, - that must be available on p6 or newer, but for the sake of - making all tests pass, implement a 486 or newer sequence - if "sun" is defined. - -2013-10-03 Paulo Andrade - - * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, - lib/jit_mips-sz.c, lib/jit_mips.c, size: Build and - pass all test cases on Irix big endian mips using - the 64 bit abi. - -2013-10-02 Paulo Andrade - - * include/lightning/jit_mips.h: Add proper mips abi detection. - -2013-09-30 Paulo Andrade - - * lib/jit_print.c: Do not crash if calling jit_print from - gdb before actually emitting code. - - * lib/lightning.c: Correct misplaced check for already - visited blocks on conditional branches, what was preventing - proper merge live bit masks of forward blocks. - -2013-09-30 Paulo Andrade - - * lib/jit_x86-cpu.c: Correct not properly tested case of using - %r12 as index register, what was causing an invalid assertion. - %r12 is mapped to the "extra" JIT_R3 register, and test cases - only test "standard" lightning registers. - -2013-09-28 Paulo Andrade - - * lib/jit_ia64.c: Minor change to force collecting the maximum - instruction length in the --enable-devel-get-jit-size build - mode. The actual generated file did not change because the - sampling was large enough that it had already collected proper - information in the previously slightly buggy code (not forcing - a sync of the instructions that could be combined). - -2013-09-27 Paulo Andrade - - * lib/jit_arm.c: Correct build when disassembler is - disabled. - -2013-09-25 Paulo Andrade - - * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c: Correct some - off by one range checks (that were only accepting values - one less than the maximum allowed) and an invalid test - condition check that was forcing it to always use - indirect jumps even when reachable with an immediate - displacement. - -2013-09-24 Paulo Andrade - - * lib/jit_aarch64-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, - lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, - lib/jit_s390x-sz.c, lib/jit_size.c, lib/jit_sparc-sz.c, - lib/jit_x86-sz.c: New files implementing static tables - with longest known instructions length generated to match - a lightning instruction. These tables should make it easier - to make it very unlikely to ever miscalculate, or by too - much, the size of a code buffer. - - * lib/jit_size.c: New file that aids to either collect - jit code size information, or use the information depending - on build options. - - * size.c: New helper file that parses input for, and create - an initial jit_$arch-sz.c file, that needs some minor edit - for arches with multiple configurations. - - * configure.ac, Makefile.am: Add the new, devel mode only - --enable-devel-get-jit-size configure option, that sets - compile time flags to collect jit code size information, - that will be used as input for the "noinst size program". - - * lib/jit_aarch64.c, lib/jit_arm.c, lib/jit_disasm.c, - lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_memory.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, - lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: Minor - changes for the --enable-devel-get-jit-size build mode, - as well as the "production build mode" with jit code - size information. - -2013-09-14 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Add the new - jit_pointer_p interface, that returns a boolean value - telling if the pointer argument is inside the jit - code buffer. This is useful to avoid the need to add - extra labels and calls to jit_address to figure bounds - of code buffer, and still keep internal data private. - -2013-09-13 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_note.c: Change the code argument of jit_get_note - to a jit_pointer_t and make jit_get_note a public interface. - It was intended so since start, as a way to map an offset - in the code to a function name, file name and line number - mapping. - -2013-09-11 Paulo Andrade - - * doc/body.texi: Correct reversed arguments in example of - usage in a (possibly) multi threaded, multiple jit_state_t - environments. - - * include/lightning/jit_arm.h, include/lightning/jit_private.h, - lib/jit_arm-cpu.c, lib/jit_arm.c: Make a previously, non - documented, global state private to the related jit_state_t - generating code. - -2013-09-10 Paulo Andrade - - * check/self.c, check/self.ok: New files implementing simple - consistency check assertions. At first validating some macros - that use values from different sources agree. - - * check/Makefile.am: Update for the new test case. - - * include/lightning.h, lib/lightning.c: Add the new - jit_callee_save_p() call, that is intended to be used when - writing complex code using lightning, so that one does not - need to verify what backend is being used, or have access to - private data, to query if a register is callee save or not; - on several backends the scratch registers are actually callee - save. - - * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, - include/lightning/jit_hppa.h, include/lightning/jit_mips.h, - include/lightning/jit_ppc.h, include/lightning/jit_sparc.h, - include/lightning/jit_x86.h: Add an explicit definition for - JIT_R3-JIT_Rn, JIT_V3-JIT_Vn and JIT_F6-JIT_Fn when applicable. - This allows one to write code based on "#if defined(JIT_XN)" - and therefore, not need to check what is the current backend - or have access to private data structures. This is particularly - useful when writing virtual machines with several specialized, - global registers. - - * lib/jit_ia64.c: Properly flag the callee save general - purpose registers as such, so that jit_callee_save_p() works - as intended. - -2013-09-10 Paulo Andrade - - * check/lightning.c, configure.ac: Conditionally use the - code written to workaround a bug in the Hercules emulator, - as isnan and isinf are not available at least on HP-UX ia64. - -2013-09-10 Paulo Andrade - - * lib/jit_s390x-cpu.c: Spill/reload correct callee save - float registers. - -2013-09-10 Paulo Andrade - - * lib/jit_hppa-cpu.c: Correct code to call a function stored - in a register or a patched function address. - -2013-09-10 Paulo Andrade - - * lib/jit_ia64-cpu.c: Correct incorrect logic when restoring - the value of the "r2" callee save register. - -2013-08-29 Paulo Andrade - - * lib/jit_arm-cpu.c, lib/jit_arm.c: Correct wrong test and update - of the thumb offset information, when checking if needing to - patch a jump from arm to thumb mode. The problem would happen when - remapping the code buffer, and the new address being lower than - the previous one. - -2013-08-26 Paulo Andrade - - * configure.ac: Extend FreeBSD test to also handle NetBSD. - - * lib/jit_x86-cpu.c: Correct wrongly defined offset type of - ldxi_ui. Problem detected when building on NetBSD. - - * lib/lightning.c: Adjust code to handle NetBSD mremap, - where arguments do not match Linux mremap. - -2013-08-26 Paulo Andrade - - * lib/jit_ppc.c: Correct C sequence point problem miscalculating - the actual function address in a function descriptor. Problem - happens with gcc 4.8.1 at least. - -2013-08-11 Paulo Andrade - - * lib/jit_s390x-cpu.c: Correct code checking if immediate - fits instruction, but using the negated value. - -2013-07-28 Paulo Andrade - - * include/lightning/jit_s390x.h, lib/jit_s390x-cpu.c, - lib/jit_s390x-fpu.c, lib/jit_s390x.c: New files - implementing the new s390x port. - - * configure.ac, include/lightning.h, - include/lightning/Makefile.am, - include/lightning/jit_private.h, - lib/Makefile.am, lib/jit_disasm.c, lib/lightning.c: - Minor adaptation for the new s390x backend. - - * check/float.tst: Update for the s390x result of - truncating +Inf to integer. - - * check/qalu_mul.tst: Add extra test cases to better test - high word of signed multiplication as the result is - adjust from unsigned multiplication on s390x. - -2013-07-28 Paulo Andrade - - * check/lightning.c: Do not assume casting a double NaN or - Inf to float will produce the expected float NaN or Inf. - This is not true at least under s390x. - -2013-07-28 Paulo Andrade - - * check/check.arm.sh, check/check.sh, check/check.swf.sh, - check/check.x87.sh: Properly check test programs output, - not just rely on the test program self testing the results - and not crashing. - -2013-07-28 Paulo Andrade - - * lib/jit_aarch64.c: Remove unused macros left from cut&paste - of jit_arm.c. - -2013-07-16 Paulo Andrade - - * include/lightning/jit_aarch64.h, lib/jit_aarch64-cpu.c, - lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: New files - implementing the new aarch64 port, as a new architecture, - not as an expansion of the existing armv[4-7] port. - - * check/lightning.c: Add aarch64 support and a small - change to recognize character constants as immediate - values. - - * check/float.tst: Add aarch64 preprocessor conditionals - to select proper expected value when converting [+-]Inf - and NaN to integer. - - * include/lightning/jit_arm.h, lib/jit_arm.c: Minor changes - to better match the new aarch64 files. - - * configure.ac, include/lightning.h, - include/lightning/Makefile.am, include/lightning/jit_private.h, - lib/Makefile.am, lib/lightning.c: Minor adjustments - for the aarch64 port. - -2013-07-08 Paulo Andrade - - * NEWS, THANKS, configure.ac, doc/version.texi: Update for - the 1.99a second alpha release. - -2013-06-25 Paulo Andrade - - * lib/jit_mips.c: Correct cut&paste error that caused wrong - stack offset calculation for double arguments in stack in - the o32 abi. - Correct typo in the __LITTLE_ENDIAN macro name, that came - from cut&paste error in the original typo in lib/jit_ppc.c. - - * lib/jit_ia64.c, lib/jit_ppc.c: Correct typo in the - __LITTLE_ENDIAN macro name. - -2013-06-22 Paulo Andrade - - * check/lightning.c, configure.ac, include/lightning.h, - lib/lightning.c: Add tests and quirks to build/detect - and/or work on Irix. - - * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, - lib/jit_mips-fpu.c, lib/jit_mips.c: Adapt code to run - in big endian mips, using the n32 abi. - -2013-06-18 Paulo Andrade - - * include/lightning.h: Minor extra preprocessor testing - to "detect" byte order on x86 solaris, that now builds - and pass all test cases. - -2013-06-18 Paulo Andrade - - * lib/jit_sparc-cpu.c: Correct compiler warning of value - used before assignment. The usage is bogus as the api - requires always patching jumps, but the random value used - could cause an assertion due to invalid displacement. - - * lib/jit_sparc.c: Always load and store double arguments - in stack as 2 float loads or stores, for safety, as unaligned - access is not allowed in Sparc Solaris. - -2013-06-14 Paulo Andrade - - * configure.ac: Force -mlp64 to CFLAGS on HP-UX ia64 port. - It is the only supported mode, and expects gcc as C compiler. - - * include/lightning.h, lib/jit_ia64-cpu.c, lib/jit_ia64.c: - Correct ia64 port to work on HP-UX that runs it in big endian - mode. - -2013-06-10 Paulo Andrade - - * lib/jit_hppa.c: Sanitize the cache synchronization inline - assembly code that was doing twice the work and redundantly - flushing the end address every loop iteration. - -2013-06-09 Paulo Andrade - - * configure.ac, check/Makefile.am, doc/Makefile.am: Do not - explicitly link to -ldl, but instead autodetect the library - with dlopen, dlsym, etc. - - * check/lightning.c: Add workaround to apparently buggy - getopt in HP-UX that sets optind to the wrong index, and - use RTLD_NEXT on HP-UX instead of RTLD_DEFAULT to dlsym - global symbols. - - * include/lightning.h: Rework definitions of wordsize and - byte order to detect proper values on HP-UX. - - * lib/lightning.c: Minor correction to use MAP_ANONYMOUS - instead of MAP_ANON on HP-UX. - - * lib/jit_hppa.c: Float arguments must be passed on integer - registers on HP-UX, not only for varargs functions. - Add code to properly clear instruction cache. This was - not required on Debian hppa port, but may have been working - by accident. - - * lib/jit_hppa-cpu.c: Follow pattern of HP-UX binaries and - use bve,n instead of bv,n to return from functions. - - * lib/jit_hppa-fpu.c: For some reason "fst? frX,rX,(rY)" did - not work on the tested computer (HP-UX B.11.23 U 9000/785 HP-UX) - so the code was changed, at first for __hpux only to add the - base and offset register and use the instruction with an - immediate (zero) offset. - -2013-06-07 Paulo Andrade - - * check/lightning.c, lib/jit_disasm.c, lib/jit_ppc-cpu.c, - lib/jit_ppc-fpu.c, lib/jit_ppc.c, include/lightning.h, - include/lightning/jit_ppc.h, include/lightning/jit_private.h: - Adapt code to work on 32 bit AIX ppc using gcc. Most changes - are basically to adapt the elf64 logic to 32 bit, as it does - not use the same convention of 32 bit Darwin ppc. - - * check/stack.tst: Add a fake memcpy function to the test - case if running under AIX, as it is not available to dlsym. - - * configure.ac: Check for getopt.h header, not available in - AIX. - -2013-06-01 Paulo Andrade - - * include/lightning/jit_hppa.h, lib/jit_hppa-cpu.c, - lib/jit_hppa-fpu.c, lib/jit_hppa.c: New files implementing - the hppa port. Built on Debian Linux PA-RISC 2.0, 32 bit. - - * check/float.tst: Add preprocessor for hppa expected - values when converting NaN and +-Inf to an integer. - - * check/ldst.inc: Ensure double load/store tests use an - 8 byte aligned address by default. - - * lib/lightning.c: Correct a bug found during tests in - the new port, where qmul* and qdiv* were not properly - setting one of the result registers as modified in the - function, what would be a problem if the only "write" - usage were the qmul* or qdiv*. - - * check/varargs.tst, check/varargs.ok: Add one extra - interleaved integer/double test to validate proper code - generation in the extra case. - - * check/lightning.c, configure.ac, include/lightning.h, - include/lightning/Makefile.am, - include/lightning/jit_private.h, lib/Makefile.am, - lib/jit_disasm.c: Update for the hppa port. - -2013-04-27 Paulo Andrade - - * check/varargs.tst: Correct misplaced .align directive - that was causing the double buffer to not be aligned at - 8 bytes. - * lib/jit_ia64-cpu.c: - Properly implement abi for excess arguments passed on - stack. - Simplify load/store with immediate displacement argument - with zero value. - Simplify some calls to "subi" changing to "addi" with - a negative argument. - Remove some #if 0'ed code, that could be useful in - special conditions, but the most useful one would be - to "optimize" "static" jit functions, but for the sake - of simplicity, jit functions are implemented in a way - that can be passed back to C code as C function pointers. - Add an attribute to prototypes of several unused functions. - These functions are defined for the sake of implementing all - Itanium documented instructions, but a significant amount of - them is not used by lightning. - * lib/jit_ia64-fpu.c: Simplify load/store with zero immediate - displacement and add unused attribute for functions not used - by lightning, but required to provide macros implementing all - Itanium documented instructions. - * lib/jit_ia64.c: Update for the properly implemented abi - for stack arguments. - * lib/lightning.c: Mark an unused function as such. - -2013-04-27 Paulo Andrade - - lib/jit_ia64-cpu.c: - Correct immediate range check of integer comparisons when - inverting arguments. - Correct gei_u that was not decrementing immediate when - inverting arguments. - Correct b?add* and b?sub* that were not properly updating - the result register. - -2013-04-27 Paulo Andrade - - * lib/jit_ia64-cpu.c: Correct wrong mapping of 2 instructions - in "M-, stop, M-, stop" translation, that was ignoring the - last stop (implemented as a nop I- stop). - - * lib/jit_ia64-fpu.c: Properly implement fnorm.s and fnorm.d, - as well as the proper integer to float or double conversion. - -2013-04-27 Paulo Andrade - - * lib/jit_ia64-cpu.c: Correct bogus implementation of ldr_T - for signed integers, that was using ld1.s, ld2.s and ld4.s. - The ".s" stands for speculative load, not sign extend. - - * lib/jit_ia64-fpu.c: Correct bogus implementation of ldxr_T - for float and double. The third (actually, second) argument - is indeed added to the base register, but the base register - is modified. The actual M7 implementation was already correct, - just the ldxr_f and ldxr_d implementation that was kept in - a prototype state, misinterpreting what M7 does. - -2013-04-27 Paulo Andrade - - * lib/jit_ia64-cpu.c: Correct X2 pattern matching by preventing - it to attempt to require a stop between the L and the X - instruction; that is, check the registers and predicates - before emitting the L instruction, not after. - - * lib/jit_ia64-fpu.c: Slightly simplify and correct - divr_f and divrd_d implementation. - - * check/lightning.c: Add __ia64__ preprocessor define - on Itanium. - - * check/alu.inc, check/clobber.tst, check/float.tst: Define - several macros conditionally to __ia64__. This is required - because __ia64__ jit generation can use way too many memory, - due to not implementing instruction reordering to avoid - as much as possible "stops", what causes way too many nops - to be generated, as well as the fact that division and - remainder requires function calls, and float division - requires significant code to implement. - -2013-04-27 Paulo Andrade - - * include/lightning.h: Add new backend specific movr_w_d, - movr_d_w and movi_d_w codes as helpers to ia64 varargs - functions arguments. - - * lib/jit_ia64-cpu.c: - Correct wrong encoding of A5 small integers. - Correct define of "mux" instruction modifiers. - Correct ordering of arguments and predicates of cmp_xy - implementation with immediate arguments; like most other - codes with an immediate, the immediate is the second, not - the third argument. - - * lib/jit_ia64-fpu.c: Actual implementation of the code - to move to/from gpr to/from fpr, to implement varargs abi. - - * lib/jit_ia64.c: Make fpr argument registers not allocatable - as temporaries, no need for the extra checks when there are - plenty registers. - - * lib/jit_print.c, lib/lightning.c: Minor updates for the - new movr_w_d, movr_d_w and movi_d_w codes. - -2013-04-26 Paulo Andrade - - * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c: Correct code to - also insert a stop to break an instruction group if a - register is written more than once in the same group. - This may happen if a register is argument and result of - some lightning call (not a real instruction). The most - common case should be code in the pattern: - movl rn=largenum - ... - mov rn=smallnum - where "rn" would end up holding "largenum". - But the problem possibly could happen in other circumstances. - -2013-04-26 Paulo Andrade - - * include/lightning/jit_ia64.h, lib/jit_ia64-cpu.c, - lib/jit_ia64-fpu.c, lib/jit_ia64.c: - Relocate JIT_Rn registers to the local registers, as, like - float registers, div/rem and sqrt are implemented as function - calls, and may overwrite non saved scratch registers. - Change patch_at to receive a jit_code_t instead of a - jit_node_t, so that it is easier to "inline" patches when - some instruction requires complex code to implement, e.g. - uneq and ltgt. - Correct arguments to FMA and FMA like instructions that, - due to a cut&paste error were passing the wrong argument - to the related F- implementation function. - Rewrite ltgt to return the proper result if one (or both) - of the arguments is unordered. - -2013-04-26 Paulo Andrade - - * include/lightning/jit_ia64.h, include/lightning/jit_private.h, - lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64.c, - lib/lightning.c: Rework code to detect need of a "stop" to - also handle predicates, as if a predicate is written, it - cannot be read in the same instruction group. - Use a single jit_regset_t variable for all registers when - checking need for a stop (increment value by 128 for - float registers). - Correct wrong "subi" implementation, as the code executed - is r0=im-r1, not r0=r1-im. - Use standard lightning 6 fpr registers, and rework to - use callee save float registers, that may be spill/reloaded - in prolog/epilog. This is required because some jit - instructions implementations need to call functions; currently - integer div/mod and float sqrt, what may change the value of - scratch float registers. - Rework point of "sync" of branches that need to return a - patch'able address, because the need for a "stop" before a - predicate read causes all branches to be the instruction - in slot 0, as there is no template to "stop" and branch - in the same instruction "bundle". - -2013-04-25 Paulo Andrade - - * include/lightning/jit_ia64.h, lib/jit_ia64-cpu.c, - lib/jit_ia64-fpu.c, lib/jit_ia64.c: New files implementing - the basic infrastructure of an Itanium port. The code - compiles and can generate jit for basic hello world like - functions. - - * check/lightning.c, configure.ac, include/lightning.h, - include/lightning/Makefile.am, include/lightning/jit_private.h, - lib/Makefile.am, lib/lightning.c: Update for the Itanium - port. - - * lib/jit_mips-cpu.c, lib/jit_mips.c: Correct typo and - make the jit_carry register local to the jit_state_t. - This matches code reviewed in the Itanium port, that - should use the same base logic to handle carry/borrow. - -2013-04-10 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_arm.c, - lib/jit_mips-cpu.c, lib/jit_mips.c, lib/jit_ppc-cpu.c, - lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, - lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, - lib/lightning.c: Change all jit_regset macros to take - a pointer argument, to avoid structure copies when - adding a port to an architecture with more than 64 - registers. - -2013-04-08 Paulo Andrade - - * lib/jit_arm.c, lib/jit_ppc.c: Do not rely on __clear_cache - aligning to the next page boundary the end argument. It may - actually truncate it. - -2013-03-29 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_memory.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c, - lib/lightning.c: Do not start over jit generation if can grow - the code buffer with mremap without moving the base pointer. - -2013-03-29 Paulo Andrade - - * lib/jit_memory.c: Implement a simple memory allocation wrapper - to allow overriding calls to malloc/calloc/realloc/free, as well - as ensuring all memory containing pointers is zero or points to - allocated memory. - - * include/lightning.h, include/lightning/jit_private.h: Definitions - for the memory allocation wrapper. - - * lib/Makefile.am: Update for new jit_memory.c file. - - * lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_note.c, - lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: - Use the new memory allocation wrapper code. - -2013-03-22 Paulo Andrade - - * configure.ac, include/lightning/jit_private.h, lib/lightning.c: - Remove dependency on gmp. Only a simple bitmap was required, and - that was not enough reason to force linking to gmp and possible - complications caused by it. - -2013-03-10 Paulo Andrade - - * include/lightning.h: Add check for __powerpc__ defined - in Linux, while Darwin defines __ppc__. - - * include/lightning/jit_ppc.h: Adjust register definitions - for Darwin 32 bit and Linux 64 bit ppc usage and/or ABI. - - * include/lightning/jit_private.h: Add proper check for - Linux __powerpc__ and an data definition for an workaround - to properly handle code that starts with a jump to a "main" - label. - - * lib/jit_disasm.c: Add extra disassembler initialization - for __powerpc64__. - - * lib/jit_ppc-cpu.c: Add extra macros and functions, and - correct/adapt previous ones to handle powerpc64. - - * lib/jit_ppc-fpu.c: Adapt for 64 bit wordsize. Basically - add conversion from/to int32/int64 and proper handling of - load/store offsets too large for 32 bit. - - * lib/jit_ppc.c: Add calls to 64 bit codes and adaptation - for the PowerPC 64 bit Linux ABI. - - * lib/jit_arm.c, lib/jit_mips.c, lib/jit_sparc, lib/jit_x86.c, - lib/lightning.c: Correct off by one error when restarting jit - of a function due to finding too late that needs to spill/reload - some register. Problem was found by accident on a very special - condition during PowerPC 64 code adaptation. - -2013-03-08 Paulo Andrade - - * check/lightning.c: Add missing ppc preprocessor definition. - -2013-03-06 Paulo Andrade - - * check/float.tst: Comment out the int to negative infinity - test in mips for the moment because not all Loongson agrees - on the result. - - * lib/jit_disasm.c: Add a test instead of an assertion - when loading symbols for disassembly due to a failure with - a simple binutils build in Debian mipsel64. - -2013-03-06 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_arm-cpu.c, - lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips-cpu.c, - lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc-cpu.c, - lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, - lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, - lib/lightning.c: Add an extra structure for data storage - during jit generation, and release it after generating - jit, to reduce a bit memory usage, and also to make it - easier to understand what data is available during - jit runtime. - -2013-03-06 Paulo Andrade - - * lib/lightning.c: Make data and code buffer readonly. - -2013-02-20 Paulo Andrade - - * doc/body.texi: Fool proof validate the examples of what - an assembly-language programmer would write and correct the - wrong sparc example. - -2013-02-19 Paulo Andrade - - * doc/body.texi: Add back the SPARC code generation example. - -2013-02-19 Paulo Andrade - - * check/lightning.c: Remove state flag to work with partial - sparc port, by just disassembling if there was incomplete - code generation. - - * jit_sparc-cpu.c: Correct wrong range check for immediate - integer constants (off by one bit shift). - Correct macro implementing equivalent "rd %y, rd" assembly. - Implement qmul* and qdiv*. - - * jit_sparc.c: Update for qmul* and qdiv* and remove logic - to handle incomplete code generation during sparc port. - -2013-02-18 Paulo Andrade - - * check/float.tst: Add sparc to list of known NaN and +-Inf - to integer conversion. - - * check/lightning.c: Define __sparc__ to preprocessor in - the sparc backend. - - * include/lightning/jit_private.h: Correct wrong definition - of emit_stxi_d, that has lived for a long time, but would - cause problems whenever needing to spill/reload a float - register. - - * include/lightning/jit_sparc.h: Can only use %g2,%g3,%g4 - for scratch variables, as other "global" registers are - reserved for the system, e.g. libc. - Reorder float register naming to make it easier to - access odd float registers, so that generating code for - pusharg and getarg is easier for the IR. - - * lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c: Update to match - new code in jit_sparc-cpu.c. It must call jit_get_reg - with jit_class_nospill if using the register to move - an unconditional branch address to it, as the reload - will not happen (actually could happen in the delay - slot...) - - * lib/jit_sparc-cpu.c: Correct wrong macro definition for - ldxr_s. - Properly implement div* and implement rem. Div* needs - to use the y register, and rem* needs to be synthesized. - Correct b?sub* macro definitions. - - * lib/jit_sparc-fpu.c: Correct reversed float to/from double - conversion. - Correct wrong jit_get_reg call asking for a gpr and then - using the fpr with that number. - Correct wrong branch displacement computation for - conditional branches. - - * lib/jit_sparc.c: Correct getarg_d and pushargi_d implementation. - Add rem* entries to the switch converting IR to machine code. - - * lib/lightning.c: Correct a problem detected when adding - the jit_class_nospill flag to jit_get_reg, that was caused - when having a branch to an "epilog" node, what would cause - the code to think all registers in unknown state were live, - while in truth, all registers in unknown state in the - "just after return" point are actually dead. - -2013-02-17 Paulo Andrade - - * include/lightning/jit_sparc.h, lib/jit_sparc-cpu.c, - lib/jit_sparc-fpu.c, lib/jit_sparc.c: New files implementing - the basic framework of the sparc port. - - * configure.ac, include/lightning.h, include/lightning/Makefile.am, - include/lightning/jit_private.h, lib/jit_disasm.c: Update - for the sparc port framework. - - * lib/jit_mips.c: Correct reversed retr/reti logic. - - * lib/jit_ppc.c: Correct misspelled __LITTLE_ENDIAN. - - * lib/lightning.c: Always do byte hashing in hash_data, because - the logic to "compress" strings causes large pointers to not - be guaranteed aligned at 4 byte boundaries. - Update for the sparc port framework. - -2013-02-11 Paulo Andrade - - * lib/jit_arm.c: Correct jit_pushargi_f in the arm hardfp abi. - Most of the logic uses even numbered register numbers, so that - a float and a double can be used in the same register, but - the abi requires packing the float arguments, so jit_pushargi_f - needs to allocate a temporary register to modify only the - proper register argument (or be very smart to push two - immediate arguments if applicable). - -2013-02-11 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Implement the new - jit_clear_state and jit_destroy_state calls. jit_clear_state - releases all memory not required during jit_execution; that - is, leaves only the mmap'ed data and code buffers allocated. - jit_destroy_state releases the mmap'ed buffers as well as - the jit_state_t object itself, that holds pointers to the - code and data buffers, as well as annotation pointers (for - disassembly or backtrace) in the data buffer. - - * lib/jit_note.c: Correct invalid vector offset access. - - * check/ccall.c, check/lightning.c, doc/ifib.c, doc/incr.c, - doc/printf.c, doc/rfib.c, doc/rpn.c: Use the new jit_clear_state - and jit_destroy_state calls, to demonstrate the new code to - release all jit memory. - - * doc/body.texi: Add basic documentation and usage description - of jit_clear_state and jit_destroy_state. - -2013-02-11 Paulo Andrade - - * include/lightning/jit_private.h, lib/jit_note.c, lib/lightning.c: - Store all annotation information in the mmap'ed area reserved for - read only data. This adds code to not allocate memory for jit_note_t - objects, and to relocate jit_line_t objects and its contents after - calculating annotation information. The jit_line_t objects are - relocated because it is not possible to always calculate before - hand data layout because note information may be extended or - redundant entries removed, as well as allowed to be added in - non sequential order. - A bug was also corrected in _jit_set_note, that was causing it - to allocate new jit_line_t objects when not needed. It was still - working correctly, but allocating way more memory than required. - -2013-02-05 Paulo Andrade - - *include/lightning.h, lib/lightning.c: Add the new jit_live code - to explicitly mark a register as live. It is required to avoid - assuming functions always return a value in the gpr and fpr return - register, and to avoid the need of some very specialized codes - that vary too much from backend to backend, to instruct the - optimization code the return register is live. - - * lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, - lib/jit_x86.c: Update for the new jit_live code. - - * check/ret.ok, check/ret.tst: New files implementing a simple - test case that would previously fail at least in ix86/x86_64. - - * check/Makefile.am: Update for new "ret" test case. - -2013-02-05 Paulo Andrade - - * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Validate and correct - problems in the qmul and qdiv ppc implementation. - -2013-02-04 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_arm-cpu.c, lib/jit_arm.c, lib/jit_mips-cpu.c, - lib/jit_mips.c, lib/jit_ppc-cpu.c, lib/jit_ppc.c, - lib/jit_x86-cpu.c, lib/jit_x86.c, lib/lightning.c: - Implement the new qmul and qdiv instructions that return signed - and unsigned lo/hi multiplication result and div/rem division result. - These should be useful for jit translation of code that needs to - know if a multiplication overflows (no branch opcode added) or if - a division is exact (easy check if remainder is zero). - - * check/lightning.c, lib/jit_print.c, check/Makefile.am, - check/all.tst: Update for the new qmul and qdiv instructions. - - * check/qalu.inc, check/qalu_div.ok, check/qalu_div.tst, - check/qalu_mul.ok, check/qalu_mul.tst: New files implementing - simple test cases for qmul and qdiv. - -2013-01-30 Paulo Andrade - - * doc/body.texi: Correct "jmpi" description that incorrectly - told it was possible to pass any address as jump target. The - only way to do that is "movi+jmpr". - -2013-01-30 Paulo Andrade - - * lib/jit_x86-cpu.c: Correct undefined behavior code. - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56143 - -2013-01-29 Paulo Andrade - - * configure.ac: Use AC_CONFIG_HEADERS instead of AC_CONFIG_HEADER - to have HAVE_CONFIG_H defined with latest aclocal. - - * include/lightning/jit_private.h, lib/lightning.c: Add new - abstraction to use an heuristic to calculate amount of space - required for jit generation, and code to reallocate buffer if - did miscalculate it. - - * lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_x86.c: - Update to use new code to estimate and resize of required buffer - for jit code. - - * lib/jit_x86-cpu.c: Minor cosmetic change to avoid adding a - non required rex prefix when calling a function pointer stored - in a register. - -2013-01-24 Paulo Andrade - - * check/Makefile.am: "make debug" target should pass only - the main test tool program as argument for running gdb - - * configure.ac: Add the --enable-assertions options. - - * doc/Makefile.am, doc/body.texi, doc/lightning.texi: - Major rewrite of the documentation to match the current - implementation. - - * doc/version.texi: Automatic date update. - - * doc/ifib.c, doc/incr.c, doc/printf.c, doc/rfib.c, doc/rpn.c: - Implementation of the documentation examples, that are also - compiled during a normal build. - - * doc/p-lightning.texi, doc/porting.texi, doc/toc.texi, - doc/u-lightning.texi, doc/using.texi: These files were - renamed in the documentation rewrite, as the documentation - was significantly trimmed due to full removal of the porting - chapters. Better porting documentation should be added but - for the moment it was just removed the documentation not - matching the implementation. - -2013-01-18 Paulo Andrade - - * lib/jit_note.c: Correct bounds check and wrong code keeping - a pointer that could be changed after a realloc call. - -2013-01-18 Paulo Andrade - - * check/3to2.tst, check/add.tst, check/allocai.tst, check/bp.tst, - check/call.tst, check/ccall.c, check/clobber.tst, check/divi.tst, - check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, check/ldstr.tst, - check/ldstxi-c.tst, check/ldstxi.tst, check/ldstxr-c.tst, - check/ldstxr.tst, check/lightning.c, check/rpn.tst, check/stack.tst, - check/varargs.tst, include/lightning.h, - include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_disasm.c, - lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc.c, lib/jit_print.c, - lib/jit_x86.c, lib/lightning.c: Extend the "jit_note" abstraction - with the new "jit_name" call, that receives a string argument, and - should usually be called to mark boundaries of functions of code - generating jit (that is, it is not expected that the language - generating jit map its functions to jit functions). - -2013-01-17 Paulo Andrade - - * check/add.tst, check/allocai.tst, check/bp.tst, check/divi.tst, - check/fib.tst, check/lightning.c, include/lightning/jit_arm.h, - include/lightning/jit_mips.h, include/lightning/jit_ppc.h, - include/lightning/jit_private.h, include/lightning/jit_x86.h: - Make JIT_RET, JIT_FRET and JIT_SP private. These should not be - used in any operations due to frequently having special - constraints (usually JIT_FRET). JIT_FP must be made available - because it must be used as the base register to access stack - space allocated with jit_allocai. - -2013-01-14 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Add an extra align - argument to the jit_data call (that should be made private), - so that it should not align strings at 8 bytes. - Correct the jit_note call to include the null ending byte - when adding label/note names to the "jit data section". - -2013-01-11 Paulo Andrade - - * lib/jit_note.c: New file implementing a simple string+integer - annotation, that should be used to map filename and line number - to offsets in the generated jit. - - * include/lightning.h, lib/lightning.c: Update for the new - note code. - Add an extra mandatory argument to init_jit, that is used - as argument to bfd_openr. - Change from generic void* to char* the argument to jit_note - and add an extra integer argument, to map to filename and - line number. - - * check/ccall.c, check/lightning.c, include/lightning/jit_private.h, - lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_ppc.c, - lib/jit_print.c, lib/jit_x86.c: lib/Makefile.am: Update for the - new annotation code. - - * configure.ac, check/Makefile.am: Update to work with latest - automake. - -2013-01-09 Paulo Andrade - - * include/lightning.h, lib/jit_arm.c, jit_mips-fpu.c, - lib/jit_mips.c, lib/jit_print.c, lib/jit_x86.c, lib/lightning.c: - Remove the jit_code_getarg_{f,d} and jit_code_pusharg{i,r}_{f,d} - calls, replacing them with the new, internal only, jit_movr_w_f, - jit_mov{r,i}_f_w, jit_movr_ww_d, and jit_mov{i,r}_d_ww, that - better describe the operation being done, and allow removing - the hackish code to detect special conditions for arm when - moving from/to vfp from/to a grp register pair. - Rename jit_code_retval_{f,d} to jit_code_x86_retval_{f,d} as - it is specific to 32 bit x86, and used to move abi return - value in x87 register to a sse register. - -2013-01-05 Paulo Andrade - - * 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-02 Paulo Andrade - - * check/float.tst: Correct test case to match ppc also - converting positive infinity to 0x7fffffff. - - * lib/jit_arm-swf.c: Correct typos with double underscores. - - * lib/lightning.c: Correct remaining wrong reverse jump logic. - -2012-12-29 Paulo Andrade - - * lib/lightning.c: Correct both, wrong and confusing logic - to compute the reverse of a jump. Now it properly matches - C semantics for "eq" (==) and "ne" (!=) and correct computation - of reverse of "uneq" as "gt". - - * check/branch.tst: Update "ne" float branch check that - previously happened to be wrongly tested with a NaN argument. - -2012-12-29 Paulo Andrade - - * check/float.ok, check/float.tst: New test cases implementing - extensive validation of float comparison and branch code - generation as well as integer conversion, involving NaN and - [+-]Inf. - - * lib/jit_arm-swf.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: - Correct bugs found by new float test case. - - * lib/jit_x86.c: Correct cut&paste error added in commit to - convert jit_arg* return value to a jit_node_t*, that would - cause it to not properly handle double arguments in ix86. - - * check/Makefile.am: Update for the new test case. - -2012-12-28 Paulo Andrade - - * check/lightning.c, include/lightning.h, lib/jit_arm.c, - lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_x86.c, - lib/lightning.c: Change return value of jit_arg{,_f,_d} to - a jit_node_t* object, that should be used as argument to - jit_getarg_{c,uc,s,us,i,ui,l,f,d}. This just requires changing - from jit_int32_t to jit_pointer_t (or jit_node_t*) the "handle" - for the getarg calls, with the benefit that it makes it easy - to implement patching of the stack address of non register - arguments, this way allowing to implement variable size stack - frames if applicable; useful if there are too many registers and - jit functions uses only a few callee save registers. - -2012-12-27 Paulo Andrade - - * lib/jit_arm.c, lib/jit_mips-cpu.c, lib/jit_mips.c: Correct - regressions when patching jit_calli for a forward function. - - * lib/jit_ppc-cpu.c: Correct wrong arguments to ANDI opcode - in jit_getarg_u{c,s} implementation. - -2012-12-23 Paulo Andrade - - * check/call.ok, check/call.tst: New test cases to validate - simple typed argument and return values in function calls. - - * check/lightning.c: Properly handle jit_movi of labels for - backward and forward code labels. - - * check/Makefile.am: Update for new test case. - -2012-12-23 Paulo Andrade - - * check/carry.ok, check/carry.tst: New test case to validate - carry condition handling. - - * check/Makefile.am: Update for new test case. - -2012-12-22 Paulo Andrade - - * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Implement logic for - jit_htonr for big endian, so that ppc (big endian) pass the - new clobber.tst test case. - -2012-12-22 Paulo Andrade - - * lib/jit_arm.c: Correct use of wrong argument offset - variable in armv7l or float/double argument for varargs - function in armv7hl. - Correct jit_getarg* logic in software float mode to - match expected behavior in other backends, that is, if - a function is not called, it is safe to use a few lightning - calls before a next jit_getarg* call, as done in the test - case check/stack.tst. The proper solution should be to - extend the parser in lib/lightning.c to check if there is - some float operation that will call some (libgcc?) function, - but software float arm should be a very uncommon backend for - lightning, so, just load the already in place arguments - saved to stack, assuming the register argument was clobbered - (what should not be the case most times...). - -2012-12-22 Paulo Andrade - - * check/clobber.ok, check/clobber.tst: New test case doing - extensive validation tests to ensure registers not used in - a operation are not clobbered. - - * check/Makefile.am: Update for new test case. - -2012-12-21 Paulo Andrade - - * lib/lightning.c: Partially rewrite/revert code to compute - initial register live state at the start of a basic block. - The original logic was corrupted when adding optimizations - to do as few computations as possible in jit_update. The - reglive field must be always a known set of live registers - at the start of a basic block. The value that was incorrect - was the regmask field, that must be the set of registers - that are in unknown state, because they are not known live, - neither set (or possibly not set) in the basic block, and - *must* store the state at the start of the basic block. - -2012-12-20 Paulo Andrade - - * include/lightning/jit_ppc.h: Correct mismatch of JIT_F{1,5} - with enum codes, that were correct, and returned by jit_f(). - - * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: Properly - implement and better describe values when generating stack - frames. - -2012-12-18 Paulo Andrade - - * check/stack.ok, check/stack.tst: New files to test data - integrity on a deep chain of stack frames. - - * lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c, - lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c, - lib/jit_x86.c, lib/jit_x86-cpu.c: Calculate _jit->function->stack - in the emit stage, otherwise it will calculate it wrong if - need to jit_allocai space to spill registers. - - * lib/lightning.c: Correct wrong offset when updating the - "current" jit function pointer in the code that may need to - allocate stack space to spill registers. - - * check/lightning.c: Correct off by one data space check. - - * check/Makefile.am: Update for new test case. - -2012-12-17 Paulo Andrade - - * check/fop_abs.ok, check/fop_abs.tst, check/fop_sqrt.ok, - check/fop_sqrt.tst: New files implementing simple test cases - for the extra float operations. - - * check/Makefile.am: Update for new test cases. - - * check/alu.inc: Add an extra macro to check for unordered - equality on tests where it is expected to use NaN as an - argument. - - * check/lightning.c: Minor change for proper/common argument - syntax handling ommiting arguments to options. - -2012-12-17 Paulo Andrade - - * check/Makefile.am: Automatically generate pattern list - of tests with alternate jit generation options. This should - prevent typos and needing to change multiple places after - a change. - -2012-12-14 Paulo Andrade - - * check/lightning.c: Remove the ".cpu name value" syntax, - as it was not able to do proper changes before the jit - internal data structure was initialized. Now it supports - several getopt options to force using different jit - generation options, effectively replacing the previous - syntax. - - * check/run-test: Add simple extra logic to handle differently - named test scripts, used to test things like x87 coprocessor - in ix86, and arm instruction set or software float in armv7l. - - * configure.ac: Add some AC_RUN_IFELSE calls to figure at - compile time if can test different code generation options, - and update Makefile generation accordingly. - - * check/Makefile.am, lib/jit_arm.c, lib/jit_x86.c: Update to - properly work with the test tool updating the jit_cpu global - information. - - * check/check.arm.sh, check/check.swf.sh, check/check.x87.sh: - New wrapper files passing -mthumb=0, mvfp=0 and -mx87=1 to - the test tool, if applicable, so that it can validate alternate - code generation options on test hosts that support them. - -2012-12-14 Paulo Andrade - - * lib/jit_x86-x87.c, lib/jit_x86.c: Correct test cases in ix86 - when using the x87 coprocessor instead of sse2+. - -2012-12-14 Paulo Andrade - - * include/lightning.h, include/lightning/jit_private.h, - lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_x86.c, - lib/lightning.c: Make jit_ellipsis implementation not - backend specific. It is not intended to handle va_list - like objects at runtime, as jit_arg* and jit_getarg* - return constant values resolved at parse time, so, effectively - it is not possible to create printf like jit functions, as - there is no va_start, va_arg, va_end, etc, abstraction. This - limitation should be kept for the sake of making new ports - easier. - -2012-12-14 Paulo Andrade - - * include/lightning.h, lib/lightning.c: Add two extra wrapper - functions to avoid need for excess pointer to/from word casts. - - * check/lightning.c: Only need for pointer to/from word cast - now is jit_movi, update accordingly. - -2012-12-13 Paulo Andrade - - * check/varargs.ok, check/varargs.tst: New test cases implementing - simple varargs calls with a large amount of arguments to exercise - excess arguments on stack. - - * include/lightning.h: Include config.h if HAVE_CONFIG_H is - defined. - - * lib/jit_arm.c: Allocate a fpr register, not a gpr one for - temporary when pushing varargs arguments in the stack. - - * lib/jit_arm-swf.c: Correct code changing the wrong offset - in jit_absr_d and jit_negr_d in software float. - - * lib/jit_mips.c: Correct calculation of offsets of arguments - on stack. - - * lib/jit_ppc.c: Correct bogus logic for "next" offset of arguments - on stack and adjust for fixed offset of stack arguments. - -2012-12-12 Paulo Andrade - - * include/lightning.h, lib/jit_arm.c, lib/jit_mips.c, - lib/jit_ppc.c, lib/jit_x86.c, lib/lightning.c: Change jit_prepare - to no longer receive an argument. If receiving an argument, it - should be an ABI specifier, not a boolean if varargs or not, - and add the new jit_ellipsis call, to specify where the - ellipsis is in the C prototype of the function being called. - Note that currently it is not supported to define varargs - functions and it will be ignored if calling jit_ellipsis not - in a prepare/finish* block, but this should be addressed. - - * check/allocai.tst, check/alu_add.tst, check/alu_and.tst, - check/alu_com.tst, check/alu_div.tst, check/alu_lsh.tst, - check/alu_mul.tst, check/alu_neg.tst, check/alu_or.tst, - check/alu_rem.tst, check/alu_rsh.tst, check/alu_sub.tst, - check/alu_xor.tst, check/alux_add.tst, check/alux_sub.tst, - check/bp.tst, check/branch.tst, check/cvt.tst, check/divi.tst, - check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, - check/ldstr.tst, check/ldstxi-c.tst, check/ldstxi.tst, - check/ldstxr-c.tst, check/ldstxr.tst, check/rpn.tst, - check/lightning.c: Update for the change to jit_prepare and - addition of jit_ellipsis. - -2012-12-11 Paulo Andrade - - * lib/jit_ppc-cpu.c: Make movr a function that checks arguments - so that other code can safely assume it is a noop if src and dst - are the same register. - Implement rem{r,i}{,_u} as a div{,u}/mul/sub. - Correct ANDIS, ORIS and XORIS calls to cast the argument to - unsigned before the shift to avoid an assertion if the argument - had the topmost bit set. - Implement lshi, rshi and rshi_u as functions to test for a - zero argument, that would otherwise trigger an assertion when - computing the shift value. - Do a simple implementation of bm{s,c}{r,i} with a temporary, - "andr" of arguments and jump based on comparison with zero. - Correct typo in ldxi_c. - - * lib/jit_ppc-fpu.c: Correct wrong arguments to FDIV* and STF*. - - * lib/jit_ppc.c: Correct wrong check for 6 instead of 8 integer - arguments in registers. If calling a varargs function and - passing a float or double argument, also either store the - value in the stack or in integer registers, as varargs functions - do not fetch it from float registers. - Add "case" for new functions and incorrectly missing ones. - Call libgcc's __clear_cache, that should know what to do - if the hardware needs flushing cache before execution. - - * lib/lightning.c: Do a simple/trivial logic in jit_regset_scan1, - that should make it easier for the compiler to optimize it, and - that also corrects the previously wrong code for big endian, and - that was causing problems in ppc due to not saving all callee save - registers as it was not "finding" them in the regset due to the - little endian assumption bug. - -2012-12-11 Paulo Andrade - - * configure.ac: Only default to using the builtin disassembler - if on GNU/Linux. This should be temporary, due to requiring - /proc/self/exe. - Correctly check $target_cpu for powerpc. - - * include/lightning/jit_ppc.h: Correctly implement jit_v_num. - - * include/lightning/jit_private.h: Declare proper prototype - for jit_init_debug and jit_finish_debug. - - * lib/jit_ppc-cpu.c: Remove code to save/restore callee save - float registers, as it is not required since those float - registers are not usable currently. - Change prolog and epilog generation to, at least comparing - code, match what gcc generates in "gcc -O0", but it is still - failing in Darwin PPC, apparently due to the __clear_cache - call not being enough, as frequently it will also fail to - execute, and the code buffer is all zeroes. - - * lib/lightning.c: Do not fail in jit_regset_scan1 calls due - to passing 64 as argument on computers with 64 registers. - -2012-12-10 Paulo Andrade - - * lib/jit_mips-cpu.c: Correct all current test cases. - Call the "xori" not the "XORI" macro for jit_xori implementation, - as the XORI macro handles only 16 bit unsigned values. - Call the "movr" macro, not the "movi" macro in the special - case of adding or subtracting zero. - Use the proper temporary register in the jit_andr implementation. - -2012-12-09 Paulo Andrade - - * check/alu.inc, check/alu_add.ok, check/alu_add.tst, - check/alu_and.ok, check/alu_and.tst, check/alu_com.ok, - check/alu_com.tst, check/alu_div.ok, check/alu_div.tst, - check/alu_lsh.ok, check/alu_lsh.tst, check/alu_mul.ok, - check/alu_mul.tst, check/alu_neg.ok, check/alu_neg.tst, - check/alu_or.ok, check/alu_or.tst, check/alu_rem.ok, - check/alu_rem.tst, check/alu_rsh.ok, check/alu_rsh.tst, - check/alu_sub.ok, check/alu_sub.tst, check/alu_xor.ok, - check/alu_xor.tst, check/alux_add.ok, check/alux_add.tst, - check/alux_sub.ok, check/alux_sub.tst, check/branch.ok, - check/branch.tst: New test cases for arithmetic and branch - tests. - - * check/Makefile.am: Update for new test cases. - - * include/lightning/jit_private.h: Make the jit_reg_free_p - macro shared by all backends. Previously was added for the - arm backend, but is useful in the x86_64 backend when checking - state of "special purpose register". - Also add the new jit_class_named register class, that must be - or'ed with the register value if calling jit_get_reg expecting - an specific value, because the specific register value may be - zero, that previously was treated as no register requested. - - * lib/jit_arm-cpu.c: Correct argument order for T2_MVN. - - * lib/jit_arm-swf.c: Call the proper function for double - divide. The "software float" implementation just calls - libgcc functions. - - * lib/jit_arm.c: Return float/double values in the float - register if using the hard float ABI. - - * lib/jit_x86-cpu.c: Change the can_sign_extend_int_p macro - to not include -0x80000000L, because there is code that - "abuses" it and thinks it can negate the immediate value - after calling that macro. - Correct implementation of jit_subi that had a wrong code - patch logic doing subtraction with reversed arguments. - Correct REX prefix calculation in the jit_muli implementation. - Correct logic to get/unget %*ax and %*dx registers in divremr - and divremi. - Correct divremi that was using the symbolic, unique %*ax - value in on place (not using the _REGNO name suffix). - Correct cut&paste error causing it to use "xor" instead of - "or" in one code path of the jit_ori implementation. - Correct several flaws when clobbering registers and/or when - one of the arguments was %*cx in the rotshr wrapper function - implementing most shift operations. - - * lib/lightning.c: No longer expect that the backend be smart - enough to know what to do when asking for a named register - if that register is already an argument or is live. It fails - if it is an argument, or if register is live, fails if cannot - spill. - No longer incorrectly assume that eqr_{f,d} and ltgr_{f,d} are - safe to inverse value tests in jump thread optimization. - -2012-12-05 Paulo Andrade - - * check/Makefile.am, check/cvt.ok, check/cvt.tst: Add new - "cvt" test case to test conversion from/to int/float types. - - * check/lightning.c: Only define truncr_{f,d}_l in 64 bit mode. - - * include/lightning.h: Correct typo that caused it to define - jit_truncr_{f,d}_l in 32 bit mode. - - * lib/jit_arm-cpu.c: Avoid assertion failure in the signed/unsigned - extend opcodes generation as it shares an interface for 3 argument - opcode generation. - - * lib/jit_x86-cpu.c: Correct wrong argument passed to - jit_unget_reg in the andi implementation and wrong byte - unsigned extend code generation. - - * lib/jit_x86-sse.c: Correct conversion from "word" to float or - double as is dependent on wordsize. - -2012-12-05 Paulo Andrade - - * check/ldstr-c.ok, check/ldstr-c.tst, check/ldstxi-c.ok, - check/ldstxi-c.tst, check/ldstxr-c.ok, check/ldstxr-c.tst: - New test case files testing load clobbering the base and/or - index register; - - * check/ldst.inc: New file with common definition for all the - ldst* test cases. - - check/Makefile.am, check/ldsti.tst, check/ldstr.tst, - check/ldstxi.tst, check/ldstxr.tst: Update for new common - definitions file and new register clobber ldst tests. - -2012-12-05 Paulo Andrade - - * lib/jit_mips-fpu.c: Correct wrong register order in stxr_{f,d} - in the mips backend. - -2012-12-05 Paulo Andrade - - * lib/jit_arm-vfp.c: Correct regression found in armv7l with - latest test cases. - -2012-12-05 Paulo Andrade - - * check/ldstxi.tst, check/ldstxr.tst: Correct wrong argument - order for 32 bit mode tests. - - * configure.ac: Correct check for ix86 target_cpu. - -2012-12-05 Paulo Andrade - - * check/ldstr.ok, check/ldstr.tst, check/ldsti.ok, - check/ldsti.tst, check/ldstxr.ok, check/ldstxr.tst, - check/ldstxi.ok, check/ldstxi.tst: - New test case files exercising a very large amount of - register combinations to verify load/store implementation. - - * check/Makefile.am: Update for new test cases. - - * lib/jit_x86-cpu.c: Correct wrong argument order when - computing REX prefix for {ld,st}r_T codes; - -2012-12-04 Paulo Andrade - - * lib/jit_mips-fpu.c, lib/jit_mips.c: Implement missing mips - jit_sqrtr_{f,d} codes. - - * check/all.tst, include/lightning.h, lib/jit_print.c: Change - declaration order and call order in all.tst of {add,sub}c and - {add,sub}x. *c must be called before to set the carry and *x - second to use the carry and keep it set. The wrong call order - was causing all.tst to fail in mips, where a register is - allocated to keep a global carry state. - -2012-12-04 Paulo Andrade - - * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, - lib/jit_mips-fpu.c, lib/jit_mips.c: Correct float/double - argument handling and make the mips backend pass the initial - test cases. - - * include/lightning.h, ib/jit_print.c, lib/lightning.c: - Add extra enum values for argument handling functions that - could not be abstracted to the current codes, that is, when - float values need to move from/to gpr from/to fpr. It would - be more tempting to add such primitives, but they would have - wordsize limitations, and it is not expected to add codes - with one gpr argument for 64 bit and two for 32 bit. - - * lib/jit_ppc.c: Check _jit->function before calling jit_epilog() - to avoid a runtime exception. - -2012-12-04 Paulo Andrade - - * include/lightning/jit_mips.h, lib/jit_mips.c: Update to - make the mips backend compile in a qemu image. - - * lib/jit_ppc.c: Minor adaptations to help in having the - ppc backend compilable. - -2012-12-03 Paulo Andrade - - * configure.ac, include/lightning/jit_private.h, lib/jit_arm-cpu.c, - lib/jit_arm-swf.c, lib/jit_arm.c, check/Makefile.am: Correct - implementation of the arm backend port to build and pass the - current test cases. Tested on armv7 with softfp abi. - - * lib/jit_disasm.c: Rename and change prototype of static - disassemble function as in the arm backend it is required - to access state information stored in the jit_state_t object. - - * check/3to2.tst, check/add.tst: Correct test case code assuming - JIT_RO and JIT_RET are the same, and even if they are the same, - the logic was incorrect because it must always call jit_retval* - to fetch a function call return before any other instruction. - The arm backend hash a special condition if jit_retval is not - called, because "r0" is not JIT_R0, but is JIT_RET and *also* - the first argument for a called function, so JIT_RET must be - only used as an argument to jit_retval. - -2012-12-03 Paulo Andrade - - * check/all.tst, check/lightning.c: Only declare or use 64 bit - interfaces on 64 bit builds. - - * check/fib.tst: Use simpler logic to not need preprocessor - conditionals for 32 or 64 bit. - - * include/lightning.h: Only declare 64 bit macros on a 64 bit - build. Code using lightning must know about wordsize and the - jit generation limitations, also, this way it generates a - compile time failure, not a runtime assertion. - - * include/lightning/jit_x86.h: Correct typo in macro name. - - * lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c, - lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c, - lib/jit_x86.c, lib/jit_x86-cpu.c: Correct wrong code to get - current jit function pointer. - - * lib/lightning.c: Move call to the simplify() optimization - to after register liveness is known. Previous code did work - by accident but now with proper test cases the problem was - noticed. - - * lib/jit_disasm.c: Always cast bfd_vma to long long when - passing it as printf argument. - -2012-12-03 Paulo Andrade - - * configure.ac, check/Makefile.am, check/check.sh, - doc/Makefile.am, include/lightning/Makefile.am, - lib/Makefile.am: Correct make distcheck. - -2012-12-02 Paulo Andrade - - * lib/jit_ppc.c: Assign copyright ownership to FSF. - - * lib/jit_x86-cpu.c: Correct integer multiplication that was - generating code with reversed register arguments. - - * check/rpn.ok, check/rpn.tst: New test case file. - -2012-12-02 Paulo Andrade - - * lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: - Actually change copyright owner to FSF as avertised. - - * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, - lib/jit_arm-vfp.c, lib/jit_arm.c, - lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c, - lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: New - files implementing initial code different jit backends. - - * include/lightning/jit_private.h: Add extra field to the - private jit_patch_t type, required by the arm port. - - * lib/Makefile.am: Update for the new backend implementation - files. - -2012-12-02 Paulo Andrade - - * check/Makefile.am: Add proper "make clean" rule and missing - check.sh to EXTRA_DIST. - -2012-12-02 Paulo Andrade - - * .gitignore: Update pattern of ignored files. - - * check/Makefile.am: Add rule to build liblightning.la dependency - in case of running "make check" before building the library. - -2012-12-02 Paulo Andrade - - * lightning/Makefile.am, lightning/asm-common.h, - lightning/core-common.h, lightning/fp-common.h, - lightning/funcs-common.h, lightning/i386/Makefile.frag, - lightning/i386/asm-32.h, lightning/i386/asm-64.h, - lightning/i386/asm.h, lightning/i386/core-32.h, - lightning/i386/core-64.h, lightning/i386/core.h, - lightning/i386/fp-32.h, lightning/i386/fp-64.h, - lightning/i386/fp.h, lightning/i386/funcs.h, - lightning/ppc/asm.h, lightning/ppc/core.h, - lightning/ppc/fp.h, lightning/ppc/funcs.h, - lightning/sparc/asm.h, lightning/sparc/core.h, - lightning/sparc/fp.h, lightning/sparc/funcs.h: - Removed. The core logic is used in the new code, and new mips - and arm ports will be added. At first, sparc will not be - supported as it has not yet been ported to the new engine. - -2012-12-02 Paulo Andrade - - * tests/Makefile.am, tests/3to2.c, tests/3to2.ok, tests/add.c, - tests/add.ok, tests/allocai.c, tests/allocai.ok, tests/bp.c, - tests/bp.ok, tests/divi.c, tests/divi.ok, tests/fib.c, tests/fib.ok, - tests/fibdelay.c, tests/fibdelay.ok, tests/fibit.c, tests/fibit.ok, - tests/funcfp.c, tests/funcfp.ok, tests/incr.c, tests/incr.ok, - tests/ldst.c, tests/ldst.ok, tests/ldxi.c, tests/ldxi.ok, - tests/modi.c, tests/modi.ok, tests/movi.c, tests/movi.ok, - tests/printf.c, tests/printf.ok, tests/printf2.c, tests/printf2.ok, - tests/ret.c, tests/ret.ok, tests/rpn.c, tests/rpn.ok, tests/rpnfp.c, - tests/rpnfp.ok, tests/sete.c, tests/sete.ok, tests/testfp.c, - tests/testfp.ok, tests-run-test: Removed previous test suite, in - favor of a newer one in the check subdirectory. - - * check/3to2.ok, check/3to2.tst, check/add.ok, check/add.tst, - check/allocai.ok, check/allocai.tst, check/bp.ok, check/bp.tst, - check/divi.ok, check/divi.tst, check/fib.ok, check/fib.tst: - New sample input for the new test program, loosely matching - several of the previous test cases. - - * check/Makefile.am: New test suite makefile. - - * check/check.sh, check/run-test: New wrapper files for the - new test suite. - - * check/lightning.c: New file. The main driver of the new test - suite, that compiles to a parser of a very simple assembly like - language, generates jit and executes it. - - * check/all.tst: New file. A generic debug and sample test file - with a directive to prevent it from being executed, and useful to - read disassembly of all possible instructions, using a fixed set - of registers. - - * include/Makefile.am, include/lightning.h, - include/lightning/Makefile.am, include/lightning/jit_arm.h, - include/lightning/jit_mips.h, include/lightning/jit_ppc.h, - include/lightning/jit_private.h, include/lightning/jit_x86.h, - lib/Makefile.am, lib/jit_disasm.c, lib/jit_print.c, - lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c, - lib/jit_x86.c, lib/lightning.c: New files. These files are - written from scratch, only by , and have now - copyright assignment to the FSF. This is the core of the new - lightning rework. Previously it was integrated in code with - a garbage collector and several custom types like vectors and - hash tables, so this first code merge with lightning converts - that code into a library extracting only the jit bits, and at - first only for x86_64 GNU/Linux. - - * lightning.h, m4/lightning.m4: Removed. These are no longer - required in the new lightning code. - - .gitignore, Makefile.am, configure.ac: Update for the new - lightning code. - -2012-12-02 Paulo Andrade - * .cvsignore: Removed for extra cleanup. - - * build-aux: Rename directory to m4. - - * m4: Renamed to "default" name and for consistency with merge - with code rework to be imported in lightning. - - * .gitignore, configure.ac, Makefile.am, doc/Makefile.am: - Update for build-aux to m4 rename. - -2012-12-01 Paulo Andrade - - * opcode/Makefile.am, opcode/Makefile.in, opcode/ansidecl.h, - opcode/bfd.h, opcode/dis-asm.h, opcode/dis-buf.c, opcode/disass.c, - opcode/i386-dis.c, opcode/i386.h, opcode/ppc-dis.c, opcode/ppc-opc.c, - opcode/ppc.h, opcode/sparc-dis.c, opcode/sparc-opc.c, opcode/sparc.h, - opcode/sysdep.h: Removed. Do not bundle GNU binutils files. - - * aclocal.m4, configure, Makefile.in, config.h.in, doc/Makefile.in, - lightning/Makefile.in, tests/Makefile.in: Removed. Do not maintain - autogenerated files that also generate too much diff noise when - regenerated in git. - - * build-aux/help2man, build-aux/texinfo.tex, build-aux/texi2dvi: - Removed. Buildenvironment must have an up to date version from - upstream installed. - - * build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, - build-aux/install-sh build-aux/mdate-sh build-aux/missing: Removed. - Do not maintain a copy of automake files in git. Release tarballs - must use an up to date version. - - * lightningize.in, doc/lightningize.1: Removed. Do not encourage - bundling lightning in other packages. It should use a system package - or a proper thirdy part subdirectory. - - * INSTALL: Removed. Autoreconf removes it and creates a symlink - when regenerating files, so, avoid conflicts in git and let - automake create the symlink. - - * .gitignore: Add INSTALL and autogenerated files. - - * configure.ac, Makefile.am: Update for removal of opcode subdir, - auto generated files and lightningize. - - * tests/Makefile.am, tests/3to2.c, tests/add.c, tests/bp.c, - tests/fib.c, tests/fibdelay.c, tests/fibit.c, tests/funcfp.c, - tests/incr.c, tests/printf.c, tests/rpn.c, tests/rpnfp.c, - tests/sete.c, tests/testfp.c: Update for removal of opcode subdir. - - * doc/Makefile.am: Update for removal of lightningize. - - * configure.ac, lightning/ppc/funcs.h, lightning/sparc/funcs.h, - lightning/i386/fp.h, lightning/i386/core.h, lightning/i386/asm.h, - tests/3to2.c, tests/add.c, tests/bp.c, tests/fib.c, tests/fibdelay.c, - tests/fibit.c, tests/funcfp.c, tests/incr.c, tests/printf.c, - tests/rpn.c, tests/rpnfp.c, tests/sete.c, tests/testfp.c: - Remove LIGHTNING_CROSS, it is half supported and incomplete. - - * tests/3to2.c, tests/funcfp.c, tests/rpnfp.c: Remove preprocessor - check on JIT_FPR. If no hardware registers are available, the backend - must provide an alternative for software float. - - * lightning/ppc/core.h, lightning/sparc/core.h, tests/Makefile.am: - Remove JIT_NEED_PUSH_POP. It is absolutely not trivial to implement - properly on some backends due to stack alignment constraints, and - whenever it is required, using jit_allocai and using a properly - aligned stack vector, or a heap buffer, is better. - - * tests/push-pop.c, tests/push-pop.ok: Removed due to - JIT_NEED_PUSH_POP no longer available. - -2011-02-28 Paolo Bonzini - - * lightning/i386/core-64.h: Add jit_add{c,x}{i,r}_l, jit_mulr_{l,ul}_, - fix jit_mul{i,r}_{l,ul}. - -2010-08-20 Paolo Bonzini - - * lightning/i386/fp-64.h: Return patch address from jit_bXYr_{f,d}. - Reported by Paulo César Pereira de Andrade. - * lightning/ppc/fp.h: Likewise. - * lightning/sparc/fp.h: Implement FP branches. - -2010-08-18 Paolo Bonzini - - * lightning/i386/fp-64.h: Fix jp in jit_bner_{f,d}. - -2010-08-18 Paolo Bonzini - - * lightning/i386/fp-32.h: Fix -D_ASM_SAFETY compilation. - Reported by Paulo César Pereira de Andrade. - -2010-08-15 Paolo Bonzini - - * tests/ldst.c: Update. - * tests/Makefile.am: Use -ffloat-store to compile it. - -2010-08-15 Paolo Bonzini - - * lightning/i386/core.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s, - jit_ldxr_s): Move... - * lightning/i386/core-32.h: ... here. - * lightning/i386/core-64.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s, - Use movsbq and movswq. - -2010-08-10 Paulo César Pereira de Andrade - - * lightning/i386/core-32.h (jit_replace): Use MOVLrr, not MOVLir. - (jit_movbrm): Check index register as well. - * lightning/i386/fp-64.h: Add jit_extr_f_d and jit_extr_d_f. - * lightning/fp-common.h: Add jit_extr_f_d and jit_extr_d_f. - -2010-07-28 Paolo Bonzini - - * tests/Makefile.am: Add ldst test. - * tests/Makefile.in: Regenerate. - * tests/ldst.c: New. - * tests/ldst.ok: New. - -2010-07-28 Paolo Bonzini - - * THANKS: Add Paulo Cesar Pereira de Andrade. - * doc/porting.texi: Fix ordering of arguments in jit_stxi. - * lightning/i386/core-32.h (jit_replace): Remove cmp argument. - * lightning/i386/fp-64.h (jit_movi_f): Fix. - -2010-07-26 Paolo Bonzini - - * lightning/i386/core-32.h (jit_replace): Move here (removed - 2009-03-01). - -2010-07-19 Paolo Bonzini - - * build-aux/lightning.m4: Always set and replace lightning_frag. - * Makefile.in: Regenerate. - * aclocal.m4: Regenerate. - * config.h.in: Regenerate. - * configure: Regenerate. - * doc/Makefile.in: Regenerate. - * doc/lightningize.1: Regenerate. - * doc/version.texi: Regenerate. - * lightning/Makefile.in: Regenerate. - * opcode/Makefile.in: Regenerate. - * tests/Makefile.in: Regenerate. - -2009-03-01 Paolo Bonzini - - * lightning/i386/core-64.h: Use Mike's macros for x86-64 too. - * lightning/i386/core.h: Remove jit_replace. - - 2009-02-27 Mike Spivey - - * lightning/i386/core.h: Rewrite shift-handling macros. - * lightning/fp-common.h: Fix jit_extr_{f_d,d_f}. - -2009-02-17 Mike Spivey - - * lightning/i386/core.h: Fix blunder in operand order. - -2009-02-17 Paolo Bonzini - - * lightning/i386/fp-32.h: Another fix to jit_fp_btest. - -2009-02-17 Paolo Bonzini - - * lightning/fp-common.h: Define double branches if missing. - * lightning/i386/asm.h: Define JC and JNC mnemonics. - * lightning/i386/fp-32.h: Fix jit_fp_btest. All reported - by Mike Spivey. - -2008-10-09 Paolo Bonzini - - * lightning/ppc/funcs.h (jit_flush_code): Subtract 1 from end. - Reported by Eli Barzilay and Matthew Flatt. - -2008-08-23 Nix - - * lightning/i386/Makefile.frag: fp-32.h and fp-64.h are target files. - -2008-07-02 Laurent Michel - - * lightning/ppc/funcs.h (jit_flush_code): modified the computation - of start/end. The pointer arithmetic was done without casting. It - prevented compilation with recent gcc versions. - * lightning/ppc/core.h (jit_pushr_i): The offset for the store was - incorrect. Should have been 4 bytes below SP (not above). - * lightning/ppc/core.h (jit_popr_i): The offset for the load was - incorrect. Should have been 0 (not +8). - -2008-06-17 Paolo Bonzini - - * lightning/i386/asm-64.h: Forward IMULQir to IMULQirr, - fix REXQ order for IMULQirr. - -2008-06-17 Paolo Bonzini - - * lightning/i386/core.h: Fix _rN vs. _rR. - -2008-06-16 Paolo Bonzini - - * lightning/i386/core.h: Use jit_save in jit_replace. Move JIT_R - definition... - * lightning/i386/core-32.h: ... here; define jit_save so that - the core.h has no effect on the 32-bit backend. - * lightning/i386/core-64.h: Place JIT_R1/JIT_R2 in R10/R11, - place outgoing arguments in the right spot from the beginning, - define jit_save, fix jit_reg8/jit_reg16. - -2008-06-15 Paolo Bonzini - - * lightning/i386/core-64.h: Rewrite argument passing to - support up to 6 arguments and generate less code. - -2008-06-14 Laurent Michel - - * lightning/i386/core-64.h (jit_movi_l): When the operand is 0, - the XOR should be on a quadword. - * lightning/i386/core-64.h (jit_prolog): Keep 16-byte stack - alignment. - (jit_ret): Always use LEAVE. - -2008-06-13 Laurent Michel - - * lightning/i386/core-64.h: Add (void) casts for C++ compatibility. - * lightning/i386/asm.h: Likewise. - -2008-06-12 Paolo Bonzini - - * lightning/i386/core.h: Move JIT_V definition... - * lightning/i386/core-32.h: ... here. - * lightning/i386/core-64.h: ... and here. Avoid dancing between - RSI/RDI and R12/R13, and place JIT_V1/JIT_V2 in R12/R13. - -2008-06-11 Paolo Bonzini - - * build-aux/lightning.m4: Adjust LIGHTNING_BACKENDS, don't - use suffix support to distinguish i386/x86_64. - * lightning/i386/Makefile.frag: Use LIGHTNING_TARGET_FILES - to distribute *-32.h and *-64.h files now. - * lightning/i386/asm-i386: Moved to... - * lightning/i386/asm.h: Include the appropriate subtarget file. - * lightning/i386/core-i386: Moved to... - * lightning/i386/core.h: Include the appropriate subtarget file. - * lightning/i386/fp.h: New, include the appropriate subtarget file. - * lightning/i386/asm-32: Do not include asm-i386.h. - * lightning/i386/asm-64.h: Likewise. - * lightning/i386/core-32: Do not include core-i386.h. - * lightning/i386/core-64.h: Likewise. - * lightning/Makefile.am: Adjust for renamed files. - - * configure.ac: Define LIGHTNING_TARGET here. - * opcode/disass.c: Change list of valid LIGHTNING_TARGET values. - - * lightningize.in: Robustify against missing subtarget files. - -2008-06-11 Paolo Bonzini - - * lightning/i386/core-32.h: Use MOVLir instead of jit_movi_l - to implement jit_movi_p. - -2008-06-11 Paolo Bonzini - - * lightning/i386/core-32.h: Use separate __APPLE__ and SysV - prolog/ret macros. Subtract 12 bytes in __APPLE__ case to - keep stack aligned, and always use LEAVE in the epilog. - -2008-06-11 Paolo Bonzini - - * lightning/i386/core-i386.h: Fix C++ incompatibility. - -2008-06-10 Laurent Michel - - * lightning/i386/core-i386.h: Fix jit_replace8 for - case when one of the operands is _EAX. - -2008-05-19 Paolo Bonzini - - * tests/run-test: Avoid CRLF issues on mingw. - -2008-03-21 Paolo Bonzini - - * lightning/i386/core-64.h: Fix jit_{ld,st}{,x}i_{i,l}. - Remove jit_ld{,x}i_ul. - * lightning/core-common.h: Make jit_ld{,x}{i,r}_ul - always a synonym of the _l variant. - * doc/porting.texi: Document this. - -2008-03-19 Paolo Bonzini - - * lightning/i386/core-64.h: Fix uses of jit_qop_. - -2008-03-19 Paolo Bonzini - - * lightning/i386/core-64.h: Add boolean operations. - -2008-03-19 Paolo Bonzini - - * lightning/i386/asm-64.h: Add LEAQmr. - -2008-03-19 Paolo Bonzini - - * lightning/i386/core-64.h: Misc bugfixes. - -2008-03-19 Paolo Bonzini - - * lightning/i386/core-i386.c: Remove jit_ldr_i, jit_ldxr_i. - * lightning/i386/core-32.h: Add jit_ldr_i, jit_ldxr_i. - * lightning/i386/core-64.h: Add jit_ld{r,xr,i,xi}_{ui,l,ul}; - move jit_ldr_i, jit_ldxr_i, jit_str_l, jit_stxr_l with others. - -2008-03-19 Paolo Bonzini - - * lightning/asm-common.h: Add _s32P. - -2008-03-19 Paolo Bonzini - - * lightning/i386/core-64.h: Implement long mul/div/mod. - -2008-03-19 Paolo Bonzini - - * lightning/i386/asm-i386.h: Cast memory address to long for JCCim. - -2008-03-15 Paolo Bonzini - - * lightning/asm-common.h: Add underscores around __unused__ - attribute. - -2008-03-15 Paolo Bonzini - - * lightning/ppc/core.h: Avoid some "value computed is not used" - warnings. - * lightnings/tests/allocai.c: Silence other warnings. - -2008-03-14 Paolo Bonzini - - * lightningize.in: Fix some problems (not all). - -2008-03-14 Paolo Bonzini - - * lightning/i386/core-32.h: Avoid some "value computed is not used" - warnings; reported by Sam Steingold. - -2008-03-08 Paolo Bonzini - - * lightning/i386/core-32.h: Fix stxr_c(_EAX, _EBX, _ESI). - -2008-02-13 Paolo Bonzini - - * lightning/i386/asm-32.h: Avoid redefinition of _r1, reported by - Sam Steingold. - * lightning/i386/asm-64.h: Likewise. - -2008-02-08 Paolo Bonzini - - * lightning/i386/asm-i386.h: Don't define _VOID, reported - by Reini Urban. - -2008-02-03 Paolo Bonzini - - * build-aux/lightning.m4: Add --with-lightning-prefix option, suggested - by Sam Steingold. - -2008-01-14 Paolo Bonzini - - * lightning/i386/core-64.h: Use CALLsr, not CALLLsr. - -2008-01-13 Paolo Bonzini - - * lightning/i386/core-i386.h: Move jit_calli and jit_callr... - * lightning/i386/core-32.h: ... here. - * lightning/i386/core-64.h: Redefine them. - -2008-01-05 Paolo Bonzini - - * lightning/i386/fp-32.h: Fix sub(a,0,a). - * lightning/tests/3to2.c: Add new testcases. - * lightning/tests/3to2.ok: Add new testcases. - -2008-01-02 Paolo Bonzini - - * lightning/i386/fp-32.h: Fix sub(a,b,a) with a ~= JIT_FPR0. - * lightning/tests/3to2.c: New. - * lightning/tests/3to2.ok: New. - -2007-11-07 Paolo Bonzini - - * opcode/Makefile.am: Fix AM_CPPFLAGS. - -2007-08-12 Paolo Bonzini - - * lightning/i386/core-i386.h: Improve encoding of set* instructions. - * lightning/i386/core-64.h: Fix jit_bra_l. - * tests/sete.c: New. - * tests/sete.ok: New. - -2007-06-29 Paolo Bonzini - - * tests/bp.c: Upgrade to GPL/LGPLv3. - * lightning/i386/asm-32.h: Upgrade to GPL/LGPLv3. - * lightning/i386/asm-64.h: Upgrade to GPL/LGPLv3. - * lightning/i386/core-32.h: Upgrade to GPL/LGPLv3. - * lightning/i386/core-64.h: Upgrade to GPL/LGPLv3. - * lightning/i386/fp-64.h: Upgrade to GPL/LGPLv3. - * lightning/sparc/asm.h: Upgrade to GPL/LGPLv3. - * lightning/sparc/core.h: Upgrade to GPL/LGPLv3. - * lightning/sparc/fp.h: Upgrade to GPL/LGPLv3. - * lightning/sparc/funcs.h: Upgrade to GPL/LGPLv3. - * lightning/i386/asm-i386.h: Upgrade to GPL/LGPLv3. - * lightning/i386/core-i386.h: Upgrade to GPL/LGPLv3. - * lightning/i386/fp-32.h: Upgrade to GPL/LGPLv3. - * lightning/i386/funcs.h: Upgrade to GPL/LGPLv3. - * lightning/ppc/asm.h: Upgrade to GPL/LGPLv3. - * lightning/ppc/core.h: Upgrade to GPL/LGPLv3. - * lightning/ppc/fp.h: Upgrade to GPL/LGPLv3. - * lightning/ppc/funcs.h: Upgrade to GPL/LGPLv3. - * lightning.h: Upgrade to GPL/LGPLv3. - * tests/add.c: Upgrade to GPL/LGPLv3. - * tests/fib.c: Upgrade to GPL/LGPLv3. - * tests/testfp.c: Upgrade to GPL/LGPLv3. - * tests/fibdelay.c: Upgrade to GPL/LGPLv3. - * tests/fibit.c: Upgrade to GPL/LGPLv3. - * tests/funcfp.c: Upgrade to GPL/LGPLv3. - * tests/incr.c: Upgrade to GPL/LGPLv3. - * tests/printf.c: Upgrade to GPL/LGPLv3. - * tests/printf2.c: Upgrade to GPL/LGPLv3. - * tests/rpn.c: Upgrade to GPL/LGPLv3. - * tests/rpnfp.c: Upgrade to GPL/LGPLv3. - * lightning/asm-common.h: Upgrade to GPL/LGPLv3. - * lightning/core-common.h: Upgrade to GPL/LGPLv3. - * lightning/fp-common.h: Upgrade to GPL/LGPLv3. - * lightning/funcs-common.h: Upgrade to GPL/LGPLv3. - * opcode/dis-buf.c: Upgrade to GPL/LGPLv3. - * opcode/disass.c: Upgrade to GPL/LGPLv3. - * opcode/i386-dis.c: Upgrade to GPL/LGPLv3. - * opcode/sparc-dis.c: Upgrade to GPL/LGPLv3. - * opcode/sparc-opc.c: Upgrade to GPL/LGPLv3. - * lightningize.in: Upgrade to GPL/LGPLv3. - * opcode/bfd.h: Upgrade to GPL/LGPLv3. - * opcode/i386.h: Upgrade to GPL/LGPLv3. - * opcode/sparc.h: Upgrade to GPL/LGPLv3. - -2007-01-26 Thomas Girard - - * lightning/Makefile.am: Add clean-local target. - -2006-12-02 Paolo Bonzini - - * lightning/i386/asm-i386.h: Add CVTTS?2SIL. - * lightning/i386/asm-64.h: Add CVTTS?2SIQ. - * lightning/i386/fp-64.h: Use it. - - * lightning/Makefile.am: Place files in nodist_lightning_HEADERS. - -2006-11-23 Paolo Bonzini - - * lightning/core-common.h: Add casts in "*i_p" variants. - * lightning/i386/asm-32.h: Add _r1. - * lightning/i386/asm-64.h: Likewise, and add SSE instructions. - * lightning/i386/asm-i386.h: Merge SSE instructions from Gwenole. - Use short form for 16-bit AX instructions. Remove _r1 - * lightning/i386/core-64.h: Add FP ABI support in its infancy. - * lightning/i386/core-i386.h: Move jit_arg_f and jit_arg_d... - * lightning/i386/core-32.h: ... and jit_prepare_f and jit_prepare_d... - * lightning/i386/fp-32.h: ... here. - * lightning/i386/fp-64.h: Write the code. - * lightning/sparc/fp.h: Fix jit_extr_{f_d,d_f} register order. - -2006-11-22 Paolo Bonzini - - * lightning/i386/asm-i386.h: Move x86-64 instructions... - * lightning/i386/asm-64.h: ... here. - * lightning/i386/fp-32.h: Fix bugfixes worked around in froofyJIT. - Add JIT_FPRET. - * lightning/sparc/fp.h: Likewise. - * lightning/ppc/fp.h: Likewise. - * lightning/fp-common.h: Adjust for JIT_FPRET. - * tests/funcfp.c: Adjust for JIT_FPRET. - * tests/rpnfp.c: Adjust for JIT_FPRET. - -2006-11-20 Paolo Bonzini - - * lightning/i386/asm-i386.h: Add an underscore to macros without - a parameter. - -2006-11-20 Paolo Bonzini - - * lightning/i386/core-i386.h: Move jit_movip, jit_check8, jit_reg8, - jit_reg16, jit_movbrm... - * lightning/i386/core-32.h: ... here. - * lightning/i386/core-64.h: Redefine them. Fix other bugs. - - * tests/printf.c: Do not do a varargs call. - -2006-11-20 Paolo Bonzini - - * lightning/i386/asm-i386.h: Check in rewrite from Basilisk II. - * lightning/i386/asm-32.h: Adjust. - * lightning/i386/asm-64.h: Adjust. - * lightning/i386/fp-32.h: Adjust. - - * lightning/i386/core-32.h: Adjust. Add jit_{ld,ldx,st,stx}i*. - * lightning/i386/core-64.h: Adjust. Add jit_{ld,ldx,st,stx}i*. - * lightning/i386/core-i386.h: Adjust. Remove these patterns. - -2006-11-20 Paolo Bonzini - - * lightning/i386/asm-i386.h: Merge 64-bit cleanliness changes from - mzscheme. - Add SSE. - * lightning/i386/asm-64.h: Likewise. - -2006-11-20 Paolo Bonzini - Ludovic Courtes - - * lightning/i386/core-32.h: Disable jit_push and jit_pop if stack not - needed. - * lightning/i386/core-64.h: Disable jit_push and jit_pop if stack not - needed. - * lightning/sparc/core.h: Merge final implementation of jit_pushr and - jit_popr. - * lightning/ppc/core.h: Fix implementation of jit_pushr and jit_popr to - work (more or less) across function calls. - - * tests/push-pop.c, tests/push-pop.ok: New test. - * tests/Makefile.am: Run it. - -2006-11-20 Paolo Bonzini - - * lightning/asm-common.h: Make 64-bit safe. - * lightning/i386/funcs.h: Make 64-bit safe. - - * lightning/i386/asm-64.h: More merge from mzscheme. - * lightning/i386/asm-i386.h: More merge from mzscheme. - * lightning/i386/core-32.h: More merge from mzscheme. - * lightning/i386/core-64.h: More merge from mzscheme. - * lightning/i386/core-i386.h: More merge from mzscheme. - - * tests/rpnfp.c, tests/testfp.c, tests/funcfp.c: Skip if no - floating-point support. - -2006-11-04 Paolo Bonzini - - * tests/rpn.c: Remove pushr/popr. - -2006-11-04 Paolo Bonzini - - * lightning/ppc/core.h: Implement jit_allocai, define JIT_FP to be R1. - * lightning/ppc/funcs.h: Store frame size into _jitl. Store R1 before - the STMW, so that the offset is unchanged when we patch the STMW. - * lightning/i386/core.h: Define JIT_FP to be EBP. - * lightning/i386/core-32.h: Implement jit_allocai, put LEAVE in the - epilog if jit_allocai was used. - * lightning/i386/core-64.h: Implement jit_allocai, put LEAVE in the - epilog if jit_allocai was used. - -2006-11-04 Ludovic Courtes - - * lightning/sparc/core.h: Implement jit_allocai. - * tests/allocai.c: New. - * tests/Makefile.am: Point to new tests. - -2006-11-03 Paolo Bonzini - - * lightning/ppc/core.h: Fix jit_bms using BNE rather than BGT. - "AND." does signed comparisons. - -2006-10-31 Paolo Bonzini - - * doc/porting.texi: Rename JIT_FP to JIT_AP. - * lightning/core-common.h: Likewise. - * lightning/i386/core-i386.h: Likewise. - * lightning/fp-common.h: Provide default versions of jit_getarg_[fd]. - * lightning/i386/fp-32.h: Don't provide jit_getarg_[fd]. - * lightning/ppc/fp.h: Likewise. - -2006-10-31 Ludovic Courtes - - * doc/using.texi (The instruction set): Clarified the use of `JIT_RET' and - documented `jit_retval'. - * tests/ret.c (generate_function_proxy): After `jit_finish', use - `jit_retval_i' to move FUNC's return value into the correct register. - -2006-10-31 Paolo Bonzini - Ludovic Courtes - - * tests/divi.c, tests/divi.ok, tests/movi.c, tests/movi.ok: New. - * tests/ldxi.c: Ensure large pointer is generated. - * tests/Makefile.am: Point to new tests. - * lightning.h: Include funcs-common.h before funcs.h. - * lightning/sparc/core.h: Fix bugs in modi/divi. - -2006-10-30 Paolo Bonzini - - * lightning/Makefile.am: Use "ln -sf". - * lightning/core-common.h: Define jit_negr_l if necessary. - -2006-10-30 Paolo Bonzini - - * lightning/i386/asm.h (MOVS*, MOVZ*): Use correct _r[124] macros. - -2006-10-29 Paolo Bonzini - - * configure.ac: Use lightning.m4 macros. - * lightning.m4: Refactor to use common code in configure.ac. Move... - * build-aux/lightning.m4: ... here. - * lightningize.in: Support suffixes. - * opcode/disass.in: Adapt to changes in configure.ac. - - * lightning/ppc/funcs.h: Use __APPLE__ instead of _CALL_DARWIN. - * lightning/i386/core-32.h: Likewise. - -2006-10-26 Paolo Bonzini - - * configure.ac: Fix compilation test. - * lightning/Makefile.am: Symlink LIGHTNING_TARGET_FILES in - non-distribution mode. - * lightning/i386/Makefile.frag: Use LIGHTNING_TARGET_FILES. - -2006-10-26 Paolo Bonzini - - * configure.ac: Subst cpu. - * lightning/core-common.h: Make tests pass on i386. - * lightning/i386/asm-32.h: Make tests pass on i386. - * lightning/i386/asm-64.h: Make tests pass on i386. - * lightning/i386/asm-i386.h: Make tests pass on i386. - * lightning/i386/core-32.h: Make tests pass on i386. - * lightning/i386/core-64.h: Make tests pass on i386. - * lightning/i386/core-i386.h: Make tests pass on i386. - * tests/Makefile.am: Include files from cpu directory. - -2006-10-26 Paolo Bonzini - - * lightning/i386/asm.h: Move to asm-i386.h - * lightning/i386/asm-32.h: New, from Matthew Flatt. - * lightning/i386/asm-64.h: New, from Matthew Flatt. - * lightning/i386/core.h: Move to core-i386.h - * lightning/i386/core-32.h: New, from Matthew Flatt. - * lightning/i386/core-64.h: New, from Matthew Flatt. - * lightning/i386/fp.h: Move to fp-32.h - * lightning/i386/fp-64.h: New, dummy. - * lightning/i386/Makefile.frag: New. - * lightning/Makefile.am: Support per-target Makefile fragments. - * configure.ac: Support per-target Makefile fragments and CPU suffixes. - -2006-10-16 Paolo Bonzini - - * lightning/i386/i386.h (jit_flush_code): Fix syntax error. :-( - -2006-07-06 Paolo Bonzini - Ludovic Courtes - - * doc/using.texi: Clarify "Using autoconf" section - and rename it to "Bundling lightning" - * lightning.m4: Work also if lightning is not bundled. - -2006-07-06 Paolo Bonzini - Ludovic Courtes - - * lightning/ppc/core.h (_jit_mod): Replace with... - (_jit_mod_big, _jit_mod_small): ... these. - (jit_modi_i, jit_modi_ui): Rewrite. - * tests/modi.c, tests/modi.ok: New tests. - -2006-05-18 Matthew Flatt - - * lightning/i386/asm.h: Fix test for extending the mprotect area - towards lower addresses. - -2006-05-16 Bruno Haible - - * lightning/asm-common.h: Don't use __func__ nor __FUNCTION__ if - not compiling with GNU C. - -2006-02-16 Paolo Bonzini - - * lightning/ppc/core.h: Fix jit_ldxi_* with big displacement. - -2006-01-23 Paolo Bonzini - - * configure.ac: Fix comments in config.h.in. - -2005-11-25 Paolo Bonzini - - * lightning/sparc/fp.h: Fix header comment. - * lightning/ppc/fp.h: Fix header comment. - -2005-04-27 Paolo Bonzini - - * lightning/i386/asm.h (JCm, JCSm, JNCm, JNCSm): New. - -2004-11-26 Paolo Bonzini - - * lightning/ppc/funcs.h (_jit_epilog): Remove unused variable. - -2004-11-13 Paolo Bonzini - - * lightning/i386/funcs.h [__linux__]: Include sys/mman.h. - -2004-11-09 Paolo Bonzini - - * lightning/sparc/fp.h: Fix fp-to-integer conversions. - * lightning/ppc/testfp.c: Test fp-to-integer conversions - of integer numbers. - * lightning/ppc/testfp.ok: Adjust for the above. - -2004-11-08 Paolo Bonzini - - * lightning/ppc/testfp.c: Always flush code before - testing it. - -2004-11-08 Paolo Bonzini - - * lightning/ppc/fp.h: Do not clobber f31. - -2004-11-08 Paolo Bonzini - - * lightning.h: New name of... - * lightning-inst.h: ... this file. - * lightning.h.in: Removed. - - * opcodes/disass.c: Include config.h. - * tests/add.c: Include config.h. - * tests/bp.c: Include config.h. - * tests/fib.c: Include config.h. - * tests/fibdelay.c: Include config.h. - * tests/fibit.c: Include config.h. - * tests/funcfp.c: Include config.h. - * tests/incr.c: Include config.h. - * tests/printf.c: Include config.h. - * tests/printf2.c: Include config.h. - * tests/rpn.c: Include config.h. - * tests/rpnfp.c: Include config.h. - * tests/testfp.c: Include config.h. - -2004-10-12 Paolo Bonzini - - * lightning/i386/fp.h: Fix bugs in conditional branches. - -2004-10-10 Paolo Bonzini - - * lightning/i386/funcs.h: Fix pasto in jit_flush_code. - -2004-10-08 Paolo Bonzini - - * lightning/ppc/fp.h: Optimized conditional branches. - -2004-09-20 Paolo Bonzini - - * lightning/ppc/asm.h: Fix more typos. - -2004-09-20 Paolo Bonzini - - * lightning/ppc/asm.h: Fix typos, replace `26' with JIT_AUX. - -2004-09-20 Paolo Bonzini - - * lightning/ppc/fp.h: Added conditional branches. - -2004-09-18 Laurent Michel - - * lightning/ppc/fp.h (jit_unler_d, jit_unltr_d, jit_unger_d, - jit_ungtr_d, jit_ltgt_d, jit_uneq_d): Implemented missing tests - to fully support testfp. - (jit_floorr_d_i, jit_ceilr_d_i, jit_roundr_d_i, jit_truncr_d_i): - New macros. - * lightning/ppc/asm.h: Added missing opcodes FCTIWZ and MTFSFI. - * lightning/ppc/funcs.h (_jit_prolog): Fixed minor mistake in - the initialization of _jitl.nextarg_geti, relying on the - JIT_AUX macro as well to get the register offset. - -2004-09-07 Paolo Bonzini - - * lightning/ppc/funcs.h: Fix typo. - -2004-09-06 Paolo Bonzini - - * tests/funcfp.c: Use %g. Remove C99 variable declarations. - * tests/testfp.c: Don't use __builtin_nan. - - * lightning/ppc/core.h: Add three V registers. - * lightning/ppc/funcs.h: Adjust. - - * lightning/sparc/core.h: Some fixes related to FP argument passing. - Move R0 to %g2, use %o7 for JIT_BIG2. - * lightning/sparc/fp.h: Some fixes related to FP argument passing. - -2004-09-02 Paolo Bonzini - - * lightning/sparc/core.h: Add another V register, - move R0 to %o7. - -2004-07-15 Paolo Bonzini - - * lightning/i386/funcs.h: Implement jit_flush_code, - in order to support Fedora's exec-shield. - -2004-07-14 Paolo Bonzini - - * lightning/core-common.h: Add more jit_extr_*_* macros. - * lightning/doc/using.texi: Be clearer about the order - of arguments in jit_extr_*_*. - * lightning/doc/porting.texi: Add more jit_extr_*_* macros. - * lightning/i386/fp.h: Fix typo in jit_extr_i_d. - -2004-07-14 Paolo Bonzini - - * lightning/ppc/funcs.h: Adjust offset of LR into - stack frame if running under the Darwin ABI. - -2004-07-13 Paolo Bonzini - - * lightning/i386/fp.h: Rename jit_exti_d to jit_extr_i_d. - -2004-07-13 Paolo Bonzini - - * lightning/ppc/core.h: Fix thinko. - - * lightning/i386/core.h: Fix jit_lti_ui. - * lightning/core-common.h: Add missing macros. - - * lightning/ppc/fp.h: Rename jit_neg_* to jit_negr_*. - * lightning/i386/fp.h: Rename jit_neg_* to jit_negr_*. - * lightning/sparc/fp.h: Rename jit_neg_* to jit_negr_*. - * lightning/fp-common.h: Rename jit_neg_* to jit_negr_*. - * doc/porting.texi: Add undocumented macros. - -2004-07-12 Paolo Bonzini - - * doc/porting.texi: Add missing macros. - -2004-07-12 Paolo Bonzini - - * lightning/ppc/funcs.h: Don't generate trampolines. - Separate prolog and epilog generation. - * lightning/ppc/core.h: Generate epilog explicitly. - Don't reserve r31 anymore. - * lightning/core-common.h: Remove call to jit_setup_code. - -2004-07-09 Paolo Bonzini - - * lightning/lightning.h.in: Avoid preprocessor warnings. - * lightning/lightning-inst.h: Likewise. - - * lightning/i386/core.h: Define JIT_R, JIT_R_NUM, JIT_V, - JIT_V_NUM. - * lightning/ppc/core.h: Likewise. - * lightning/sparc/core.h: Likewise. - * lightning/i386/fp.h: Define JIT_FPR, JIT_FPR_NUM. - * lightning/ppc/fp.h: Likewise. - * lightning/sparc/fp.h: Likewise. - * lightning/core-common.h: Define fixed register names. - * lightning/fp-common.h: Likewise for FP regs. - -2004-07-09 Paolo Bonzini - - * lightning/ppc/funcs.h: Fix location where return address - is stored. - * lightning/i386/asm.h: Add a trailing _ to opcodes without - any parameter. - * lightning/i386/core.h: Adjust for the above. - -2004-04-15 Paolo Bonzini - - * lightning/i386/fp.h: Change "and" to "_and" - to satisfy C++ compilers. - -2004-04-14 Paolo Bonzini - - * lightning/sparc/fp.h: Use memcpy to implement jit_movi. - * lightning/ppc/fp.h: Use memcpy to implement jit_movi. - Move floating-point opcodes... - * lightning/ppc/asm.h: ... here. - -2004-04-14 Paolo Bonzini - - * lightning/core-common.h: Add jit_finishr. - * lightning/ppc/core.h: Add jit_callr and jit_finishr. - * lightning/i386/core.h: Add jit_callr. - * lightning/sparc/core.h: Add jit_callr. Fix typo. - -2004-04-14 Paolo Bonzini - - * lightning/i386/core.h: Fix pasto in jit_b*_ui. - -2004-03-30 Laurent Michel - - * lightning/ppc: Implement PowerPC floating point - (ChangeLog entry missing). - -2004-03-12 Paolo Bonzini - - * lightning/fp-common.h: Load/store macros are not the - same for floats and doubles anywhere, but jit_retval may be. - * lightning/i386/asm.h: Fix = mistaken for == in ESCrri. - * lightning/i386/core.h: Fix typo in jit_prepare_[fd]. - * lightning/i386/fp.h: Rewritten. - * tests/testfp.c: Add tests for unordered comparisons. - * tests/testfp.ok: Add results. - -2004-03-15 Paolo Bonzini - - Merge changes from Laurent Michel. - - * lightning/asm-common.h: Add _jit_I_noinc. - * lightning/core-common.h: Support jit_init, - jit_setup_code, jit_patch_at. Return patchable IP from - jit_movi_p. - * lightning/funcs-common.h: Provide defaults - for jit_setup_code, jit_start_pfx, jit_end_pfx - * lightning/i386/core.h: Add jit_patch_at, jit_patch_movi. - * lightning/ppc/core.h: Likewise. - * lightning/sparc/core.h: Likewise. - * lightning/ppc/asm.h: Fix generation of branch destination - displacements in _FB and _BB - * lightning/ppc/core.h: Generate trampolines in the user - area. - * lightning/ppc/funcs.h: Add a few casts. - * tests/bc.c: New testcase. - - * lightning/i386/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. - * lightning/ppc/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. - * lightning/sparc/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. - - -2004-03-09 Paolo Bonzini - - * lightning/sparc/fp.h: Rewrite. Move macros for - FP code generation... - * lightning/sparc/asm.h: ... here. - * lightning/sparc/core.h: Rename jit_prepare to - jit_prepare_i, jit_retval to jit_retval_i. - * lightning/ppc/core.h: Rename jit_prepare to - jit_prepare_i, jit_retval to jit_retval_i. - * lightning/i386/core.h: Rename jit_prepare to - jit_prepare_i, jit_retval to jit_retval_i. - * lightning/core-common.h: Provide backwards - compatible synonyms for the above. - * lightning/fp-common.h: Rewrite. - * lightning-inst.h: Include fp unconditionally. - * lightning.h.in: Include fp unconditionally. - * tests/Makefile.am: Enable fp tests. - * tests/fib.c: Use jit_retval_i. - * tests/fibit.c: Cast codeBuffer to char *. - * tests/funcfp.c: Use new fp macros. - * tests/printf.c: Use jit_retval_i. - * tests/rpnfp.c: Use new fp macros. - * tests/testfp.c: Use new fp macros. - -2004-03-02 Paolo Bonzini - - * lightning/i386/core.h: generate correct code when - doing lt/le/ge/etc. on ESI and EDI. Use MOVZX/MOVSX - where possible. - * lightning/i386/asm.h: Add macros for MOVZX/MOVSX. - Move macros for x87 here, and add many of them. - * lightning/i386/fp.h: Use new macros for x87. - -2004-02-06 Paolo Bonzini - - * lightning/i386/core.h: avoid generating MOV reg, reg. - * lightning/sparc/core.h: fix several bugs. - * lightning/ppc/core.h: fix several bugs. - * tests/rpn.c: rewritten. - -2004-01-08 Paolo Bonzini - - * tests/rpnfp.c: new example, suggested by Basile - Starynkevitch. - * tests/rpnfp.ok: new example. - -2003-12-12 Paolo Bonzini - - * tests/add.c: new test, suggested by Steve Dekorte. - * tests/add.c: new test. - -2003-11-14 Paolo Bonzini - John Redford - - * lightning/asm-common.h: change the 'pc' field of _jit to - be a union of various data types, because ISO C99 doesn't - permit using ++ on a = cast. Change the incremented casts of - _jit.pc to be _jit.x.uc_pc, _jit.x.us_pc, etc. - * all files: change all non-cast instances of _jit.pc to be - _jit.x.pc. - * lightning/i386/core.h: remove casts from jit_might. - -2003-05-25 Paolo Bonzini - - * lightning/i386/core.h: use JITSORRY in jit_replace - * lightning/asm-common.h: define JITSORRY - -2003-05-14 Paolo Bonzini - - * lightning/i386/core.h: fix missing comma in several - load/store macros. - * lightning/core-common.h: fix long/unsigned long/pointer - jit_pushr/jit_popr. - * lightning/ppc/funcs.h: correctly align stack pointer - -No changelogs for the assemblers (lightning directory) until 1.0 - -2003-03-27 Paolo Bonzini - - * tests/printf2.c: new test - -2001-05-03 Paolo Bonzini - - * tests/printf.c: made the message platform independent - -2001-01-19 Paolo Bonzini - - * configure.in: support cross-assembling - - * disass/bfd.h, disass/dis-asm.h, disass/dis-buf.c, - disass/i386-dis.c, disass/i386.h, disass/ppc-dis.c, - disass/ppc.h, disass/ppc-opc.c, disass/sparc-dis.c, - disass/sparc.h, disass/sparc-opc.c: new files, from GDB - - * disass/disass.c, disass/Makefile.am: new files - - * tests/fib.c, tests/fibit.c, tests/incr.c, tests/printf.c, - tests/rpn.c, tests/testfp.c, tests/Makefile.am: support - disassembling +Change logs from upstream GNU Lightning are still available in +ChangeLog.lightning. diff --git a/ChangeLog.lightning b/ChangeLog.lightning new file mode 100644 index 000000000..19b3335f5 --- /dev/null +++ b/ChangeLog.lightning @@ -0,0 +1,4018 @@ +2018-04-20 Paulo Andrade + + * include/lightning/jit_private.h: Add new register classes to + flag float registers and double only registers, required for sparc64 + where only low 32 bit fpr registers can be used for single precision + operations. + Add new 128 bit jit_regset_t type for sparc64 register set. + + * include/lightning/jit_sparc.h, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, + lib/jit_sparc-sz.c, lib/jit_sparc.c: Update for 64 bits sparc. + + * lib/lightning.c: Update for new jit_regset_t required for sparc64. + +2018-02-26 Paulo Andrade + + * 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. + +2018-02-22 Paulo Andrade + + * lib/jit_alpha-cpu.c: Always set t12 to the address of the + current function, to properly work on all systems. Previously + the shortcut did only work on Tru64. For Linux and glibc the + change is required. + +2018-02-22 Paulo Andrade + + * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c: + Correct wrong logic in usage of jit_live in jit_retr. The + problem is that if a temporary is required during epilog, + the return register might be allocated, so, jit_live must always + be used. + +2018-01-31 Paulo Andrade + + * lib/lightning.c: Avoid deep recursions when computing live + register ranges. + +2018-01-31 Paulo Andrade + + * lib/jit_mips-cpu.c: Correct frame size and varargs + initialization for the n32 abi. + * lib/jit_mips.c, lib/jit_mips-fpu.c: Correct 32 bit abis + in big-endian. + +2017-09-13 Paulo Andrade + + * configure.ac: Add check for binutils 2.29 prototype to the + disassembler function. + * lib/jit_disasm.c: Adapt for binutils 2.29 change. + +2017-06-09 Paulo Andrade + + * include/lightning/jit_private.h, lib/lightning.c: Add a + second pass from start when computing register live ranges. + This should be used temporarily, and is required for certain + loop constructs, with several consecutive blocks not referencing + a live register. + +2016-05-05 Paulo Andrade + + * lib/lightning.c: Correct wrong movr simplification, + remove no longer needed code to set return registers live + and update live register set when reaching a label boundary, + but do not descend if the block has been already visited. + The later need some tuning for complex code generation, where + it will still have issues. + +2015-11-30 Paulo Andrade + + * doc/body.texi: Change documentation to no longer say + it is a variant of the Fibonacci sequence, and document + a proper implementation. + Thanks to Jon Arintok for pointing out that the Fibonacci + sequence generation was incorrect. It was documented, but + still confusing. + + * check/fib.tst, check/fib.ok, check/bp.tst, check/bp.ok, + doc/ifib.c, doc/rbif.c: Implement a proper Fibonacci + sequence implementation. + +2015-07-03 Paulo Andrade + + * lib/jit_mips-cpu.c: Correct definition of htonr_ul. + Correct prolog/epilog/va* routines to work on o64 abi. + + * lib/jit_mips-fpu.c: Correct load of double literal + argument when not using a data buffer. + Remove alignment correction in vaarg_d if using the + new mips abi. + + * lib/jit_mips.c: Correct code to allow creating variadic + jit functions when using the new mips abi. + + * lib/jit_rewind.c: Minor adjust for rewind when using + the new mips abi, if there are varargs arguments in + registers. + +2015-06-06 Paulo Andrade + + * lib/jit_ia64-cpu.c: Search backward for the last output + register used, otherwise would stop too early if a float + argument used the slot. + Correct offset of first va_list argument, and use proper + va_list abi. + + * lib/jit_ia64-fpu.c: Add new functions to move a gpr + to a fpr register, to counterpart the ones that move a + fpr to a gpr. These are required to properly implement + jit_getarg*_{f,d} on complex prototypes, or variadic + jit functions. + + * lib/jit_ia64-sz.c: Update for support to jit variadic + functions. + + * lib/jit_ia64.c: Implement proper abi for variadic + jit functions. + +2015-06-04 Paulo Andrade + + * lib/jit_rewind.c: New file implementing generic functions + to "rewind", or rewrite IR code sequences. + + * include/lightning.h: Add several new codes, that previously + were a function call, that would synthesize the operation. + Now, there is a code for the operation, and a new flag to + know an operation is synthesized. + + * include/lightning/jit_private.h: Add several new macros to + help construct synthesized IR code sequences. + + * lib/Makefile.am: Update for lib/jit_rewind.c. + + * lib/jit_disasm.c: Update for a small rework on jit_node_t, + so that --enable-devel-disassembler does not need a change + in the layout of jit_node_t. + + * lib/jit_names.c: Update for the new codes. + + * lib/jit_print.c: Update to print more readable output, and + flag synthesized IR code sequences. + + * lib/jit_aarch64-sz.c, lib/jit_aarch64.c, + lib/jit_arm-sz.c, lib/jit_arm.c, lib/jit_x86-sz.c, + lib/jit_x86.c: Update for new synthesized IR code sequences. + + * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu., lib/jit_ppc-sz.c, + lib/jit_ppc.c, lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, + lib/jit_mips-sz.c, lib/jit_mips.c, lib/jit_s390-fpu.c, + lib/jit_s390-sz.c, lib/jit_s390.c: Update for new synthesized + IR code sequences and correct bugs in the initial varargs + implementation support. + + * lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_hppa-sz.c, + lib/jit_hppa.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, + lib/jit_sparc-sz.c, lib/jit_sparc.c: Add generic, untested + support for the new synthesized IR code sequences. Known + most likely broken right now, and should be corrected once + access to these hosts is available. + + * lib/lightning.c: Update for new IR codes, and add support + for not yet existing instructions that change third argument. + + * size.c: Change to use different tables for LE and BE PowerPC. + Correct a wrong endif for x32. + +2015-05-25 Paulo Andrade + + * check/cva_list.c: New file implementing a test to ensure + the value returned by jit_va_start is a valid C va_list. + + * check/va_list.ok: New simple helper file, as now the + va_list.tst test is enabled. + + * check/va_list.tst: Rewritten for an extensive variadic + jit functions test. + + * check/Makefile.am: Update for the new tests. + + * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm-vfp.c, + lib/jit_arm.c: Correct broken software float in a previous + commit. Note that the hard float abi implementation is known + broken at this time, for special cases involving variadic + functions, and should be corrected next. + + lib/jit_x86-cpu.c, lib/jit_x86-sz.c, lib/jit_x86.c: Correct + the jit_va_list_t semantics to match C va_list. + +2015-05-24 Paulo Andrade + + * lib/Makefile.am: Bump library major. This is a preparation + for a rework that was due for quite some time, but that is + now required to properly implement variadic jit functions. + The rework is mainly required to know at prolog parsing, if + a function is variadic or not. This will benefit a few + backends, and is mandatory for the hard float arm abi. + The rework was already planned for quite some time, to + be able to use a variable stack framesize, and for leaf + functions optimization where applicable. + The change will be source compatible, but will change + some internals, and jit_code_t values, as some new will + be added. + The only behavior change is that, jit_arg_register_p may + change return value on hard float arm abi, if called before + or after jit_ellipsis. Common sense anyway, would say to + make that call after jit_ellipsis, but documentation + should be updated for it. + +2015-05-24 Paulo Andrade + + * lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: Correct base + aarch64 varargs code. + +2015-05-24 Paulo Andrade + + * check/lightning.c: Clearly run check if clang is the system + compiler. + +2015-05-20 Paulo Andrade + + * lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, lib/jit_sparc.c: + Add base support to jit vararg functions to the sparc backend. + +2015-05-20 Paulo Andrade + + * lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, lib/jit_alpha.c: + Add base support to jit vararg functions to the alpha backend. + +2015-05-19 Paulo Andrade + + * lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, lib/jit_hppa.c: + Add base support to jit vararg functions to the hppa backend. + +2015-05-10 Paulo Andrade + + * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64.c: + Add base support to jit vararg functions to the ia64 backend. + +2015-05-10 Paulo Andrade + + * lib/jit_ia64-fpu.c, lib/jit_ia64.c: Correct movi_d_w + and movi_f_w implementation to work when not using a + data buffer. This causes the check varargs.tst to + work when passing "-d" to the lightning test tool. + +2015-05-10 Paulo Andrade + + * lib/jit_ia64.c: Implement inline assembly cache flush, + required on multiprocessor systems. + +2015-05-06 Paulo Andrade + + * lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c: + Add base support to jit vararg functions to the mips backend. + Currently only supported on the o32 abi, until access to a + n32 system is arranged. + +2015-05-05 Paulo Andrade + + * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: + Add base support to jit vararg functions to the PowerPC backend. + +2015-05-02 Paulo Andrade + + * lib/jit_s390-cpu.c, lib/jit_s390-fpu.c, lib/jit_s390.c: + Add base support to jit vararg functions to the s390 backend. + +2015-05-01 Paulo Andrade + + * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm-vfp.c, + lib/jit_arm.c: Add base support to jit vararg + functions to the arm backend. + +2015-04-30 Paulo Andrade + + * lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, + lib/jit_aarch64.c: Add base support to jit vararg + functions to the aarch64 backend. + +2015-04-27 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_names.c, lib/lightning.c: Add initial support + for the new jit_va_start, jit_va_arg, jit_va_arg_d, and + jit_va_end interfaces. The jit_va_start call is supposed + to return a va_list compatible pointer, but not yet + decided if it will be "declared" stdarg compatible, + as for now only x86 support has been added (and should + be compatible), but issues may arise on other backends. + + * check/lightning.c: Add wrappers to call the new jit_va_* + interfaces. + + * lib/jit_x86-cpu.c, lib/jit_x86.c: Implement the new + jit_va_* for x86. + + * lib/jit_x86-sz.c: Add fields, but not yet fully updated, + as this is an intermediate commit. + + * lib/jit_aarch64-sz.c, lib/jit_aarch64.c, + lib/jit_alpha-sz.c, lib/jit_alpha.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: Prepare for the + new jit_va_* interfaces. Not yet implemented, and will + cause an assertion if used. + + * check/va_list.tst: Simple early test case, that works + on x86_64, x32, ix86, cygwin, and cygwin64. + +2015-02-17 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_aarch64-cpu.c, lib/jit_aarch64.c, + lib/jit_alpha-cpu.c, lib/jit_alpha.c, + lib/jit_arm-cpu.c, lib/jit_arm.c, + lib/jit_hppa-cpu.c, lib/jit_hppa.c, + lib/jit_ia64-cpu.c, lib/jit_ia64.c, + lib/jit_mips-cpu.c, lib/jit_mips.c, + lib/jit_ppc-cpu.c, lib/jit_ppc.c, + lib/jit_s390-cpu.c, lib/jit_s390.c, + lib/jit_sparc-cpu.c, lib/jit_sparc.c, + lib/jit_x86-cpu.c, lib/jit_x86.c: Implement the new + jit_allocar(offs, size) interface, that receives + two integer registers arguments, allocates space + dynamically in the stack, returns the offset in + the first argument, and uses the second argument + for the size in bytes of the memory to be allocated. + + * check/allocar.ok, check/allocar.tst: New files + implementing test cases for the new jit_allocar + interface. + + * check/Makefile.am, check/lightning.c: Update for + the new test case and interface. + + * doc/body.texi: Add documentation of the new + interface. + +2015-02-17 Paulo Andrade + + * include/lightning/jit_x86.h, lib/jit_x86-cpu.c, + lib/jit_x86-x87.c: No longer make st(7) available. + Need to keep one x87 slots empty to avoid exceptions. + This has the side effect of no longer needing the + hackish emms instruction before a function call. + +2015-02-16 Paulo Andrade + + * lib/lightning.c: Remove the jit_regno_patch bitfield + register fields before actual emit, as it is only really + used before emit, otherwise, on special conditions it + may consider live registers as dead during code emit. + +2015-02-15 Paulo Andrade + + * lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: + Correct encoding of ldxr* stxr* in the x32 abi. If the + displacement register is negative, it would generate + a 64 bit instruction with a 32 bit unsigned displacement. + + * check/ranger.tst, check/ranger.ok: New files, implementing + a test case for negative loads and stores. This is range.tst + converted to use registers instead of immediate offsets. + + check/Makefile.am: Update for the new test case. + +2015-02-07 Paulo Andrade + + * lib/jit_size.c: Preventively use at least 144 bytes + if JIT_INSTR_MAX is less than it. The logic is not + guaranteed to be 100% precise, it is mostly heuristics + to allocate a buffer with as close as possible size, + but a wrong value may cause code generation to write + past the end of the buffer. + +2015-02-03 Paulo Andrade + + * lib/lightning.c: Correct the reason the bug in + simplify_stxi was not triggered before, it was due to + incorrectly resetting the value->code field, what was + causing it to never properly optimize: + stxi Im0 Rb0 Rt0 + ldxi Rt1 Rb1 Im1 + when Rb0 == Rb1, Rt0 == Rt1 and Im0 == Im1 + There was another possible issue, that has been also + addressed in this commit, that would be the case of + Rbn == Rtn, where no redundancy removal is possible. + +2015-02-03 Paulo Andrade + + * lib/lightning.c: Correct wrong check in simplify_stxi. + The test was incorrectly comparing the target register + and the displacement offset. This was a time bomb bug, + that would trigger in code like: + stxi Im0 Rb0 Rt0 + stxi Im1 Rb1 Rt1 + if Rb0 == Rb1 && Rt0 == Rt1 && Im0 == Rt1, that is, + the wrong check was Im0 == Rt1, instead of the supposed + Im0 == Imm1 (that was what the code mean't to do). It + was removing the second stxi assuming it was redundantly + generated; as that is not uncommon pattern on + translators generating jit. + +2015-02-02 Paulo Andrade + + * configure.ac, include/lightning/jit_private.h, + lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, + lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, + lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: Add a new + --enable-devel-disassembler option, that should be used + during development, or lightning debug. This option + intermixes previous jit_print and jit_disassemble + output, making it easier to visualize what lightning + call was used, and what code was generated. + +2015-01-31 Paulo Andrade + + * lib/jit_arm-cpu.c, lib/jit_arm.c: Only limit to 24 bit + displacement non conditional jump in the same jit_state_t. + +2015-01-19 Paulo Andrade + + * doc/body.texi: Reorder documentation, making jit_frame + and jit_tramp the lightning response to the need of + trampolines, continuations and tail call optimizations. + A pseudo code example of a factorial function was added. + Also added a section for description of the available + predicates. + + * doc/fact.c: New file, implementing a simple example of + a translation of a trivial, recursive, tail call optimization + into lightning calls. This is the conversion to functional C + code of the example in doc/body.texi. + + * doc/Makefile.am: Update for the next test case. + +2015-01-17 Paulo Andrade + + * include/lightning.h, lib/jit_aarch64.c, + lib/jit_alpha.c, lib/jit_arm-vfp.c, lib/jit_arm.c, + lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, + lib/jit_ppc.c, lib/jit_s390.c, lib/jit_sparc.c, + lib/jit_x86.c: Add the new jit_arg_register_p predicate. + The predicate is expected to be used to know if an + argument is in a register, what would need special + handling if code that can overwrite non callee save + registers is executed. + + * check/carg.c: New test case to check consistency and + expected usage of jit_arg_register_p. + + * check/Makefile.am: Update for new test case. + +2015-01-17 Paulo Andrade + + * include/lightning/jit_aarch64.h, + include/lightning/jit_alpha.h, + include/lightning/jit_arm.h, + include/lightning/jit_hppa.h, + include/lightning/jit_mips.h, + include/lightning/jit_ppc.h, + include/lightning/jit_s390.h, + include/lightning/jit_sparc.h, + include/lightning/jit_x86.h, + lib/jit_aarch64.c, lib/jit_alpha.c, + lib/jit_arm.c, lib/jit_hppa.c, + lib/jit_ia64.c, lib/jit_mips.c, + lib/jit_ppc.c, lib/jit_s390.c, + lib/jit_sparc.c, lib/jit_x86.c: Remove jit_arg_reg_p and + jit_arg_f_reg_p from a public header, and define it only + on port specific files where an integer offset is used + to qualify an argument identifier. Exported code expects + an opaque pointer (but of jit_node_t* type) to "qualify" + an argument identifier. + This patch, and the code review/simplification done during + it also corrected some bugs: + o Inconsistent jit_arg_d value of double argument after 3 + integer arguments in arm for jit_functions; tested, C + functions were being properly called. + o Inconsistent use of getarg_{f,d} and putarg*_{f,d} on + s390 (32-bit) that happened to not have a proper test + case, as it would only happen for jit functions, and + tested, called C functions had proper arguments. + o Corrected a "last minute" correction that did not go + to the committed version, and would not compile on hppa, + due to bad _jit_putargi_d prototype definition. + +2015-01-17 Paulo Andrade + + * doc/body.texi: Correct wrong/outdated information for + hton*, pusharg* and ret*, and add missing documentation + for rsb*, qmul*, qdvi* and putarg*. + +2015-01-15 Paulo Andrade + + * configure.ac, lib/jit_disasm.c: Rewrite workaround + to apparent problem to initialize powerpc disassembler. + +2015-01-15 Paulo Andrade + + * include/lightning.h, lib/jit_aarch64.c, + lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, + lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, + lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: + Implement jit_putarg*. It works as a mix of jit_getarg* + and jit_pusharg*, in the way that the first argument is + a register or immediate, and the second is a pointer + returned by jit_arg*. The use of the interface is to change + values of arguments to the current jit function. + + * check/put.ok, check/put.tst: New test cases exercising + the new jit_putarg* interface. + + * check/Makefile.am, check/lightning.c: Update for the + new test case and interface. + +2015-01-08 Paulo Andrade + + * include/lightning/jit_s390.h, lib/jit_s390-cpu.c, + lib/jit_s390-fpu.c, lib/jit_s390-sz.c, lib/jit_s390.c: + Renamed s390x* files to s390*. + + * check/float.tst, check/lightning.c, configure.ac, + include/lightning.h, include/lightning/Makefile.am, + lib/Makefile.am, lib/jit_s390.c, lib/jit_size.c, + lib/lightning.c: Update for renamed files. + +2015-01-08 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + include/lightning/jit_s390x.h, lib/jit_disasm.c, + lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, + lib/jit_s390x.c, lib/jit_size.c, lib/lightning.c: + Add support for generating jit for s390 32 bit. This change + also removed %f15 from the list of temporaries fpr registers; + it was not being used, but if were, it would corrupt the + stack frame because the spill address would overwrite grp + offsets. + +2014-12-26 Paulo Andrade + + * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Correct some endianess issues + on the powerpc le backend. + +2014-12-26 Paulo Andrade + + * lib/jit_ppc-cpu.c: Add mcrxr instruction emulation, + as this instruction has been phased out, and should be + implemented as a kernel trap. + +2014-12-26 Paulo Andrade + + * lib/jit_arm.c: Better check for need to flush constants + before the pool being no longer reachable. + +2014-12-25 Paulo Andrade + + * include/lightning.h: Split jit_htonr in the new 3 interfaces + jit_htonr_us, jit_htonr_ui and jit_htonr_ul, the later only + available on 64 bit. The plain/untyped jit_htonr macro call + maps to the wordsize one. + * lib/jit_aarch64-cpu.c, lib/jit_aarch64-sz.c, lib/jit_aarch64.c, + lib/jit_alpha-cpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c, + lib/jit_arm-cpu.c, lib/jit_arm-sz.c, lib/jit_arm.c, + lib/jit_hppa-cpu.c, lib/jit_hppa-sz.c, lib/jit_hppa.c, + lib/jit_ia64-cpu.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, + lib/jit_mips-cpu.c, lib/jit_mips-sz.c, lib/jit_mips.c, + lib/jit_ppc-cpu.c, lib/jit_ppc-sz.c, lib/jit_ppc.c, + lib/jit_s390x-cpu.c, lib/jit_s390x-sz.c, lib/jit_s390x.c, + lib/jit_sparc-cpu.c, lib/jit_sparc-sz.c, lib/jit_sparc.c, + lib/jit_x86-cpu.c, lib/jit_x86-sz.c, lib/jit_x86.c: + Update backends for the new jit_htonr*. + * check/lightning.c, lib/jit_names.c, lib/lightning.c: + Update for the new jit_htonr* interfaces. + * check/Makefile.am: Update for new test cases. + * check/hton.ok, check/hton.tst: New test cases. + +2014-12-24 Paulo Andrade + + * include/lightning/jit_private.h, include/lightning/jit_x86.h, + lib/jit_disasm.c, lib/jit_x86-cpu.c, lib/jit_x86-sse.c, + lib/jit_x86-sz.c, lib/jit_x86-x87.c, lib/jit_x86.c, + size.c: Implement support for the x32 abi. Built and + tested on Gentoo default/linux/amd64/13.0/x32 profile. + +2014-12-24 Paulo Andrade + + * lib/jit_names.c: Add missing rsbi_f and rsbi_d strings. + +2014-12-21 Paulo Andrade + + * lib/jit_arm.c: Call __clear_cache for every page. + This should only be required for older boards or + toolchain setup, but has been reported to be required + for lightning at some point. + +2014-12-21 Paulo Andrade + + * lib/jit_arm.c: Correct check to guard overflow of index + of constants from program counter. + +2014-11-24 Paulo Andrade + + * lib/lightning.c: Remove an optimization to calee save + registers that may incorrectly remove a jit_movr under + special conditions. + +2014-11-20 Paulo Andrade + + * include/lightning/jit_ppc.h, lib/jit_ppc-cpu.c, + lib/jit_ppc.c: Add initial powerpc le support. + +2014-11-20 Paulo Andrade + + * lib/jit_disasm.c: Change thumb or arm disassemble based on + jit code before disassembly. + + * lib/jit_arm-cpu.c: Correct reversed arguments to LDRD and + STRD instructions, and correct checking for support of those. + + * lib/jit_arm-swf.c: Correct wrong use of LDRD and STRD and + only use those if the register is even. + + * check/check.arm.swf.sh, check/check.arm4.swf.sh: New files + to test LDRD and STRD, as well as the alternate code path + when those are not available, in the .arm4. test case. + + * check/Makefile.am: Update for the new test cases. + +2014-11-08 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_aarch64.c, + lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, + lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, + lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c: + Implement a private jit_flush call, that flushes + the cache, if applicable, aligning down to the + previous and up to the next page boundary. + +2014-11-08 Paulo Andrade + + * check/ctramp.c: New file. It just repeats the test + of tramp.tst, but using two jit_state_t, what should + test possible issues with two contexts, and also validate + jit_tramp works on backends with function descriptions. + + * check/Makefile.am: Update for new test case. + +2014-11-03 Paulo Andrade + + * include/lightning/jit_mips.h: Do not make the t9 register + JIT_R11 (or JIT_R7 for n32 or n64 abi) available. Previously + it cause problems if one expects it to not be changed in a + function call. For example, calling a jit function, where it + really does not need to be changed. + +2014-10-26 Paulo Andrade + + * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, + lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, + lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c: Add an + assertion to all code generation "drivers" to ensure + _jitc->regarg is empty or in an expected state, after + translation of a lightning instruction to native code. + This change was a brute force test to find out other cases + of a temporary not being release (like was happening with + _bmsi and _bmci on x86), but no other case was found, + after running make check, with assertions enabled, on all + backends. + +2014-10-26 Paulo Andrade + + * lib/jit_x86-cpu.c: Correct a register allocation leak in + _bmsi and _bmci. + +2014-10-25 Paulo Andrade + + * lib/jit_disasm.c: Do not cause an fatal error if init_jit + fails in the jit_init_debug call. + +2014-10-24 Paulo Andrade + + * lib/jit_ia64.c, lib/jit_ppc.c: Correct handling of function + descriptor when first prolog is a jit_tramp prolog. The + test case was using the same jit_context_t, so was not + triggering this condition. + + * lib/jit_ppc-cpu.c: Properly handle jump displacements that + do not fit on 24 powerpc. This required changing from previous + "mtlr reg, blr" to "mtctr reg, bctr" to properly handle + the logic to "hide" function descriptors, but that would + also be required as the proper jit_jmpr when/if implementing + optimizations to leaf functions (was working with blr because + it is saved/reloaded in prolog/epilog). + +2014-10-21 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Add three predicates + to query information about labels. jit_forward_p(label) + will return non zero if the label is "forward", that is + need a call to jit_link(label), jit_indirect_p(label) + that returns non zero if the label was created with the + jit_indirect() call, and jit_target_p(label) that will + return non zero if there is at least one jump patched + to land at that label. + +2014-10-18 Paulo Andrade + + * check/range.ok, check/range.tst: New test case designed + to catch incorrect code generation, usually due to incorrect + test of immediate size. The test checks a large amount of + encodings in "power of two" boundaries. This test exorcises + a significant amount of code paths that was previously not + tested. + + * check/Makefile.am: Add range test to make check target. + + * lib/jit_aarch64-cpu.c: Correct wrong address calculation + for stxi_c, stxi_s, stxi_i and stxi_l when the offset is + too large. + + * lib/jit_mips-fpu.c: Correct wrong size test to check if + an immediate can be encoded in a float or double store. + + * lib/jit_s390x-cpu.c: Correct inverted encoding to stxi_s + when the offset cannot be encoded, and fallbacks to an + alternate encoding in 2 instructions. + +2014-10-17 Paulo Andrade + + * check/alu_rsb.ok, check/alu_rsb.tst: New files implementing + tests for jit_rsb*. + + * check/Makefile.am, check/lightning.c, include/lightning.h, + lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, lib/jit_aarch64-sz.c, + lib/jit_aarch64.c, lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, + lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_arm-cpu.c, + lib/jit_arm-swf.c, lib/jit_arm-sz.c, lib/jit_arm-vfp.c, + lib/jit_arm.c, lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, + lib/jit_hppa-sz.c, lib/jit_hppa.c, lib/jit_ia64-cpu.c, + lib/jit_ia64-fpu.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, + lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips-sz.c, + lib/jit_mips.c, lib/jit_names.c, lib/jit_ppc-cpu.c, + lib/jit_ppc-fpu.c, lib/jit_ppc-sz.c, lib/jit_ppc.c, + lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, + lib/jit_s390x.c, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, + lib/jit_sparc-sz.c, lib/jit_sparc.c, lib/jit_x86-cpu.c, + lib/jit_x86-sse.c, lib/jit_x86-sz.c, lib/jit_x86-x87.c, + lib/jit_x86.c, lib/lightning.c: Implement jit_rsb*. This + was a missing lightning 1.x interface, that on most + backends is synthesized, but on a few backends (hppa and ia64), + it can generate better code as on those there is, or the + only instruction with an immediate is in "rsb" format + (left operand). + +2014-10-17 Paulo Andrade + + * lib/jit_names.c: New file with single definition of string + representation of lightning IR codes. + + * size.c: Modified to append the code name in a C comment + after the maximum instruction size. + + * lib/jit_print.c: Minor change to not duplicate jit_names.c + contents. + + * lib/jit_aarch64-sz.c, lib/jit_alpha-sz.c, lib/jit_arm-sz.c, + lib/jit_hppa-sz.c, lib/jit_ia64-sz.c, lib/jit_mips-sz.c, + lib/jit_ppc-sz.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c, + lib/jit_x86-sz.c: Rewritten to add string representation of + IR codes in a C comment. + +2014-10-14 Paulo Andrade + + * lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c, + lib/jit_hppa-cpu.c, lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c, + lib/jit_sparc-cpu.c: Implement or correct the internal + nop(count) call that receives an argument that tells the + modulo bytes to align the code for the next instruction. + + * include/lightning.h, lib/lightning.c, lib/jit_aarch64.c, + lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, lib/jit_ia64.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, + lib/jit_x86.c: Implement the new jit_align() call that receive + an argument, that tells the modulo, in bytes, to align the + next instruction. In most backends the only value that makes + a difference is a value that matches sizeof(void*), as all + other values usually are already automatically aligned in + labels, but not guaranteed to be aligned at word size bytes. + + * check/align.ok, check/align.tst: New files, implementing + a simple test for the new jit_align() interface. + + * check/Makefile.am, check/lightning.c, lib/jit_aarch64-sz.c, + lib/jit_alpha-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, + lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, + lib/jit_print.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c, + lib/jit_x86-sz.c: Update for the new jit_code_align code and + the jit_align() interface. + +2014-10-13 Paulo Andrade + + * include/lightning.h, lib/jit_size.c, size.c: Use a + symbolic value for the last IR code. + +2014-10-12 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c, + lib/jit_hppa-cpu.c, lib/jit_ia64-cpu.c, lib/jit_mips-cpu.c, + lib/jit_ppc-cpu.c, lib/jit_s390x-cpu.c, lib/jit_sparc-cpu.c, + lib/jit_x86-cpu.c, lib/lightning.c: Implement the new + jit_frame and jit_tramp interfaces, that allow writing + trampoline like calls, where a single dispatcher jit buffer + is written, and later other jit buffers are created, with + the same stack frame layout as the dispatcher. This is the + logic that GNU Smalltalk used in lightning 1.x, and is required + to make a sane port for lighting 2.x. + + * jit_ia64-cpu.c: Implement support for jit_frame and jit_tramp, + and also correct wrong encoding for B4 instructions, that + implement jmpr, as well as correct reverse logic in _jmpr, + that was moving the branch register to the jump register, + and not vice-versa. + Also, if a stack frame is to be assumed, always assume it may + call a function with up to 8 arguments, regardless of the + hint frame argument. + + * lib/jit_arm.c: Add a new must_align_p() interface to ensure + function prologs are always aligned. This condition was + previously always true, somewhat by accident, but with + jit_tramp it is not guaranteed. + + * jit_ia64-cpu.c: lib/jit_ppc.c: Add minor special handling + required to implement jit_tramp, where a function descriptor + should not be added before a prolog, as jit_tramp means omit + prolog. + + * check/lightning.c: Update test driver for the new interfaces. + + * check/Makefile.am, check/tramp.tst, check/tramp.ok: Add + a simple test and example of the jit_frame and jit_tramp + usage implementing a simple Fibonacci function using a + simulation of an interpreter stack and how it would handle + state in language specific variables. + + * doc/body.texi: Add documentation for jit_frame and + jit_tramp. + +2014-09-29 Paulo Andrade + + * lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, + lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, + lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, + lib/jit_x86.c, lib/lightning.c: Allow jit_jmpi on a + target that is not a node. This may lead to hard to + debug code generation, but is a required feature for + certain generators, like the ones that used lightning + 1.2x. Note that previously, but not really well + documented, it was instructed to use: + jit_movi(rn, addr); jit_jmpr(rn); + but now, plain: + jit_patch_abs(jit_jmpi(), addr); + should also work. + +2014-09-24 Paulo Andrade + + * lib/jit_x86-sz.c: Generate information about instruction + lengths for more precise calculation of buffer size on + Windows x64. This change is specially important because + the maximum instruction length is larger than other + systems, what could cause an out of bounds write on + special conditions without this update. + +2014-09-24 Paulo Andrade + + * check/lightning.c: Add workaround to conflicting global + optind variable in cygwin binutils that have an internal + getopt* implementation. + + * lib/jit_x86-cpu.c: Add a simple define ffsl ffs if building + for 32 bit and there is no ffsl function. + +2014-09-24 Paulo Andrade + + * check/lightning.c: Add a hopefully temporary kludge to not use + sprintf and sscanf returned by dlsym. This is required to pass + the varargs test. + + * include/lightning/jit_private.h: Use symbolic name for first + integer register argument, as this is different in sysv and + win64 abi. + + * include/lightning/jit_x86.h: Add conditionals and definitions + for Windows x64 (under __CYGWIN__ preprocessor conditional). + + * lib/jit_x86-cpu.c: Correct one instruction encoding bug, that + was working by accident. Only use rax to rdx for some byte + operations to work on compatibility mode (that is, to generate + the proper encoding, instead of actually generating encoding + for high byte registers, e.g. %bh). + Add proper prolog and epilog for windows x64. + + * lib/jit_x86-sse.c: Correct a swapped rex prefix for float + operations. + + * lib/jit_x86.c: Adjust to support Windows x64 abi. + + * check/check.x87.nodata.sh: New file, previously used but that + was missing git. + +2014-09-07 Paulo Andrade + + * lib/lightning.c: Mark all registers advertised as live, as + per jit_callee_save_p as live whenever reaching a jump that + cannot be tracked. This is a rethink of the previous commit, + and is a better approach, otherwise there would not be much + sense on relying on jit_callee_save_p if it could not be + trusted. + + * check/jmpr.tst, check/jmpr.ok: New files implementing a very + simple test case, that would actually cause an assertion on + code before the change to only mark as live when reaching a + jump that could not tracked, the actually advertised as callee + save registers. + + check/Makefile.am: Update for new jmpr test case. + +2014-09-01 Paulo Andrade + + * lib/lightning.c: Do not mark all registers in unknown state + as live on jit_jmpr, or jit_jmpi to an absolute address. Instead, + treat it as a function call, and only consider JIT_Vn registers + as possibly live. + +2014-08-29 Paulo Andrade + + * doc/body.texi: Add a proper info menu entry for + GNU lightning. + + * doc/version.texi: Regenerate. + +2014-08-16 Paulo Andrade + + * lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, + lib/jit_arm-cpu.c, lib/jit_arm-vfp.c, + lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, + lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, + lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, + lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, + lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, + lib/jit_s390x.c, lib/jit_sparc-cpu.c, + lib/jit_x86-cpu.c, lib/jit_x86-sse.c, + lib/jit_x86-x87.c: Review generation of all branch + instructions and always adds the jit_class_nospill + bitfield for temporary registers that cannot be spilled + because the reload would be after a conditional jump; the + patch only adds an extra assertion. These conditions do + not happen on documented lightning usage, but can happen + if one uses the not exported jit_get_reg and jit_unget_reg + calls and cause enough register starvation. + +2014-08-16 Paulo Andrade + + * lib/jit_alpha.c: Correct wrong bitmask of most argument + float register arguments, that were being set as callee + save instead of argument registers class. + +2014-08-16 Paulo Andrade + + * lib/jit_arm-sz.c: Regenerate table of known maximum + instruction sizes for the software float fallback, + that implements "virtual" float registers in the stack + and operations as calls to libgcc. + + * size.c: Correct typo in the generated jit_arm-sz.c file. + +2014-08-10 Paulo Andrade + + * include/lightning/jit_alpha.h, lib/jit_alpha-cpu.c, + lib/jit_alpha-fpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c: + New files implementing a lightning Alpha port. Thanks + to Trent Nelson and snakebit.net staff for providing access + to an Alpha system. + + * check/float.tst, check/lightning.c, configure.ac, + include/lightning.h, include/lightning/Makefile.am, + include/lightning/jit_private.h, lib/Makefile.am, + lib/jit_disasm.c, lib/jit_size.c, lib/lightning.c: + Minor changes to adapt for the new Alpha port. + +2014-08-10 Paulo Andrade + + * lib/lightning.c: Always mark JIT_RET and JIT_FRET as + live in a function epilog. This is required because + on some ports a complex sequence, allocating one or more + registers, may be required to jump from a ret* to the + epilog, and the lightning api does not have annotations + to know if a function returns a value, or the type of + the return value. + +2014-08-10 Paulo Andrade + + * lib/lightning.c: Change the correct live bitmask of + return registers after a function call in jit_update. + +2014-08-10 Paulo Andrade + + * lib/lightning.c: Change assertions to have an int + result and correct a bad bit mask assertion. + +2014-08-10 Paulo Andrade + + * lib/jit_aarch64.c: Correct bad setup for assertion + of consistency before a patch. + +2014-08-10 Paulo Andrade + + * lib/jit_mips-cpu.c: Correct typo in the jit_bmsr + implementation that was using the wrong test result + register. + +2014-07-28 Paulo Andrade + + * lib/jit_memory.c: Do not call free on NULL pointers. + + * include/lightning/jit_private.h, lib/jit_note.c, + lib/lightning.c: Add a wrapper to memcpy and memmove + to not actually call those functions with a zero size + argument, and likely also a null src or dst. + +2014-07-27 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_disasm.c, + lib/lightning.c: Remove the global jit_progname variable. + It was being only used in jit_init_debug, that is called + from init_jit, so, just pass an argument. + +2014-07-27 Paulo Andrade + + * doc/body.texi: Add note that jit_set_memory_functions + should be called before init_jit, because init_jit + itself may call the memory wrappers. + +2014-04-22 Paulo Andrade + + * lib/jit_arm.c: Do not get confused with default settings + if /proc is not mounted on Linux specific code path. + +2014-04-09 Paulo Andrade + + * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, + include/lightning/jit_hppa.h, include/lightning/jit_ia64.h, + include/lightning/jit_mips.h, include/lightning/jit_ppc.h, + include/lightning/jit_private.h, include/lightning/jit_s390x.h, + include/lightning/jit_sparc.h, include/lightning/jit_x86.h: + Do not add jit_regset_t, JIT_RA0, and JIT_FA0 to the installed + header file. These types and definitions are supposed to be + only used internally. + +2014-04-05 Paulo Andrade + + * lib/jit_arm-cpu.c: Only adjust stack pointer in prolog if + need stack space, that is, do not emit a nop instruction + subtracting zero from the stack pointer. + +2014-04-04 Paulo Andrade + + * lib/jit_disasm.c: Correct a crash in the doc/printf example + on arm due to releasing the data_info information in + jit_clear_state. This is a special case for arm only, and + actually, only armv5 or older uses the data_info buffer, + or when forcing arm instruction set mode besides thumb + available. + +2014-12-03 Paulo Andrade + + * doc/body.texi: Write detailed description and examples for + jit_get_memory_functions, jit_set_memory_functions, + jit_get_code, jit_set_code, jit_get_data and jit_set_data. + +2014-12-03 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/lightning.c: Implement the new jit_set_data() interface, + and the new jit_get_data() helper. Like jit_set_code(), + jit_realize() should be called before jit_set_data(). + The most common usage should be jit_set_data(JIT_DISABLE_DATA + | JIT_DISABLE_NOTE), to force synthesize any float/double + constant in the stack and not generate any debug information. + + * lib/jit_note.c: Minor change to debug note generation as + now it uses an alternate temporary data buffer during constants + and debug generation to accommodate the possibility of the user + setting an alternate data buffer. + + * lib/jit_hppa-fpu.c, lib/jit_s390x.c, lib/jit_s390x-cpu.c, + lib/jit_s390x-fpu.c, lib/jit_sparc.c, lib/jit_sparc-fpu.c, + lib/jit_x86-sse.c, lib/jit_x86-x87.c: Implement jit_set_data. + + * lib/jit_hppa-sz.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c, + lib/jit_s390x-sz.c: Update for several instructions that now + have a different maximum length due to jit_set_data. + + * lib/jit_mips-fpu.c: Implement jit_set_data, but missing + validation on n32 and n64 abis (and/or big endian). + + * lib/jit_mips-sz.c: Update for changes in o32. + + * lib/jit_ppc-fpu.c: Implement jit_set_data, but missing + validation on Darwin PPC. + + * lib/jit_ppc-sz.c: Update for changes in powerpc 32 and + 64 bit. + + * lib/jit_ia64-fpu.c: Implement untested jit_set_data. + + * TODO: Add note to list ports that were not tested for the + new jit_set_data() feature, due to no longer having access + to them. + + * check/nodata.c: New file implementing a simple test exercising + several different conditions created by jit_set_data(). + + * check/check.nodata.sh: New file implementing a wrapper + over the existing *.tst files, that runs all tests without + using a data buffer for constants; only meaningful (and + enabled) on architectures that used to store float/double + constants on a read only data buffer. + + * configure.ac, check/Makefile.am: Update for the new test + cases. + + * check/lightning.c: Implement the new "-d" option that + sets an internal flag to call jit_set_data() disable + constants and debug, that is, using only a pure code + buffer. + +2014-11-03 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/lightning.c: Implement the new jit_set_code() interface, + that allows instructing lightning to use an alternate code + buffer. The new jit_realize() function should be called + before jit_set_code(), and usually call jit_get_code() + to query the amount of bytes expected to be required for + the code. + + * lib/jit_size.c: Minor update to have less chances of + miscalculating the code buffer by starting the counter + with the size of the longest instruction instead of zero, + as code emit fails if at any moment less than the longest + instruction bytes are available. + + * check/setcode.c: New file implementing some basic tests + of the new jit_set_code() interface. + + * check/Makefile.am: Update for newer test case. + +2014-06-03 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Add the new + jit_indirect() call, that returns a special label node, + and tells lightning that the label may be the target of + an indirect jump. + + * doc/body.texi: Document the new jit_indirect() call, and + add examples of different ways to create labels and branches. + +2014-23-02 Paulo Andrade + + * lib/jit_x86.c: Rewrite previous patch to inline save/restore + because clobbering %ebx in x86 is treated as an error + (jit_x86.c:239:5: error: PIC register clobbered by 'ebx' in 'asm'). + +2014-19-02 Paulo Andrade + + * lib/jit_x86.c: Rewrite incorrect inline assembly that could + truncate a variable in a callee save register. Now it simply + tells gcc that the register is clobbered, instead of using a + *32 bit* swap with a temporary variable. The problem only + happens when compiling with optimization. + +2014-19-02 Paulo Andrade + + * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, + include/lightning/jit_hppa.h, include/lightning/jit_ia64.h, + include/lightning/jit_mips.h, include/lightning/jit_ppc.h, + include/lightning/jit_s390x.h, include/lightning/jit_sparc.h, + include/lightning/jit_x86.h: Change jit_regset_t to an + unsigned type, to allow safe right shift. + + * lib/lightning.c: Rewrite jit_regset_scan1 to allow easier + compiler optimization. + +2013-12-03 Paulo Andrade + + * lib/jit_x86-x87.c: Correct wrong optimization when + loading the log(2) constant. + +2013-12-03 Paulo Andrade + + * lib/jit_x86-cpu.c: Use the emms instruction before + calling any function. This is particularly important + when using c99 complex functions as it can easily + overflow the x87 stack due to the way lightning uses + the x87 stack as a flat register file. + +2013-12-02 Paulo Andrade + + * lib/jit_x86-x87.c: Correct wrong code generation due + to comparing the base and not the value register with + %st(0) in stxi_f. + +2013-12-02 Paulo Andrade + + * lib/jit_x86-x87.c, lib/jit_x86.c: Use 8 bytes aligned + stack offset for float/double x87 to/from sse move. + +2013-11-27 Paulo Andrade + + * configure.ac, lib/jit_arm-swf.c, lib/jit_arm.c: Add + changes that should at least allow building lightning + on Apple iOS7. + +2013-10-08 Paulo Andrade + + * lib/jit_ppc-cpu.c: Correct wrong shortcut for ldxi_l with + a zero offset, that was calling ldr_i instead of ldr_l. + +2013-10-08 Paulo Andrade + + * include/lightning/jit_arm.h, lib/jit_arm-cpu.c: Do not use + by default load/store instructions that map to ldrt/strt. + There is already the long displacement version for positive + offsets, and when using a (shorter) negative offset it does + not map to ldrt/strt. At least on qemu strt may cause + reproducible, but unexpected SIGILL. + +2013-10-08 Paulo Andrade + + * lib/jit_arm-vfp.c: Correct wrong load/store offset + calculation when the displacement is constant but too + large to use an instruction with an immediate offset. + +2013-10-07 Paulo Andrade + + * check/self.c: Extend tests to validate jit_callee_save_p + does not cause an assertion on valid arguments, and test + extra registers defined on some backends. + + * configure.ac: Do not ignore environment CFLAGS when + checking if need to test runtime configurable options, + like use x87 when sse2 is available, arm instruction set + instead of thumb, etc. + + * include/lightning/jit_arm.h: Correct wrong jit_f macro + definition. + + * include/lightning/jit_ia64.h, include/lightning/jit_ppc.h: + Correct wrong jit_r macro definition. + + * lib/jit_x86-x87.c, lib/jit_x86.c: Actually use the + reserved stack space for integer to/from float conversion. + The stack space was also changed to ensure it is 8 bytes + aligned. Also, for Solaris x86 in 32 bit mode, an alternate + truncr_d was implemented because for some reason it is + failing with SIGILL if using the "fisttpl" instructions, + that must be available on p6 or newer, but for the sake of + making all tests pass, implement a 486 or newer sequence + if "sun" is defined. + +2013-10-03 Paulo Andrade + + * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, + lib/jit_mips-sz.c, lib/jit_mips.c, size: Build and + pass all test cases on Irix big endian mips using + the 64 bit abi. + +2013-10-02 Paulo Andrade + + * include/lightning/jit_mips.h: Add proper mips abi detection. + +2013-09-30 Paulo Andrade + + * lib/jit_print.c: Do not crash if calling jit_print from + gdb before actually emitting code. + + * lib/lightning.c: Correct misplaced check for already + visited blocks on conditional branches, what was preventing + proper merge live bit masks of forward blocks. + +2013-09-30 Paulo Andrade + + * lib/jit_x86-cpu.c: Correct not properly tested case of using + %r12 as index register, what was causing an invalid assertion. + %r12 is mapped to the "extra" JIT_R3 register, and test cases + only test "standard" lightning registers. + +2013-09-28 Paulo Andrade + + * lib/jit_ia64.c: Minor change to force collecting the maximum + instruction length in the --enable-devel-get-jit-size build + mode. The actual generated file did not change because the + sampling was large enough that it had already collected proper + information in the previously slightly buggy code (not forcing + a sync of the instructions that could be combined). + +2013-09-27 Paulo Andrade + + * lib/jit_arm.c: Correct build when disassembler is + disabled. + +2013-09-25 Paulo Andrade + + * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c: Correct some + off by one range checks (that were only accepting values + one less than the maximum allowed) and an invalid test + condition check that was forcing it to always use + indirect jumps even when reachable with an immediate + displacement. + +2013-09-24 Paulo Andrade + + * lib/jit_aarch64-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, + lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, + lib/jit_s390x-sz.c, lib/jit_size.c, lib/jit_sparc-sz.c, + lib/jit_x86-sz.c: New files implementing static tables + with longest known instructions length generated to match + a lightning instruction. These tables should make it easier + to make it very unlikely to ever miscalculate, or by too + much, the size of a code buffer. + + * lib/jit_size.c: New file that aids to either collect + jit code size information, or use the information depending + on build options. + + * size.c: New helper file that parses input for, and create + an initial jit_$arch-sz.c file, that needs some minor edit + for arches with multiple configurations. + + * configure.ac, Makefile.am: Add the new, devel mode only + --enable-devel-get-jit-size configure option, that sets + compile time flags to collect jit code size information, + that will be used as input for the "noinst size program". + + * lib/jit_aarch64.c, lib/jit_arm.c, lib/jit_disasm.c, + lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_memory.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, + lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: Minor + changes for the --enable-devel-get-jit-size build mode, + as well as the "production build mode" with jit code + size information. + +2013-09-14 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Add the new + jit_pointer_p interface, that returns a boolean value + telling if the pointer argument is inside the jit + code buffer. This is useful to avoid the need to add + extra labels and calls to jit_address to figure bounds + of code buffer, and still keep internal data private. + +2013-09-13 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_note.c: Change the code argument of jit_get_note + to a jit_pointer_t and make jit_get_note a public interface. + It was intended so since start, as a way to map an offset + in the code to a function name, file name and line number + mapping. + +2013-09-11 Paulo Andrade + + * doc/body.texi: Correct reversed arguments in example of + usage in a (possibly) multi threaded, multiple jit_state_t + environments. + + * include/lightning/jit_arm.h, include/lightning/jit_private.h, + lib/jit_arm-cpu.c, lib/jit_arm.c: Make a previously, non + documented, global state private to the related jit_state_t + generating code. + +2013-09-10 Paulo Andrade + + * check/self.c, check/self.ok: New files implementing simple + consistency check assertions. At first validating some macros + that use values from different sources agree. + + * check/Makefile.am: Update for the new test case. + + * include/lightning.h, lib/lightning.c: Add the new + jit_callee_save_p() call, that is intended to be used when + writing complex code using lightning, so that one does not + need to verify what backend is being used, or have access to + private data, to query if a register is callee save or not; + on several backends the scratch registers are actually callee + save. + + * include/lightning/jit_aarch64.h, include/lightning/jit_arm.h, + include/lightning/jit_hppa.h, include/lightning/jit_mips.h, + include/lightning/jit_ppc.h, include/lightning/jit_sparc.h, + include/lightning/jit_x86.h: Add an explicit definition for + JIT_R3-JIT_Rn, JIT_V3-JIT_Vn and JIT_F6-JIT_Fn when applicable. + This allows one to write code based on "#if defined(JIT_XN)" + and therefore, not need to check what is the current backend + or have access to private data structures. This is particularly + useful when writing virtual machines with several specialized, + global registers. + + * lib/jit_ia64.c: Properly flag the callee save general + purpose registers as such, so that jit_callee_save_p() works + as intended. + +2013-09-10 Paulo Andrade + + * check/lightning.c, configure.ac: Conditionally use the + code written to workaround a bug in the Hercules emulator, + as isnan and isinf are not available at least on HP-UX ia64. + +2013-09-10 Paulo Andrade + + * lib/jit_s390x-cpu.c: Spill/reload correct callee save + float registers. + +2013-09-10 Paulo Andrade + + * lib/jit_hppa-cpu.c: Correct code to call a function stored + in a register or a patched function address. + +2013-09-10 Paulo Andrade + + * lib/jit_ia64-cpu.c: Correct incorrect logic when restoring + the value of the "r2" callee save register. + +2013-08-29 Paulo Andrade + + * lib/jit_arm-cpu.c, lib/jit_arm.c: Correct wrong test and update + of the thumb offset information, when checking if needing to + patch a jump from arm to thumb mode. The problem would happen when + remapping the code buffer, and the new address being lower than + the previous one. + +2013-08-26 Paulo Andrade + + * configure.ac: Extend FreeBSD test to also handle NetBSD. + + * lib/jit_x86-cpu.c: Correct wrongly defined offset type of + ldxi_ui. Problem detected when building on NetBSD. + + * lib/lightning.c: Adjust code to handle NetBSD mremap, + where arguments do not match Linux mremap. + +2013-08-26 Paulo Andrade + + * lib/jit_ppc.c: Correct C sequence point problem miscalculating + the actual function address in a function descriptor. Problem + happens with gcc 4.8.1 at least. + +2013-08-11 Paulo Andrade + + * lib/jit_s390x-cpu.c: Correct code checking if immediate + fits instruction, but using the negated value. + +2013-07-28 Paulo Andrade + + * include/lightning/jit_s390x.h, lib/jit_s390x-cpu.c, + lib/jit_s390x-fpu.c, lib/jit_s390x.c: New files + implementing the new s390x port. + + * configure.ac, include/lightning.h, + include/lightning/Makefile.am, + include/lightning/jit_private.h, + lib/Makefile.am, lib/jit_disasm.c, lib/lightning.c: + Minor adaptation for the new s390x backend. + + * check/float.tst: Update for the s390x result of + truncating +Inf to integer. + + * check/qalu_mul.tst: Add extra test cases to better test + high word of signed multiplication as the result is + adjust from unsigned multiplication on s390x. + +2013-07-28 Paulo Andrade + + * check/lightning.c: Do not assume casting a double NaN or + Inf to float will produce the expected float NaN or Inf. + This is not true at least under s390x. + +2013-07-28 Paulo Andrade + + * check/check.arm.sh, check/check.sh, check/check.swf.sh, + check/check.x87.sh: Properly check test programs output, + not just rely on the test program self testing the results + and not crashing. + +2013-07-28 Paulo Andrade + + * lib/jit_aarch64.c: Remove unused macros left from cut&paste + of jit_arm.c. + +2013-07-16 Paulo Andrade + + * include/lightning/jit_aarch64.h, lib/jit_aarch64-cpu.c, + lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: New files + implementing the new aarch64 port, as a new architecture, + not as an expansion of the existing armv[4-7] port. + + * check/lightning.c: Add aarch64 support and a small + change to recognize character constants as immediate + values. + + * check/float.tst: Add aarch64 preprocessor conditionals + to select proper expected value when converting [+-]Inf + and NaN to integer. + + * include/lightning/jit_arm.h, lib/jit_arm.c: Minor changes + to better match the new aarch64 files. + + * configure.ac, include/lightning.h, + include/lightning/Makefile.am, include/lightning/jit_private.h, + lib/Makefile.am, lib/lightning.c: Minor adjustments + for the aarch64 port. + +2013-07-08 Paulo Andrade + + * NEWS, THANKS, configure.ac, doc/version.texi: Update for + the 1.99a second alpha release. + +2013-06-25 Paulo Andrade + + * lib/jit_mips.c: Correct cut&paste error that caused wrong + stack offset calculation for double arguments in stack in + the o32 abi. + Correct typo in the __LITTLE_ENDIAN macro name, that came + from cut&paste error in the original typo in lib/jit_ppc.c. + + * lib/jit_ia64.c, lib/jit_ppc.c: Correct typo in the + __LITTLE_ENDIAN macro name. + +2013-06-22 Paulo Andrade + + * check/lightning.c, configure.ac, include/lightning.h, + lib/lightning.c: Add tests and quirks to build/detect + and/or work on Irix. + + * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, + lib/jit_mips-fpu.c, lib/jit_mips.c: Adapt code to run + in big endian mips, using the n32 abi. + +2013-06-18 Paulo Andrade + + * include/lightning.h: Minor extra preprocessor testing + to "detect" byte order on x86 solaris, that now builds + and pass all test cases. + +2013-06-18 Paulo Andrade + + * lib/jit_sparc-cpu.c: Correct compiler warning of value + used before assignment. The usage is bogus as the api + requires always patching jumps, but the random value used + could cause an assertion due to invalid displacement. + + * lib/jit_sparc.c: Always load and store double arguments + in stack as 2 float loads or stores, for safety, as unaligned + access is not allowed in Sparc Solaris. + +2013-06-14 Paulo Andrade + + * configure.ac: Force -mlp64 to CFLAGS on HP-UX ia64 port. + It is the only supported mode, and expects gcc as C compiler. + + * include/lightning.h, lib/jit_ia64-cpu.c, lib/jit_ia64.c: + Correct ia64 port to work on HP-UX that runs it in big endian + mode. + +2013-06-10 Paulo Andrade + + * lib/jit_hppa.c: Sanitize the cache synchronization inline + assembly code that was doing twice the work and redundantly + flushing the end address every loop iteration. + +2013-06-09 Paulo Andrade + + * configure.ac, check/Makefile.am, doc/Makefile.am: Do not + explicitly link to -ldl, but instead autodetect the library + with dlopen, dlsym, etc. + + * check/lightning.c: Add workaround to apparently buggy + getopt in HP-UX that sets optind to the wrong index, and + use RTLD_NEXT on HP-UX instead of RTLD_DEFAULT to dlsym + global symbols. + + * include/lightning.h: Rework definitions of wordsize and + byte order to detect proper values on HP-UX. + + * lib/lightning.c: Minor correction to use MAP_ANONYMOUS + instead of MAP_ANON on HP-UX. + + * lib/jit_hppa.c: Float arguments must be passed on integer + registers on HP-UX, not only for varargs functions. + Add code to properly clear instruction cache. This was + not required on Debian hppa port, but may have been working + by accident. + + * lib/jit_hppa-cpu.c: Follow pattern of HP-UX binaries and + use bve,n instead of bv,n to return from functions. + + * lib/jit_hppa-fpu.c: For some reason "fst? frX,rX,(rY)" did + not work on the tested computer (HP-UX B.11.23 U 9000/785 HP-UX) + so the code was changed, at first for __hpux only to add the + base and offset register and use the instruction with an + immediate (zero) offset. + +2013-06-07 Paulo Andrade + + * check/lightning.c, lib/jit_disasm.c, lib/jit_ppc-cpu.c, + lib/jit_ppc-fpu.c, lib/jit_ppc.c, include/lightning.h, + include/lightning/jit_ppc.h, include/lightning/jit_private.h: + Adapt code to work on 32 bit AIX ppc using gcc. Most changes + are basically to adapt the elf64 logic to 32 bit, as it does + not use the same convention of 32 bit Darwin ppc. + + * check/stack.tst: Add a fake memcpy function to the test + case if running under AIX, as it is not available to dlsym. + + * configure.ac: Check for getopt.h header, not available in + AIX. + +2013-06-01 Paulo Andrade + + * include/lightning/jit_hppa.h, lib/jit_hppa-cpu.c, + lib/jit_hppa-fpu.c, lib/jit_hppa.c: New files implementing + the hppa port. Built on Debian Linux PA-RISC 2.0, 32 bit. + + * check/float.tst: Add preprocessor for hppa expected + values when converting NaN and +-Inf to an integer. + + * check/ldst.inc: Ensure double load/store tests use an + 8 byte aligned address by default. + + * lib/lightning.c: Correct a bug found during tests in + the new port, where qmul* and qdiv* were not properly + setting one of the result registers as modified in the + function, what would be a problem if the only "write" + usage were the qmul* or qdiv*. + + * check/varargs.tst, check/varargs.ok: Add one extra + interleaved integer/double test to validate proper code + generation in the extra case. + + * check/lightning.c, configure.ac, include/lightning.h, + include/lightning/Makefile.am, + include/lightning/jit_private.h, lib/Makefile.am, + lib/jit_disasm.c: Update for the hppa port. + +2013-04-27 Paulo Andrade + + * check/varargs.tst: Correct misplaced .align directive + that was causing the double buffer to not be aligned at + 8 bytes. + * lib/jit_ia64-cpu.c: + Properly implement abi for excess arguments passed on + stack. + Simplify load/store with immediate displacement argument + with zero value. + Simplify some calls to "subi" changing to "addi" with + a negative argument. + Remove some #if 0'ed code, that could be useful in + special conditions, but the most useful one would be + to "optimize" "static" jit functions, but for the sake + of simplicity, jit functions are implemented in a way + that can be passed back to C code as C function pointers. + Add an attribute to prototypes of several unused functions. + These functions are defined for the sake of implementing all + Itanium documented instructions, but a significant amount of + them is not used by lightning. + * lib/jit_ia64-fpu.c: Simplify load/store with zero immediate + displacement and add unused attribute for functions not used + by lightning, but required to provide macros implementing all + Itanium documented instructions. + * lib/jit_ia64.c: Update for the properly implemented abi + for stack arguments. + * lib/lightning.c: Mark an unused function as such. + +2013-04-27 Paulo Andrade + + lib/jit_ia64-cpu.c: + Correct immediate range check of integer comparisons when + inverting arguments. + Correct gei_u that was not decrementing immediate when + inverting arguments. + Correct b?add* and b?sub* that were not properly updating + the result register. + +2013-04-27 Paulo Andrade + + * lib/jit_ia64-cpu.c: Correct wrong mapping of 2 instructions + in "M-, stop, M-, stop" translation, that was ignoring the + last stop (implemented as a nop I- stop). + + * lib/jit_ia64-fpu.c: Properly implement fnorm.s and fnorm.d, + as well as the proper integer to float or double conversion. + +2013-04-27 Paulo Andrade + + * lib/jit_ia64-cpu.c: Correct bogus implementation of ldr_T + for signed integers, that was using ld1.s, ld2.s and ld4.s. + The ".s" stands for speculative load, not sign extend. + + * lib/jit_ia64-fpu.c: Correct bogus implementation of ldxr_T + for float and double. The third (actually, second) argument + is indeed added to the base register, but the base register + is modified. The actual M7 implementation was already correct, + just the ldxr_f and ldxr_d implementation that was kept in + a prototype state, misinterpreting what M7 does. + +2013-04-27 Paulo Andrade + + * lib/jit_ia64-cpu.c: Correct X2 pattern matching by preventing + it to attempt to require a stop between the L and the X + instruction; that is, check the registers and predicates + before emitting the L instruction, not after. + + * lib/jit_ia64-fpu.c: Slightly simplify and correct + divr_f and divrd_d implementation. + + * check/lightning.c: Add __ia64__ preprocessor define + on Itanium. + + * check/alu.inc, check/clobber.tst, check/float.tst: Define + several macros conditionally to __ia64__. This is required + because __ia64__ jit generation can use way too many memory, + due to not implementing instruction reordering to avoid + as much as possible "stops", what causes way too many nops + to be generated, as well as the fact that division and + remainder requires function calls, and float division + requires significant code to implement. + +2013-04-27 Paulo Andrade + + * include/lightning.h: Add new backend specific movr_w_d, + movr_d_w and movi_d_w codes as helpers to ia64 varargs + functions arguments. + + * lib/jit_ia64-cpu.c: + Correct wrong encoding of A5 small integers. + Correct define of "mux" instruction modifiers. + Correct ordering of arguments and predicates of cmp_xy + implementation with immediate arguments; like most other + codes with an immediate, the immediate is the second, not + the third argument. + + * lib/jit_ia64-fpu.c: Actual implementation of the code + to move to/from gpr to/from fpr, to implement varargs abi. + + * lib/jit_ia64.c: Make fpr argument registers not allocatable + as temporaries, no need for the extra checks when there are + plenty registers. + + * lib/jit_print.c, lib/lightning.c: Minor updates for the + new movr_w_d, movr_d_w and movi_d_w codes. + +2013-04-26 Paulo Andrade + + * lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c: Correct code to + also insert a stop to break an instruction group if a + register is written more than once in the same group. + This may happen if a register is argument and result of + some lightning call (not a real instruction). The most + common case should be code in the pattern: + movl rn=largenum + ... + mov rn=smallnum + where "rn" would end up holding "largenum". + But the problem possibly could happen in other circumstances. + +2013-04-26 Paulo Andrade + + * include/lightning/jit_ia64.h, lib/jit_ia64-cpu.c, + lib/jit_ia64-fpu.c, lib/jit_ia64.c: + Relocate JIT_Rn registers to the local registers, as, like + float registers, div/rem and sqrt are implemented as function + calls, and may overwrite non saved scratch registers. + Change patch_at to receive a jit_code_t instead of a + jit_node_t, so that it is easier to "inline" patches when + some instruction requires complex code to implement, e.g. + uneq and ltgt. + Correct arguments to FMA and FMA like instructions that, + due to a cut&paste error were passing the wrong argument + to the related F- implementation function. + Rewrite ltgt to return the proper result if one (or both) + of the arguments is unordered. + +2013-04-26 Paulo Andrade + + * include/lightning/jit_ia64.h, include/lightning/jit_private.h, + lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64.c, + lib/lightning.c: Rework code to detect need of a "stop" to + also handle predicates, as if a predicate is written, it + cannot be read in the same instruction group. + Use a single jit_regset_t variable for all registers when + checking need for a stop (increment value by 128 for + float registers). + Correct wrong "subi" implementation, as the code executed + is r0=im-r1, not r0=r1-im. + Use standard lightning 6 fpr registers, and rework to + use callee save float registers, that may be spill/reloaded + in prolog/epilog. This is required because some jit + instructions implementations need to call functions; currently + integer div/mod and float sqrt, what may change the value of + scratch float registers. + Rework point of "sync" of branches that need to return a + patch'able address, because the need for a "stop" before a + predicate read causes all branches to be the instruction + in slot 0, as there is no template to "stop" and branch + in the same instruction "bundle". + +2013-04-25 Paulo Andrade + + * include/lightning/jit_ia64.h, lib/jit_ia64-cpu.c, + lib/jit_ia64-fpu.c, lib/jit_ia64.c: New files implementing + the basic infrastructure of an Itanium port. The code + compiles and can generate jit for basic hello world like + functions. + + * check/lightning.c, configure.ac, include/lightning.h, + include/lightning/Makefile.am, include/lightning/jit_private.h, + lib/Makefile.am, lib/lightning.c: Update for the Itanium + port. + + * lib/jit_mips-cpu.c, lib/jit_mips.c: Correct typo and + make the jit_carry register local to the jit_state_t. + This matches code reviewed in the Itanium port, that + should use the same base logic to handle carry/borrow. + +2013-04-10 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_arm.c, + lib/jit_mips-cpu.c, lib/jit_mips.c, lib/jit_ppc-cpu.c, + lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, + lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, + lib/lightning.c: Change all jit_regset macros to take + a pointer argument, to avoid structure copies when + adding a port to an architecture with more than 64 + registers. + +2013-04-08 Paulo Andrade + + * lib/jit_arm.c, lib/jit_ppc.c: Do not rely on __clear_cache + aligning to the next page boundary the end argument. It may + actually truncate it. + +2013-03-29 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_memory.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c, + lib/lightning.c: Do not start over jit generation if can grow + the code buffer with mremap without moving the base pointer. + +2013-03-29 Paulo Andrade + + * lib/jit_memory.c: Implement a simple memory allocation wrapper + to allow overriding calls to malloc/calloc/realloc/free, as well + as ensuring all memory containing pointers is zero or points to + allocated memory. + + * include/lightning.h, include/lightning/jit_private.h: Definitions + for the memory allocation wrapper. + + * lib/Makefile.am: Update for new jit_memory.c file. + + * lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_note.c, + lib/jit_ppc.c, lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: + Use the new memory allocation wrapper code. + +2013-03-22 Paulo Andrade + + * configure.ac, include/lightning/jit_private.h, lib/lightning.c: + Remove dependency on gmp. Only a simple bitmap was required, and + that was not enough reason to force linking to gmp and possible + complications caused by it. + +2013-03-10 Paulo Andrade + + * include/lightning.h: Add check for __powerpc__ defined + in Linux, while Darwin defines __ppc__. + + * include/lightning/jit_ppc.h: Adjust register definitions + for Darwin 32 bit and Linux 64 bit ppc usage and/or ABI. + + * include/lightning/jit_private.h: Add proper check for + Linux __powerpc__ and an data definition for an workaround + to properly handle code that starts with a jump to a "main" + label. + + * lib/jit_disasm.c: Add extra disassembler initialization + for __powerpc64__. + + * lib/jit_ppc-cpu.c: Add extra macros and functions, and + correct/adapt previous ones to handle powerpc64. + + * lib/jit_ppc-fpu.c: Adapt for 64 bit wordsize. Basically + add conversion from/to int32/int64 and proper handling of + load/store offsets too large for 32 bit. + + * lib/jit_ppc.c: Add calls to 64 bit codes and adaptation + for the PowerPC 64 bit Linux ABI. + + * lib/jit_arm.c, lib/jit_mips.c, lib/jit_sparc, lib/jit_x86.c, + lib/lightning.c: Correct off by one error when restarting jit + of a function due to finding too late that needs to spill/reload + some register. Problem was found by accident on a very special + condition during PowerPC 64 code adaptation. + +2013-03-08 Paulo Andrade + + * check/lightning.c: Add missing ppc preprocessor definition. + +2013-03-06 Paulo Andrade + + * check/float.tst: Comment out the int to negative infinity + test in mips for the moment because not all Loongson agrees + on the result. + + * lib/jit_disasm.c: Add a test instead of an assertion + when loading symbols for disassembly due to a failure with + a simple binutils build in Debian mipsel64. + +2013-03-06 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_arm-cpu.c, + lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips-cpu.c, + lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc-cpu.c, + lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, + lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, + lib/lightning.c: Add an extra structure for data storage + during jit generation, and release it after generating + jit, to reduce a bit memory usage, and also to make it + easier to understand what data is available during + jit runtime. + +2013-03-06 Paulo Andrade + + * lib/lightning.c: Make data and code buffer readonly. + +2013-02-20 Paulo Andrade + + * doc/body.texi: Fool proof validate the examples of what + an assembly-language programmer would write and correct the + wrong sparc example. + +2013-02-19 Paulo Andrade + + * doc/body.texi: Add back the SPARC code generation example. + +2013-02-19 Paulo Andrade + + * check/lightning.c: Remove state flag to work with partial + sparc port, by just disassembling if there was incomplete + code generation. + + * jit_sparc-cpu.c: Correct wrong range check for immediate + integer constants (off by one bit shift). + Correct macro implementing equivalent "rd %y, rd" assembly. + Implement qmul* and qdiv*. + + * jit_sparc.c: Update for qmul* and qdiv* and remove logic + to handle incomplete code generation during sparc port. + +2013-02-18 Paulo Andrade + + * check/float.tst: Add sparc to list of known NaN and +-Inf + to integer conversion. + + * check/lightning.c: Define __sparc__ to preprocessor in + the sparc backend. + + * include/lightning/jit_private.h: Correct wrong definition + of emit_stxi_d, that has lived for a long time, but would + cause problems whenever needing to spill/reload a float + register. + + * include/lightning/jit_sparc.h: Can only use %g2,%g3,%g4 + for scratch variables, as other "global" registers are + reserved for the system, e.g. libc. + Reorder float register naming to make it easier to + access odd float registers, so that generating code for + pusharg and getarg is easier for the IR. + + * lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c: Update to match + new code in jit_sparc-cpu.c. It must call jit_get_reg + with jit_class_nospill if using the register to move + an unconditional branch address to it, as the reload + will not happen (actually could happen in the delay + slot...) + + * lib/jit_sparc-cpu.c: Correct wrong macro definition for + ldxr_s. + Properly implement div* and implement rem. Div* needs + to use the y register, and rem* needs to be synthesized. + Correct b?sub* macro definitions. + + * lib/jit_sparc-fpu.c: Correct reversed float to/from double + conversion. + Correct wrong jit_get_reg call asking for a gpr and then + using the fpr with that number. + Correct wrong branch displacement computation for + conditional branches. + + * lib/jit_sparc.c: Correct getarg_d and pushargi_d implementation. + Add rem* entries to the switch converting IR to machine code. + + * lib/lightning.c: Correct a problem detected when adding + the jit_class_nospill flag to jit_get_reg, that was caused + when having a branch to an "epilog" node, what would cause + the code to think all registers in unknown state were live, + while in truth, all registers in unknown state in the + "just after return" point are actually dead. + +2013-02-17 Paulo Andrade + + * include/lightning/jit_sparc.h, lib/jit_sparc-cpu.c, + lib/jit_sparc-fpu.c, lib/jit_sparc.c: New files implementing + the basic framework of the sparc port. + + * configure.ac, include/lightning.h, include/lightning/Makefile.am, + include/lightning/jit_private.h, lib/jit_disasm.c: Update + for the sparc port framework. + + * lib/jit_mips.c: Correct reversed retr/reti logic. + + * lib/jit_ppc.c: Correct misspelled __LITTLE_ENDIAN. + + * lib/lightning.c: Always do byte hashing in hash_data, because + the logic to "compress" strings causes large pointers to not + be guaranteed aligned at 4 byte boundaries. + Update for the sparc port framework. + +2013-02-11 Paulo Andrade + + * lib/jit_arm.c: Correct jit_pushargi_f in the arm hardfp abi. + Most of the logic uses even numbered register numbers, so that + a float and a double can be used in the same register, but + the abi requires packing the float arguments, so jit_pushargi_f + needs to allocate a temporary register to modify only the + proper register argument (or be very smart to push two + immediate arguments if applicable). + +2013-02-11 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Implement the new + jit_clear_state and jit_destroy_state calls. jit_clear_state + releases all memory not required during jit_execution; that + is, leaves only the mmap'ed data and code buffers allocated. + jit_destroy_state releases the mmap'ed buffers as well as + the jit_state_t object itself, that holds pointers to the + code and data buffers, as well as annotation pointers (for + disassembly or backtrace) in the data buffer. + + * lib/jit_note.c: Correct invalid vector offset access. + + * check/ccall.c, check/lightning.c, doc/ifib.c, doc/incr.c, + doc/printf.c, doc/rfib.c, doc/rpn.c: Use the new jit_clear_state + and jit_destroy_state calls, to demonstrate the new code to + release all jit memory. + + * doc/body.texi: Add basic documentation and usage description + of jit_clear_state and jit_destroy_state. + +2013-02-11 Paulo Andrade + + * include/lightning/jit_private.h, lib/jit_note.c, lib/lightning.c: + Store all annotation information in the mmap'ed area reserved for + read only data. This adds code to not allocate memory for jit_note_t + objects, and to relocate jit_line_t objects and its contents after + calculating annotation information. The jit_line_t objects are + relocated because it is not possible to always calculate before + hand data layout because note information may be extended or + redundant entries removed, as well as allowed to be added in + non sequential order. + A bug was also corrected in _jit_set_note, that was causing it + to allocate new jit_line_t objects when not needed. It was still + working correctly, but allocating way more memory than required. + +2013-02-05 Paulo Andrade + + *include/lightning.h, lib/lightning.c: Add the new jit_live code + to explicitly mark a register as live. It is required to avoid + assuming functions always return a value in the gpr and fpr return + register, and to avoid the need of some very specialized codes + that vary too much from backend to backend, to instruct the + optimization code the return register is live. + + * lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, + lib/jit_x86.c: Update for the new jit_live code. + + * check/ret.ok, check/ret.tst: New files implementing a simple + test case that would previously fail at least in ix86/x86_64. + + * check/Makefile.am: Update for new "ret" test case. + +2013-02-05 Paulo Andrade + + * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Validate and correct + problems in the qmul and qdiv ppc implementation. + +2013-02-04 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_arm-cpu.c, lib/jit_arm.c, lib/jit_mips-cpu.c, + lib/jit_mips.c, lib/jit_ppc-cpu.c, lib/jit_ppc.c, + lib/jit_x86-cpu.c, lib/jit_x86.c, lib/lightning.c: + Implement the new qmul and qdiv instructions that return signed + and unsigned lo/hi multiplication result and div/rem division result. + These should be useful for jit translation of code that needs to + know if a multiplication overflows (no branch opcode added) or if + a division is exact (easy check if remainder is zero). + + * check/lightning.c, lib/jit_print.c, check/Makefile.am, + check/all.tst: Update for the new qmul and qdiv instructions. + + * check/qalu.inc, check/qalu_div.ok, check/qalu_div.tst, + check/qalu_mul.ok, check/qalu_mul.tst: New files implementing + simple test cases for qmul and qdiv. + +2013-01-30 Paulo Andrade + + * doc/body.texi: Correct "jmpi" description that incorrectly + told it was possible to pass any address as jump target. The + only way to do that is "movi+jmpr". + +2013-01-30 Paulo Andrade + + * lib/jit_x86-cpu.c: Correct undefined behavior code. + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56143 + +2013-01-29 Paulo Andrade + + * configure.ac: Use AC_CONFIG_HEADERS instead of AC_CONFIG_HEADER + to have HAVE_CONFIG_H defined with latest aclocal. + + * include/lightning/jit_private.h, lib/lightning.c: Add new + abstraction to use an heuristic to calculate amount of space + required for jit generation, and code to reallocate buffer if + did miscalculate it. + + * lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_x86.c: + Update to use new code to estimate and resize of required buffer + for jit code. + + * lib/jit_x86-cpu.c: Minor cosmetic change to avoid adding a + non required rex prefix when calling a function pointer stored + in a register. + +2013-01-24 Paulo Andrade + + * check/Makefile.am: "make debug" target should pass only + the main test tool program as argument for running gdb + + * configure.ac: Add the --enable-assertions options. + + * doc/Makefile.am, doc/body.texi, doc/lightning.texi: + Major rewrite of the documentation to match the current + implementation. + + * doc/version.texi: Automatic date update. + + * doc/ifib.c, doc/incr.c, doc/printf.c, doc/rfib.c, doc/rpn.c: + Implementation of the documentation examples, that are also + compiled during a normal build. + + * doc/p-lightning.texi, doc/porting.texi, doc/toc.texi, + doc/u-lightning.texi, doc/using.texi: These files were + renamed in the documentation rewrite, as the documentation + was significantly trimmed due to full removal of the porting + chapters. Better porting documentation should be added but + for the moment it was just removed the documentation not + matching the implementation. + +2013-01-18 Paulo Andrade + + * lib/jit_note.c: Correct bounds check and wrong code keeping + a pointer that could be changed after a realloc call. + +2013-01-18 Paulo Andrade + + * check/3to2.tst, check/add.tst, check/allocai.tst, check/bp.tst, + check/call.tst, check/ccall.c, check/clobber.tst, check/divi.tst, + check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, check/ldstr.tst, + check/ldstxi-c.tst, check/ldstxi.tst, check/ldstxr-c.tst, + check/ldstxr.tst, check/lightning.c, check/rpn.tst, check/stack.tst, + check/varargs.tst, include/lightning.h, + include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_disasm.c, + lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc.c, lib/jit_print.c, + lib/jit_x86.c, lib/lightning.c: Extend the "jit_note" abstraction + with the new "jit_name" call, that receives a string argument, and + should usually be called to mark boundaries of functions of code + generating jit (that is, it is not expected that the language + generating jit map its functions to jit functions). + +2013-01-17 Paulo Andrade + + * check/add.tst, check/allocai.tst, check/bp.tst, check/divi.tst, + check/fib.tst, check/lightning.c, include/lightning/jit_arm.h, + include/lightning/jit_mips.h, include/lightning/jit_ppc.h, + include/lightning/jit_private.h, include/lightning/jit_x86.h: + Make JIT_RET, JIT_FRET and JIT_SP private. These should not be + used in any operations due to frequently having special + constraints (usually JIT_FRET). JIT_FP must be made available + because it must be used as the base register to access stack + space allocated with jit_allocai. + +2013-01-14 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Add an extra align + argument to the jit_data call (that should be made private), + so that it should not align strings at 8 bytes. + Correct the jit_note call to include the null ending byte + when adding label/note names to the "jit data section". + +2013-01-11 Paulo Andrade + + * lib/jit_note.c: New file implementing a simple string+integer + annotation, that should be used to map filename and line number + to offsets in the generated jit. + + * include/lightning.h, lib/lightning.c: Update for the new + note code. + Add an extra mandatory argument to init_jit, that is used + as argument to bfd_openr. + Change from generic void* to char* the argument to jit_note + and add an extra integer argument, to map to filename and + line number. + + * check/ccall.c, check/lightning.c, include/lightning/jit_private.h, + lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_ppc.c, + lib/jit_print.c, lib/jit_x86.c: lib/Makefile.am: Update for the + new annotation code. + + * configure.ac, check/Makefile.am: Update to work with latest + automake. + +2013-01-09 Paulo Andrade + + * include/lightning.h, lib/jit_arm.c, jit_mips-fpu.c, + lib/jit_mips.c, lib/jit_print.c, lib/jit_x86.c, lib/lightning.c: + Remove the jit_code_getarg_{f,d} and jit_code_pusharg{i,r}_{f,d} + calls, replacing them with the new, internal only, jit_movr_w_f, + jit_mov{r,i}_f_w, jit_movr_ww_d, and jit_mov{i,r}_d_ww, that + better describe the operation being done, and allow removing + the hackish code to detect special conditions for arm when + moving from/to vfp from/to a grp register pair. + Rename jit_code_retval_{f,d} to jit_code_x86_retval_{f,d} as + it is specific to 32 bit x86, and used to move abi return + value in x87 register to a sse register. + +2013-01-05 Paulo Andrade + + * 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-02 Paulo Andrade + + * check/float.tst: Correct test case to match ppc also + converting positive infinity to 0x7fffffff. + + * lib/jit_arm-swf.c: Correct typos with double underscores. + + * lib/lightning.c: Correct remaining wrong reverse jump logic. + +2012-12-29 Paulo Andrade + + * lib/lightning.c: Correct both, wrong and confusing logic + to compute the reverse of a jump. Now it properly matches + C semantics for "eq" (==) and "ne" (!=) and correct computation + of reverse of "uneq" as "gt". + + * check/branch.tst: Update "ne" float branch check that + previously happened to be wrongly tested with a NaN argument. + +2012-12-29 Paulo Andrade + + * check/float.ok, check/float.tst: New test cases implementing + extensive validation of float comparison and branch code + generation as well as integer conversion, involving NaN and + [+-]Inf. + + * lib/jit_arm-swf.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: + Correct bugs found by new float test case. + + * lib/jit_x86.c: Correct cut&paste error added in commit to + convert jit_arg* return value to a jit_node_t*, that would + cause it to not properly handle double arguments in ix86. + + * check/Makefile.am: Update for the new test case. + +2012-12-28 Paulo Andrade + + * check/lightning.c, include/lightning.h, lib/jit_arm.c, + lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_x86.c, + lib/lightning.c: Change return value of jit_arg{,_f,_d} to + a jit_node_t* object, that should be used as argument to + jit_getarg_{c,uc,s,us,i,ui,l,f,d}. This just requires changing + from jit_int32_t to jit_pointer_t (or jit_node_t*) the "handle" + for the getarg calls, with the benefit that it makes it easy + to implement patching of the stack address of non register + arguments, this way allowing to implement variable size stack + frames if applicable; useful if there are too many registers and + jit functions uses only a few callee save registers. + +2012-12-27 Paulo Andrade + + * lib/jit_arm.c, lib/jit_mips-cpu.c, lib/jit_mips.c: Correct + regressions when patching jit_calli for a forward function. + + * lib/jit_ppc-cpu.c: Correct wrong arguments to ANDI opcode + in jit_getarg_u{c,s} implementation. + +2012-12-23 Paulo Andrade + + * check/call.ok, check/call.tst: New test cases to validate + simple typed argument and return values in function calls. + + * check/lightning.c: Properly handle jit_movi of labels for + backward and forward code labels. + + * check/Makefile.am: Update for new test case. + +2012-12-23 Paulo Andrade + + * check/carry.ok, check/carry.tst: New test case to validate + carry condition handling. + + * check/Makefile.am: Update for new test case. + +2012-12-22 Paulo Andrade + + * lib/jit_ppc-cpu.c, lib/jit_ppc.c: Implement logic for + jit_htonr for big endian, so that ppc (big endian) pass the + new clobber.tst test case. + +2012-12-22 Paulo Andrade + + * lib/jit_arm.c: Correct use of wrong argument offset + variable in armv7l or float/double argument for varargs + function in armv7hl. + Correct jit_getarg* logic in software float mode to + match expected behavior in other backends, that is, if + a function is not called, it is safe to use a few lightning + calls before a next jit_getarg* call, as done in the test + case check/stack.tst. The proper solution should be to + extend the parser in lib/lightning.c to check if there is + some float operation that will call some (libgcc?) function, + but software float arm should be a very uncommon backend for + lightning, so, just load the already in place arguments + saved to stack, assuming the register argument was clobbered + (what should not be the case most times...). + +2012-12-22 Paulo Andrade + + * check/clobber.ok, check/clobber.tst: New test case doing + extensive validation tests to ensure registers not used in + a operation are not clobbered. + + * check/Makefile.am: Update for new test case. + +2012-12-21 Paulo Andrade + + * lib/lightning.c: Partially rewrite/revert code to compute + initial register live state at the start of a basic block. + The original logic was corrupted when adding optimizations + to do as few computations as possible in jit_update. The + reglive field must be always a known set of live registers + at the start of a basic block. The value that was incorrect + was the regmask field, that must be the set of registers + that are in unknown state, because they are not known live, + neither set (or possibly not set) in the basic block, and + *must* store the state at the start of the basic block. + +2012-12-20 Paulo Andrade + + * include/lightning/jit_ppc.h: Correct mismatch of JIT_F{1,5} + with enum codes, that were correct, and returned by jit_f(). + + * lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: Properly + implement and better describe values when generating stack + frames. + +2012-12-18 Paulo Andrade + + * check/stack.ok, check/stack.tst: New files to test data + integrity on a deep chain of stack frames. + + * lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c, + lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c, + lib/jit_x86.c, lib/jit_x86-cpu.c: Calculate _jit->function->stack + in the emit stage, otherwise it will calculate it wrong if + need to jit_allocai space to spill registers. + + * lib/lightning.c: Correct wrong offset when updating the + "current" jit function pointer in the code that may need to + allocate stack space to spill registers. + + * check/lightning.c: Correct off by one data space check. + + * check/Makefile.am: Update for new test case. + +2012-12-17 Paulo Andrade + + * check/fop_abs.ok, check/fop_abs.tst, check/fop_sqrt.ok, + check/fop_sqrt.tst: New files implementing simple test cases + for the extra float operations. + + * check/Makefile.am: Update for new test cases. + + * check/alu.inc: Add an extra macro to check for unordered + equality on tests where it is expected to use NaN as an + argument. + + * check/lightning.c: Minor change for proper/common argument + syntax handling ommiting arguments to options. + +2012-12-17 Paulo Andrade + + * check/Makefile.am: Automatically generate pattern list + of tests with alternate jit generation options. This should + prevent typos and needing to change multiple places after + a change. + +2012-12-14 Paulo Andrade + + * check/lightning.c: Remove the ".cpu name value" syntax, + as it was not able to do proper changes before the jit + internal data structure was initialized. Now it supports + several getopt options to force using different jit + generation options, effectively replacing the previous + syntax. + + * check/run-test: Add simple extra logic to handle differently + named test scripts, used to test things like x87 coprocessor + in ix86, and arm instruction set or software float in armv7l. + + * configure.ac: Add some AC_RUN_IFELSE calls to figure at + compile time if can test different code generation options, + and update Makefile generation accordingly. + + * check/Makefile.am, lib/jit_arm.c, lib/jit_x86.c: Update to + properly work with the test tool updating the jit_cpu global + information. + + * check/check.arm.sh, check/check.swf.sh, check/check.x87.sh: + New wrapper files passing -mthumb=0, mvfp=0 and -mx87=1 to + the test tool, if applicable, so that it can validate alternate + code generation options on test hosts that support them. + +2012-12-14 Paulo Andrade + + * lib/jit_x86-x87.c, lib/jit_x86.c: Correct test cases in ix86 + when using the x87 coprocessor instead of sse2+. + +2012-12-14 Paulo Andrade + + * include/lightning.h, include/lightning/jit_private.h, + lib/jit_arm.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_x86.c, + lib/lightning.c: Make jit_ellipsis implementation not + backend specific. It is not intended to handle va_list + like objects at runtime, as jit_arg* and jit_getarg* + return constant values resolved at parse time, so, effectively + it is not possible to create printf like jit functions, as + there is no va_start, va_arg, va_end, etc, abstraction. This + limitation should be kept for the sake of making new ports + easier. + +2012-12-14 Paulo Andrade + + * include/lightning.h, lib/lightning.c: Add two extra wrapper + functions to avoid need for excess pointer to/from word casts. + + * check/lightning.c: Only need for pointer to/from word cast + now is jit_movi, update accordingly. + +2012-12-13 Paulo Andrade + + * check/varargs.ok, check/varargs.tst: New test cases implementing + simple varargs calls with a large amount of arguments to exercise + excess arguments on stack. + + * include/lightning.h: Include config.h if HAVE_CONFIG_H is + defined. + + * lib/jit_arm.c: Allocate a fpr register, not a gpr one for + temporary when pushing varargs arguments in the stack. + + * lib/jit_arm-swf.c: Correct code changing the wrong offset + in jit_absr_d and jit_negr_d in software float. + + * lib/jit_mips.c: Correct calculation of offsets of arguments + on stack. + + * lib/jit_ppc.c: Correct bogus logic for "next" offset of arguments + on stack and adjust for fixed offset of stack arguments. + +2012-12-12 Paulo Andrade + + * include/lightning.h, lib/jit_arm.c, lib/jit_mips.c, + lib/jit_ppc.c, lib/jit_x86.c, lib/lightning.c: Change jit_prepare + to no longer receive an argument. If receiving an argument, it + should be an ABI specifier, not a boolean if varargs or not, + and add the new jit_ellipsis call, to specify where the + ellipsis is in the C prototype of the function being called. + Note that currently it is not supported to define varargs + functions and it will be ignored if calling jit_ellipsis not + in a prepare/finish* block, but this should be addressed. + + * check/allocai.tst, check/alu_add.tst, check/alu_and.tst, + check/alu_com.tst, check/alu_div.tst, check/alu_lsh.tst, + check/alu_mul.tst, check/alu_neg.tst, check/alu_or.tst, + check/alu_rem.tst, check/alu_rsh.tst, check/alu_sub.tst, + check/alu_xor.tst, check/alux_add.tst, check/alux_sub.tst, + check/bp.tst, check/branch.tst, check/cvt.tst, check/divi.tst, + check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, + check/ldstr.tst, check/ldstxi-c.tst, check/ldstxi.tst, + check/ldstxr-c.tst, check/ldstxr.tst, check/rpn.tst, + check/lightning.c: Update for the change to jit_prepare and + addition of jit_ellipsis. + +2012-12-11 Paulo Andrade + + * lib/jit_ppc-cpu.c: Make movr a function that checks arguments + so that other code can safely assume it is a noop if src and dst + are the same register. + Implement rem{r,i}{,_u} as a div{,u}/mul/sub. + Correct ANDIS, ORIS and XORIS calls to cast the argument to + unsigned before the shift to avoid an assertion if the argument + had the topmost bit set. + Implement lshi, rshi and rshi_u as functions to test for a + zero argument, that would otherwise trigger an assertion when + computing the shift value. + Do a simple implementation of bm{s,c}{r,i} with a temporary, + "andr" of arguments and jump based on comparison with zero. + Correct typo in ldxi_c. + + * lib/jit_ppc-fpu.c: Correct wrong arguments to FDIV* and STF*. + + * lib/jit_ppc.c: Correct wrong check for 6 instead of 8 integer + arguments in registers. If calling a varargs function and + passing a float or double argument, also either store the + value in the stack or in integer registers, as varargs functions + do not fetch it from float registers. + Add "case" for new functions and incorrectly missing ones. + Call libgcc's __clear_cache, that should know what to do + if the hardware needs flushing cache before execution. + + * lib/lightning.c: Do a simple/trivial logic in jit_regset_scan1, + that should make it easier for the compiler to optimize it, and + that also corrects the previously wrong code for big endian, and + that was causing problems in ppc due to not saving all callee save + registers as it was not "finding" them in the regset due to the + little endian assumption bug. + +2012-12-11 Paulo Andrade + + * configure.ac: Only default to using the builtin disassembler + if on GNU/Linux. This should be temporary, due to requiring + /proc/self/exe. + Correctly check $target_cpu for powerpc. + + * include/lightning/jit_ppc.h: Correctly implement jit_v_num. + + * include/lightning/jit_private.h: Declare proper prototype + for jit_init_debug and jit_finish_debug. + + * lib/jit_ppc-cpu.c: Remove code to save/restore callee save + float registers, as it is not required since those float + registers are not usable currently. + Change prolog and epilog generation to, at least comparing + code, match what gcc generates in "gcc -O0", but it is still + failing in Darwin PPC, apparently due to the __clear_cache + call not being enough, as frequently it will also fail to + execute, and the code buffer is all zeroes. + + * lib/lightning.c: Do not fail in jit_regset_scan1 calls due + to passing 64 as argument on computers with 64 registers. + +2012-12-10 Paulo Andrade + + * lib/jit_mips-cpu.c: Correct all current test cases. + Call the "xori" not the "XORI" macro for jit_xori implementation, + as the XORI macro handles only 16 bit unsigned values. + Call the "movr" macro, not the "movi" macro in the special + case of adding or subtracting zero. + Use the proper temporary register in the jit_andr implementation. + +2012-12-09 Paulo Andrade + + * check/alu.inc, check/alu_add.ok, check/alu_add.tst, + check/alu_and.ok, check/alu_and.tst, check/alu_com.ok, + check/alu_com.tst, check/alu_div.ok, check/alu_div.tst, + check/alu_lsh.ok, check/alu_lsh.tst, check/alu_mul.ok, + check/alu_mul.tst, check/alu_neg.ok, check/alu_neg.tst, + check/alu_or.ok, check/alu_or.tst, check/alu_rem.ok, + check/alu_rem.tst, check/alu_rsh.ok, check/alu_rsh.tst, + check/alu_sub.ok, check/alu_sub.tst, check/alu_xor.ok, + check/alu_xor.tst, check/alux_add.ok, check/alux_add.tst, + check/alux_sub.ok, check/alux_sub.tst, check/branch.ok, + check/branch.tst: New test cases for arithmetic and branch + tests. + + * check/Makefile.am: Update for new test cases. + + * include/lightning/jit_private.h: Make the jit_reg_free_p + macro shared by all backends. Previously was added for the + arm backend, but is useful in the x86_64 backend when checking + state of "special purpose register". + Also add the new jit_class_named register class, that must be + or'ed with the register value if calling jit_get_reg expecting + an specific value, because the specific register value may be + zero, that previously was treated as no register requested. + + * lib/jit_arm-cpu.c: Correct argument order for T2_MVN. + + * lib/jit_arm-swf.c: Call the proper function for double + divide. The "software float" implementation just calls + libgcc functions. + + * lib/jit_arm.c: Return float/double values in the float + register if using the hard float ABI. + + * lib/jit_x86-cpu.c: Change the can_sign_extend_int_p macro + to not include -0x80000000L, because there is code that + "abuses" it and thinks it can negate the immediate value + after calling that macro. + Correct implementation of jit_subi that had a wrong code + patch logic doing subtraction with reversed arguments. + Correct REX prefix calculation in the jit_muli implementation. + Correct logic to get/unget %*ax and %*dx registers in divremr + and divremi. + Correct divremi that was using the symbolic, unique %*ax + value in on place (not using the _REGNO name suffix). + Correct cut&paste error causing it to use "xor" instead of + "or" in one code path of the jit_ori implementation. + Correct several flaws when clobbering registers and/or when + one of the arguments was %*cx in the rotshr wrapper function + implementing most shift operations. + + * lib/lightning.c: No longer expect that the backend be smart + enough to know what to do when asking for a named register + if that register is already an argument or is live. It fails + if it is an argument, or if register is live, fails if cannot + spill. + No longer incorrectly assume that eqr_{f,d} and ltgr_{f,d} are + safe to inverse value tests in jump thread optimization. + +2012-12-05 Paulo Andrade + + * check/Makefile.am, check/cvt.ok, check/cvt.tst: Add new + "cvt" test case to test conversion from/to int/float types. + + * check/lightning.c: Only define truncr_{f,d}_l in 64 bit mode. + + * include/lightning.h: Correct typo that caused it to define + jit_truncr_{f,d}_l in 32 bit mode. + + * lib/jit_arm-cpu.c: Avoid assertion failure in the signed/unsigned + extend opcodes generation as it shares an interface for 3 argument + opcode generation. + + * lib/jit_x86-cpu.c: Correct wrong argument passed to + jit_unget_reg in the andi implementation and wrong byte + unsigned extend code generation. + + * lib/jit_x86-sse.c: Correct conversion from "word" to float or + double as is dependent on wordsize. + +2012-12-05 Paulo Andrade + + * check/ldstr-c.ok, check/ldstr-c.tst, check/ldstxi-c.ok, + check/ldstxi-c.tst, check/ldstxr-c.ok, check/ldstxr-c.tst: + New test case files testing load clobbering the base and/or + index register; + + * check/ldst.inc: New file with common definition for all the + ldst* test cases. + + check/Makefile.am, check/ldsti.tst, check/ldstr.tst, + check/ldstxi.tst, check/ldstxr.tst: Update for new common + definitions file and new register clobber ldst tests. + +2012-12-05 Paulo Andrade + + * lib/jit_mips-fpu.c: Correct wrong register order in stxr_{f,d} + in the mips backend. + +2012-12-05 Paulo Andrade + + * lib/jit_arm-vfp.c: Correct regression found in armv7l with + latest test cases. + +2012-12-05 Paulo Andrade + + * check/ldstxi.tst, check/ldstxr.tst: Correct wrong argument + order for 32 bit mode tests. + + * configure.ac: Correct check for ix86 target_cpu. + +2012-12-05 Paulo Andrade + + * check/ldstr.ok, check/ldstr.tst, check/ldsti.ok, + check/ldsti.tst, check/ldstxr.ok, check/ldstxr.tst, + check/ldstxi.ok, check/ldstxi.tst: + New test case files exercising a very large amount of + register combinations to verify load/store implementation. + + * check/Makefile.am: Update for new test cases. + + * lib/jit_x86-cpu.c: Correct wrong argument order when + computing REX prefix for {ld,st}r_T codes; + +2012-12-04 Paulo Andrade + + * lib/jit_mips-fpu.c, lib/jit_mips.c: Implement missing mips + jit_sqrtr_{f,d} codes. + + * check/all.tst, include/lightning.h, lib/jit_print.c: Change + declaration order and call order in all.tst of {add,sub}c and + {add,sub}x. *c must be called before to set the carry and *x + second to use the carry and keep it set. The wrong call order + was causing all.tst to fail in mips, where a register is + allocated to keep a global carry state. + +2012-12-04 Paulo Andrade + + * include/lightning/jit_mips.h, lib/jit_mips-cpu.c, + lib/jit_mips-fpu.c, lib/jit_mips.c: Correct float/double + argument handling and make the mips backend pass the initial + test cases. + + * include/lightning.h, ib/jit_print.c, lib/lightning.c: + Add extra enum values for argument handling functions that + could not be abstracted to the current codes, that is, when + float values need to move from/to gpr from/to fpr. It would + be more tempting to add such primitives, but they would have + wordsize limitations, and it is not expected to add codes + with one gpr argument for 64 bit and two for 32 bit. + + * lib/jit_ppc.c: Check _jit->function before calling jit_epilog() + to avoid a runtime exception. + +2012-12-04 Paulo Andrade + + * include/lightning/jit_mips.h, lib/jit_mips.c: Update to + make the mips backend compile in a qemu image. + + * lib/jit_ppc.c: Minor adaptations to help in having the + ppc backend compilable. + +2012-12-03 Paulo Andrade + + * configure.ac, include/lightning/jit_private.h, lib/jit_arm-cpu.c, + lib/jit_arm-swf.c, lib/jit_arm.c, check/Makefile.am: Correct + implementation of the arm backend port to build and pass the + current test cases. Tested on armv7 with softfp abi. + + * lib/jit_disasm.c: Rename and change prototype of static + disassemble function as in the arm backend it is required + to access state information stored in the jit_state_t object. + + * check/3to2.tst, check/add.tst: Correct test case code assuming + JIT_RO and JIT_RET are the same, and even if they are the same, + the logic was incorrect because it must always call jit_retval* + to fetch a function call return before any other instruction. + The arm backend hash a special condition if jit_retval is not + called, because "r0" is not JIT_R0, but is JIT_RET and *also* + the first argument for a called function, so JIT_RET must be + only used as an argument to jit_retval. + +2012-12-03 Paulo Andrade + + * check/all.tst, check/lightning.c: Only declare or use 64 bit + interfaces on 64 bit builds. + + * check/fib.tst: Use simpler logic to not need preprocessor + conditionals for 32 or 64 bit. + + * include/lightning.h: Only declare 64 bit macros on a 64 bit + build. Code using lightning must know about wordsize and the + jit generation limitations, also, this way it generates a + compile time failure, not a runtime assertion. + + * include/lightning/jit_x86.h: Correct typo in macro name. + + * lib/jit_arm.c, lib/jit_arm-cpu.c, lib/jit_mips.c, + lib/jit_mips-cpu.c, lib/jit_ppc.c, lib/jit_ppc-cpu.c, + lib/jit_x86.c, lib/jit_x86-cpu.c: Correct wrong code to get + current jit function pointer. + + * lib/lightning.c: Move call to the simplify() optimization + to after register liveness is known. Previous code did work + by accident but now with proper test cases the problem was + noticed. + + * lib/jit_disasm.c: Always cast bfd_vma to long long when + passing it as printf argument. + +2012-12-03 Paulo Andrade + + * configure.ac, check/Makefile.am, check/check.sh, + doc/Makefile.am, include/lightning/Makefile.am, + lib/Makefile.am: Correct make distcheck. + +2012-12-02 Paulo Andrade + + * lib/jit_ppc.c: Assign copyright ownership to FSF. + + * lib/jit_x86-cpu.c: Correct integer multiplication that was + generating code with reversed register arguments. + + * check/rpn.ok, check/rpn.tst: New test case file. + +2012-12-02 Paulo Andrade + + * lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c: + Actually change copyright owner to FSF as avertised. + + * lib/jit_arm-cpu.c, lib/jit_arm-swf.c, + lib/jit_arm-vfp.c, lib/jit_arm.c, + lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips.c, + lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc.c: New + files implementing initial code different jit backends. + + * include/lightning/jit_private.h: Add extra field to the + private jit_patch_t type, required by the arm port. + + * lib/Makefile.am: Update for the new backend implementation + files. + +2012-12-02 Paulo Andrade + + * check/Makefile.am: Add proper "make clean" rule and missing + check.sh to EXTRA_DIST. + +2012-12-02 Paulo Andrade + + * .gitignore: Update pattern of ignored files. + + * check/Makefile.am: Add rule to build liblightning.la dependency + in case of running "make check" before building the library. + +2012-12-02 Paulo Andrade + + * lightning/Makefile.am, lightning/asm-common.h, + lightning/core-common.h, lightning/fp-common.h, + lightning/funcs-common.h, lightning/i386/Makefile.frag, + lightning/i386/asm-32.h, lightning/i386/asm-64.h, + lightning/i386/asm.h, lightning/i386/core-32.h, + lightning/i386/core-64.h, lightning/i386/core.h, + lightning/i386/fp-32.h, lightning/i386/fp-64.h, + lightning/i386/fp.h, lightning/i386/funcs.h, + lightning/ppc/asm.h, lightning/ppc/core.h, + lightning/ppc/fp.h, lightning/ppc/funcs.h, + lightning/sparc/asm.h, lightning/sparc/core.h, + lightning/sparc/fp.h, lightning/sparc/funcs.h: + Removed. The core logic is used in the new code, and new mips + and arm ports will be added. At first, sparc will not be + supported as it has not yet been ported to the new engine. + +2012-12-02 Paulo Andrade + + * tests/Makefile.am, tests/3to2.c, tests/3to2.ok, tests/add.c, + tests/add.ok, tests/allocai.c, tests/allocai.ok, tests/bp.c, + tests/bp.ok, tests/divi.c, tests/divi.ok, tests/fib.c, tests/fib.ok, + tests/fibdelay.c, tests/fibdelay.ok, tests/fibit.c, tests/fibit.ok, + tests/funcfp.c, tests/funcfp.ok, tests/incr.c, tests/incr.ok, + tests/ldst.c, tests/ldst.ok, tests/ldxi.c, tests/ldxi.ok, + tests/modi.c, tests/modi.ok, tests/movi.c, tests/movi.ok, + tests/printf.c, tests/printf.ok, tests/printf2.c, tests/printf2.ok, + tests/ret.c, tests/ret.ok, tests/rpn.c, tests/rpn.ok, tests/rpnfp.c, + tests/rpnfp.ok, tests/sete.c, tests/sete.ok, tests/testfp.c, + tests/testfp.ok, tests-run-test: Removed previous test suite, in + favor of a newer one in the check subdirectory. + + * check/3to2.ok, check/3to2.tst, check/add.ok, check/add.tst, + check/allocai.ok, check/allocai.tst, check/bp.ok, check/bp.tst, + check/divi.ok, check/divi.tst, check/fib.ok, check/fib.tst: + New sample input for the new test program, loosely matching + several of the previous test cases. + + * check/Makefile.am: New test suite makefile. + + * check/check.sh, check/run-test: New wrapper files for the + new test suite. + + * check/lightning.c: New file. The main driver of the new test + suite, that compiles to a parser of a very simple assembly like + language, generates jit and executes it. + + * check/all.tst: New file. A generic debug and sample test file + with a directive to prevent it from being executed, and useful to + read disassembly of all possible instructions, using a fixed set + of registers. + + * include/Makefile.am, include/lightning.h, + include/lightning/Makefile.am, include/lightning/jit_arm.h, + include/lightning/jit_mips.h, include/lightning/jit_ppc.h, + include/lightning/jit_private.h, include/lightning/jit_x86.h, + lib/Makefile.am, lib/jit_disasm.c, lib/jit_print.c, + lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-x87.c, + lib/jit_x86.c, lib/lightning.c: New files. These files are + written from scratch, only by , and have now + copyright assignment to the FSF. This is the core of the new + lightning rework. Previously it was integrated in code with + a garbage collector and several custom types like vectors and + hash tables, so this first code merge with lightning converts + that code into a library extracting only the jit bits, and at + first only for x86_64 GNU/Linux. + + * lightning.h, m4/lightning.m4: Removed. These are no longer + required in the new lightning code. + + .gitignore, Makefile.am, configure.ac: Update for the new + lightning code. + +2012-12-02 Paulo Andrade + * .cvsignore: Removed for extra cleanup. + + * build-aux: Rename directory to m4. + + * m4: Renamed to "default" name and for consistency with merge + with code rework to be imported in lightning. + + * .gitignore, configure.ac, Makefile.am, doc/Makefile.am: + Update for build-aux to m4 rename. + +2012-12-01 Paulo Andrade + + * opcode/Makefile.am, opcode/Makefile.in, opcode/ansidecl.h, + opcode/bfd.h, opcode/dis-asm.h, opcode/dis-buf.c, opcode/disass.c, + opcode/i386-dis.c, opcode/i386.h, opcode/ppc-dis.c, opcode/ppc-opc.c, + opcode/ppc.h, opcode/sparc-dis.c, opcode/sparc-opc.c, opcode/sparc.h, + opcode/sysdep.h: Removed. Do not bundle GNU binutils files. + + * aclocal.m4, configure, Makefile.in, config.h.in, doc/Makefile.in, + lightning/Makefile.in, tests/Makefile.in: Removed. Do not maintain + autogenerated files that also generate too much diff noise when + regenerated in git. + + * build-aux/help2man, build-aux/texinfo.tex, build-aux/texi2dvi: + Removed. Buildenvironment must have an up to date version from + upstream installed. + + * build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, + build-aux/install-sh build-aux/mdate-sh build-aux/missing: Removed. + Do not maintain a copy of automake files in git. Release tarballs + must use an up to date version. + + * lightningize.in, doc/lightningize.1: Removed. Do not encourage + bundling lightning in other packages. It should use a system package + or a proper thirdy part subdirectory. + + * INSTALL: Removed. Autoreconf removes it and creates a symlink + when regenerating files, so, avoid conflicts in git and let + automake create the symlink. + + * .gitignore: Add INSTALL and autogenerated files. + + * configure.ac, Makefile.am: Update for removal of opcode subdir, + auto generated files and lightningize. + + * tests/Makefile.am, tests/3to2.c, tests/add.c, tests/bp.c, + tests/fib.c, tests/fibdelay.c, tests/fibit.c, tests/funcfp.c, + tests/incr.c, tests/printf.c, tests/rpn.c, tests/rpnfp.c, + tests/sete.c, tests/testfp.c: Update for removal of opcode subdir. + + * doc/Makefile.am: Update for removal of lightningize. + + * configure.ac, lightning/ppc/funcs.h, lightning/sparc/funcs.h, + lightning/i386/fp.h, lightning/i386/core.h, lightning/i386/asm.h, + tests/3to2.c, tests/add.c, tests/bp.c, tests/fib.c, tests/fibdelay.c, + tests/fibit.c, tests/funcfp.c, tests/incr.c, tests/printf.c, + tests/rpn.c, tests/rpnfp.c, tests/sete.c, tests/testfp.c: + Remove LIGHTNING_CROSS, it is half supported and incomplete. + + * tests/3to2.c, tests/funcfp.c, tests/rpnfp.c: Remove preprocessor + check on JIT_FPR. If no hardware registers are available, the backend + must provide an alternative for software float. + + * lightning/ppc/core.h, lightning/sparc/core.h, tests/Makefile.am: + Remove JIT_NEED_PUSH_POP. It is absolutely not trivial to implement + properly on some backends due to stack alignment constraints, and + whenever it is required, using jit_allocai and using a properly + aligned stack vector, or a heap buffer, is better. + + * tests/push-pop.c, tests/push-pop.ok: Removed due to + JIT_NEED_PUSH_POP no longer available. + +2011-02-28 Paolo Bonzini + + * lightning/i386/core-64.h: Add jit_add{c,x}{i,r}_l, jit_mulr_{l,ul}_, + fix jit_mul{i,r}_{l,ul}. + +2010-08-20 Paolo Bonzini + + * lightning/i386/fp-64.h: Return patch address from jit_bXYr_{f,d}. + Reported by Paulo César Pereira de Andrade. + * lightning/ppc/fp.h: Likewise. + * lightning/sparc/fp.h: Implement FP branches. + +2010-08-18 Paolo Bonzini + + * lightning/i386/fp-64.h: Fix jp in jit_bner_{f,d}. + +2010-08-18 Paolo Bonzini + + * lightning/i386/fp-32.h: Fix -D_ASM_SAFETY compilation. + Reported by Paulo César Pereira de Andrade. + +2010-08-15 Paolo Bonzini + + * tests/ldst.c: Update. + * tests/Makefile.am: Use -ffloat-store to compile it. + +2010-08-15 Paolo Bonzini + + * lightning/i386/core.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s, + jit_ldxr_s): Move... + * lightning/i386/core-32.h: ... here. + * lightning/i386/core-64.h (jit_ldr_c, jit_ldxr_c, jit_ldr_s, + Use movsbq and movswq. + +2010-08-10 Paulo César Pereira de Andrade + + * lightning/i386/core-32.h (jit_replace): Use MOVLrr, not MOVLir. + (jit_movbrm): Check index register as well. + * lightning/i386/fp-64.h: Add jit_extr_f_d and jit_extr_d_f. + * lightning/fp-common.h: Add jit_extr_f_d and jit_extr_d_f. + +2010-07-28 Paolo Bonzini + + * tests/Makefile.am: Add ldst test. + * tests/Makefile.in: Regenerate. + * tests/ldst.c: New. + * tests/ldst.ok: New. + +2010-07-28 Paolo Bonzini + + * THANKS: Add Paulo Cesar Pereira de Andrade. + * doc/porting.texi: Fix ordering of arguments in jit_stxi. + * lightning/i386/core-32.h (jit_replace): Remove cmp argument. + * lightning/i386/fp-64.h (jit_movi_f): Fix. + +2010-07-26 Paolo Bonzini + + * lightning/i386/core-32.h (jit_replace): Move here (removed + 2009-03-01). + +2010-07-19 Paolo Bonzini + + * build-aux/lightning.m4: Always set and replace lightning_frag. + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * config.h.in: Regenerate. + * configure: Regenerate. + * doc/Makefile.in: Regenerate. + * doc/lightningize.1: Regenerate. + * doc/version.texi: Regenerate. + * lightning/Makefile.in: Regenerate. + * opcode/Makefile.in: Regenerate. + * tests/Makefile.in: Regenerate. + +2009-03-01 Paolo Bonzini + + * lightning/i386/core-64.h: Use Mike's macros for x86-64 too. + * lightning/i386/core.h: Remove jit_replace. + + 2009-02-27 Mike Spivey + + * lightning/i386/core.h: Rewrite shift-handling macros. + * lightning/fp-common.h: Fix jit_extr_{f_d,d_f}. + +2009-02-17 Mike Spivey + + * lightning/i386/core.h: Fix blunder in operand order. + +2009-02-17 Paolo Bonzini + + * lightning/i386/fp-32.h: Another fix to jit_fp_btest. + +2009-02-17 Paolo Bonzini + + * lightning/fp-common.h: Define double branches if missing. + * lightning/i386/asm.h: Define JC and JNC mnemonics. + * lightning/i386/fp-32.h: Fix jit_fp_btest. All reported + by Mike Spivey. + +2008-10-09 Paolo Bonzini + + * lightning/ppc/funcs.h (jit_flush_code): Subtract 1 from end. + Reported by Eli Barzilay and Matthew Flatt. + +2008-08-23 Nix + + * lightning/i386/Makefile.frag: fp-32.h and fp-64.h are target files. + +2008-07-02 Laurent Michel + + * lightning/ppc/funcs.h (jit_flush_code): modified the computation + of start/end. The pointer arithmetic was done without casting. It + prevented compilation with recent gcc versions. + * lightning/ppc/core.h (jit_pushr_i): The offset for the store was + incorrect. Should have been 4 bytes below SP (not above). + * lightning/ppc/core.h (jit_popr_i): The offset for the load was + incorrect. Should have been 0 (not +8). + +2008-06-17 Paolo Bonzini + + * lightning/i386/asm-64.h: Forward IMULQir to IMULQirr, + fix REXQ order for IMULQirr. + +2008-06-17 Paolo Bonzini + + * lightning/i386/core.h: Fix _rN vs. _rR. + +2008-06-16 Paolo Bonzini + + * lightning/i386/core.h: Use jit_save in jit_replace. Move JIT_R + definition... + * lightning/i386/core-32.h: ... here; define jit_save so that + the core.h has no effect on the 32-bit backend. + * lightning/i386/core-64.h: Place JIT_R1/JIT_R2 in R10/R11, + place outgoing arguments in the right spot from the beginning, + define jit_save, fix jit_reg8/jit_reg16. + +2008-06-15 Paolo Bonzini + + * lightning/i386/core-64.h: Rewrite argument passing to + support up to 6 arguments and generate less code. + +2008-06-14 Laurent Michel + + * lightning/i386/core-64.h (jit_movi_l): When the operand is 0, + the XOR should be on a quadword. + * lightning/i386/core-64.h (jit_prolog): Keep 16-byte stack + alignment. + (jit_ret): Always use LEAVE. + +2008-06-13 Laurent Michel + + * lightning/i386/core-64.h: Add (void) casts for C++ compatibility. + * lightning/i386/asm.h: Likewise. + +2008-06-12 Paolo Bonzini + + * lightning/i386/core.h: Move JIT_V definition... + * lightning/i386/core-32.h: ... here. + * lightning/i386/core-64.h: ... and here. Avoid dancing between + RSI/RDI and R12/R13, and place JIT_V1/JIT_V2 in R12/R13. + +2008-06-11 Paolo Bonzini + + * build-aux/lightning.m4: Adjust LIGHTNING_BACKENDS, don't + use suffix support to distinguish i386/x86_64. + * lightning/i386/Makefile.frag: Use LIGHTNING_TARGET_FILES + to distribute *-32.h and *-64.h files now. + * lightning/i386/asm-i386: Moved to... + * lightning/i386/asm.h: Include the appropriate subtarget file. + * lightning/i386/core-i386: Moved to... + * lightning/i386/core.h: Include the appropriate subtarget file. + * lightning/i386/fp.h: New, include the appropriate subtarget file. + * lightning/i386/asm-32: Do not include asm-i386.h. + * lightning/i386/asm-64.h: Likewise. + * lightning/i386/core-32: Do not include core-i386.h. + * lightning/i386/core-64.h: Likewise. + * lightning/Makefile.am: Adjust for renamed files. + + * configure.ac: Define LIGHTNING_TARGET here. + * opcode/disass.c: Change list of valid LIGHTNING_TARGET values. + + * lightningize.in: Robustify against missing subtarget files. + +2008-06-11 Paolo Bonzini + + * lightning/i386/core-32.h: Use MOVLir instead of jit_movi_l + to implement jit_movi_p. + +2008-06-11 Paolo Bonzini + + * lightning/i386/core-32.h: Use separate __APPLE__ and SysV + prolog/ret macros. Subtract 12 bytes in __APPLE__ case to + keep stack aligned, and always use LEAVE in the epilog. + +2008-06-11 Paolo Bonzini + + * lightning/i386/core-i386.h: Fix C++ incompatibility. + +2008-06-10 Laurent Michel + + * lightning/i386/core-i386.h: Fix jit_replace8 for + case when one of the operands is _EAX. + +2008-05-19 Paolo Bonzini + + * tests/run-test: Avoid CRLF issues on mingw. + +2008-03-21 Paolo Bonzini + + * lightning/i386/core-64.h: Fix jit_{ld,st}{,x}i_{i,l}. + Remove jit_ld{,x}i_ul. + * lightning/core-common.h: Make jit_ld{,x}{i,r}_ul + always a synonym of the _l variant. + * doc/porting.texi: Document this. + +2008-03-19 Paolo Bonzini + + * lightning/i386/core-64.h: Fix uses of jit_qop_. + +2008-03-19 Paolo Bonzini + + * lightning/i386/core-64.h: Add boolean operations. + +2008-03-19 Paolo Bonzini + + * lightning/i386/asm-64.h: Add LEAQmr. + +2008-03-19 Paolo Bonzini + + * lightning/i386/core-64.h: Misc bugfixes. + +2008-03-19 Paolo Bonzini + + * lightning/i386/core-i386.c: Remove jit_ldr_i, jit_ldxr_i. + * lightning/i386/core-32.h: Add jit_ldr_i, jit_ldxr_i. + * lightning/i386/core-64.h: Add jit_ld{r,xr,i,xi}_{ui,l,ul}; + move jit_ldr_i, jit_ldxr_i, jit_str_l, jit_stxr_l with others. + +2008-03-19 Paolo Bonzini + + * lightning/asm-common.h: Add _s32P. + +2008-03-19 Paolo Bonzini + + * lightning/i386/core-64.h: Implement long mul/div/mod. + +2008-03-19 Paolo Bonzini + + * lightning/i386/asm-i386.h: Cast memory address to long for JCCim. + +2008-03-15 Paolo Bonzini + + * lightning/asm-common.h: Add underscores around __unused__ + attribute. + +2008-03-15 Paolo Bonzini + + * lightning/ppc/core.h: Avoid some "value computed is not used" + warnings. + * lightnings/tests/allocai.c: Silence other warnings. + +2008-03-14 Paolo Bonzini + + * lightningize.in: Fix some problems (not all). + +2008-03-14 Paolo Bonzini + + * lightning/i386/core-32.h: Avoid some "value computed is not used" + warnings; reported by Sam Steingold. + +2008-03-08 Paolo Bonzini + + * lightning/i386/core-32.h: Fix stxr_c(_EAX, _EBX, _ESI). + +2008-02-13 Paolo Bonzini + + * lightning/i386/asm-32.h: Avoid redefinition of _r1, reported by + Sam Steingold. + * lightning/i386/asm-64.h: Likewise. + +2008-02-08 Paolo Bonzini + + * lightning/i386/asm-i386.h: Don't define _VOID, reported + by Reini Urban. + +2008-02-03 Paolo Bonzini + + * build-aux/lightning.m4: Add --with-lightning-prefix option, suggested + by Sam Steingold. + +2008-01-14 Paolo Bonzini + + * lightning/i386/core-64.h: Use CALLsr, not CALLLsr. + +2008-01-13 Paolo Bonzini + + * lightning/i386/core-i386.h: Move jit_calli and jit_callr... + * lightning/i386/core-32.h: ... here. + * lightning/i386/core-64.h: Redefine them. + +2008-01-05 Paolo Bonzini + + * lightning/i386/fp-32.h: Fix sub(a,0,a). + * lightning/tests/3to2.c: Add new testcases. + * lightning/tests/3to2.ok: Add new testcases. + +2008-01-02 Paolo Bonzini + + * lightning/i386/fp-32.h: Fix sub(a,b,a) with a ~= JIT_FPR0. + * lightning/tests/3to2.c: New. + * lightning/tests/3to2.ok: New. + +2007-11-07 Paolo Bonzini + + * opcode/Makefile.am: Fix AM_CPPFLAGS. + +2007-08-12 Paolo Bonzini + + * lightning/i386/core-i386.h: Improve encoding of set* instructions. + * lightning/i386/core-64.h: Fix jit_bra_l. + * tests/sete.c: New. + * tests/sete.ok: New. + +2007-06-29 Paolo Bonzini + + * tests/bp.c: Upgrade to GPL/LGPLv3. + * lightning/i386/asm-32.h: Upgrade to GPL/LGPLv3. + * lightning/i386/asm-64.h: Upgrade to GPL/LGPLv3. + * lightning/i386/core-32.h: Upgrade to GPL/LGPLv3. + * lightning/i386/core-64.h: Upgrade to GPL/LGPLv3. + * lightning/i386/fp-64.h: Upgrade to GPL/LGPLv3. + * lightning/sparc/asm.h: Upgrade to GPL/LGPLv3. + * lightning/sparc/core.h: Upgrade to GPL/LGPLv3. + * lightning/sparc/fp.h: Upgrade to GPL/LGPLv3. + * lightning/sparc/funcs.h: Upgrade to GPL/LGPLv3. + * lightning/i386/asm-i386.h: Upgrade to GPL/LGPLv3. + * lightning/i386/core-i386.h: Upgrade to GPL/LGPLv3. + * lightning/i386/fp-32.h: Upgrade to GPL/LGPLv3. + * lightning/i386/funcs.h: Upgrade to GPL/LGPLv3. + * lightning/ppc/asm.h: Upgrade to GPL/LGPLv3. + * lightning/ppc/core.h: Upgrade to GPL/LGPLv3. + * lightning/ppc/fp.h: Upgrade to GPL/LGPLv3. + * lightning/ppc/funcs.h: Upgrade to GPL/LGPLv3. + * lightning.h: Upgrade to GPL/LGPLv3. + * tests/add.c: Upgrade to GPL/LGPLv3. + * tests/fib.c: Upgrade to GPL/LGPLv3. + * tests/testfp.c: Upgrade to GPL/LGPLv3. + * tests/fibdelay.c: Upgrade to GPL/LGPLv3. + * tests/fibit.c: Upgrade to GPL/LGPLv3. + * tests/funcfp.c: Upgrade to GPL/LGPLv3. + * tests/incr.c: Upgrade to GPL/LGPLv3. + * tests/printf.c: Upgrade to GPL/LGPLv3. + * tests/printf2.c: Upgrade to GPL/LGPLv3. + * tests/rpn.c: Upgrade to GPL/LGPLv3. + * tests/rpnfp.c: Upgrade to GPL/LGPLv3. + * lightning/asm-common.h: Upgrade to GPL/LGPLv3. + * lightning/core-common.h: Upgrade to GPL/LGPLv3. + * lightning/fp-common.h: Upgrade to GPL/LGPLv3. + * lightning/funcs-common.h: Upgrade to GPL/LGPLv3. + * opcode/dis-buf.c: Upgrade to GPL/LGPLv3. + * opcode/disass.c: Upgrade to GPL/LGPLv3. + * opcode/i386-dis.c: Upgrade to GPL/LGPLv3. + * opcode/sparc-dis.c: Upgrade to GPL/LGPLv3. + * opcode/sparc-opc.c: Upgrade to GPL/LGPLv3. + * lightningize.in: Upgrade to GPL/LGPLv3. + * opcode/bfd.h: Upgrade to GPL/LGPLv3. + * opcode/i386.h: Upgrade to GPL/LGPLv3. + * opcode/sparc.h: Upgrade to GPL/LGPLv3. + +2007-01-26 Thomas Girard + + * lightning/Makefile.am: Add clean-local target. + +2006-12-02 Paolo Bonzini + + * lightning/i386/asm-i386.h: Add CVTTS?2SIL. + * lightning/i386/asm-64.h: Add CVTTS?2SIQ. + * lightning/i386/fp-64.h: Use it. + + * lightning/Makefile.am: Place files in nodist_lightning_HEADERS. + +2006-11-23 Paolo Bonzini + + * lightning/core-common.h: Add casts in "*i_p" variants. + * lightning/i386/asm-32.h: Add _r1. + * lightning/i386/asm-64.h: Likewise, and add SSE instructions. + * lightning/i386/asm-i386.h: Merge SSE instructions from Gwenole. + Use short form for 16-bit AX instructions. Remove _r1 + * lightning/i386/core-64.h: Add FP ABI support in its infancy. + * lightning/i386/core-i386.h: Move jit_arg_f and jit_arg_d... + * lightning/i386/core-32.h: ... and jit_prepare_f and jit_prepare_d... + * lightning/i386/fp-32.h: ... here. + * lightning/i386/fp-64.h: Write the code. + * lightning/sparc/fp.h: Fix jit_extr_{f_d,d_f} register order. + +2006-11-22 Paolo Bonzini + + * lightning/i386/asm-i386.h: Move x86-64 instructions... + * lightning/i386/asm-64.h: ... here. + * lightning/i386/fp-32.h: Fix bugfixes worked around in froofyJIT. + Add JIT_FPRET. + * lightning/sparc/fp.h: Likewise. + * lightning/ppc/fp.h: Likewise. + * lightning/fp-common.h: Adjust for JIT_FPRET. + * tests/funcfp.c: Adjust for JIT_FPRET. + * tests/rpnfp.c: Adjust for JIT_FPRET. + +2006-11-20 Paolo Bonzini + + * lightning/i386/asm-i386.h: Add an underscore to macros without + a parameter. + +2006-11-20 Paolo Bonzini + + * lightning/i386/core-i386.h: Move jit_movip, jit_check8, jit_reg8, + jit_reg16, jit_movbrm... + * lightning/i386/core-32.h: ... here. + * lightning/i386/core-64.h: Redefine them. Fix other bugs. + + * tests/printf.c: Do not do a varargs call. + +2006-11-20 Paolo Bonzini + + * lightning/i386/asm-i386.h: Check in rewrite from Basilisk II. + * lightning/i386/asm-32.h: Adjust. + * lightning/i386/asm-64.h: Adjust. + * lightning/i386/fp-32.h: Adjust. + + * lightning/i386/core-32.h: Adjust. Add jit_{ld,ldx,st,stx}i*. + * lightning/i386/core-64.h: Adjust. Add jit_{ld,ldx,st,stx}i*. + * lightning/i386/core-i386.h: Adjust. Remove these patterns. + +2006-11-20 Paolo Bonzini + + * lightning/i386/asm-i386.h: Merge 64-bit cleanliness changes from + mzscheme. + Add SSE. + * lightning/i386/asm-64.h: Likewise. + +2006-11-20 Paolo Bonzini + Ludovic Courtes + + * lightning/i386/core-32.h: Disable jit_push and jit_pop if stack not + needed. + * lightning/i386/core-64.h: Disable jit_push and jit_pop if stack not + needed. + * lightning/sparc/core.h: Merge final implementation of jit_pushr and + jit_popr. + * lightning/ppc/core.h: Fix implementation of jit_pushr and jit_popr to + work (more or less) across function calls. + + * tests/push-pop.c, tests/push-pop.ok: New test. + * tests/Makefile.am: Run it. + +2006-11-20 Paolo Bonzini + + * lightning/asm-common.h: Make 64-bit safe. + * lightning/i386/funcs.h: Make 64-bit safe. + + * lightning/i386/asm-64.h: More merge from mzscheme. + * lightning/i386/asm-i386.h: More merge from mzscheme. + * lightning/i386/core-32.h: More merge from mzscheme. + * lightning/i386/core-64.h: More merge from mzscheme. + * lightning/i386/core-i386.h: More merge from mzscheme. + + * tests/rpnfp.c, tests/testfp.c, tests/funcfp.c: Skip if no + floating-point support. + +2006-11-04 Paolo Bonzini + + * tests/rpn.c: Remove pushr/popr. + +2006-11-04 Paolo Bonzini + + * lightning/ppc/core.h: Implement jit_allocai, define JIT_FP to be R1. + * lightning/ppc/funcs.h: Store frame size into _jitl. Store R1 before + the STMW, so that the offset is unchanged when we patch the STMW. + * lightning/i386/core.h: Define JIT_FP to be EBP. + * lightning/i386/core-32.h: Implement jit_allocai, put LEAVE in the + epilog if jit_allocai was used. + * lightning/i386/core-64.h: Implement jit_allocai, put LEAVE in the + epilog if jit_allocai was used. + +2006-11-04 Ludovic Courtes + + * lightning/sparc/core.h: Implement jit_allocai. + * tests/allocai.c: New. + * tests/Makefile.am: Point to new tests. + +2006-11-03 Paolo Bonzini + + * lightning/ppc/core.h: Fix jit_bms using BNE rather than BGT. + "AND." does signed comparisons. + +2006-10-31 Paolo Bonzini + + * doc/porting.texi: Rename JIT_FP to JIT_AP. + * lightning/core-common.h: Likewise. + * lightning/i386/core-i386.h: Likewise. + * lightning/fp-common.h: Provide default versions of jit_getarg_[fd]. + * lightning/i386/fp-32.h: Don't provide jit_getarg_[fd]. + * lightning/ppc/fp.h: Likewise. + +2006-10-31 Ludovic Courtes + + * doc/using.texi (The instruction set): Clarified the use of `JIT_RET' and + documented `jit_retval'. + * tests/ret.c (generate_function_proxy): After `jit_finish', use + `jit_retval_i' to move FUNC's return value into the correct register. + +2006-10-31 Paolo Bonzini + Ludovic Courtes + + * tests/divi.c, tests/divi.ok, tests/movi.c, tests/movi.ok: New. + * tests/ldxi.c: Ensure large pointer is generated. + * tests/Makefile.am: Point to new tests. + * lightning.h: Include funcs-common.h before funcs.h. + * lightning/sparc/core.h: Fix bugs in modi/divi. + +2006-10-30 Paolo Bonzini + + * lightning/Makefile.am: Use "ln -sf". + * lightning/core-common.h: Define jit_negr_l if necessary. + +2006-10-30 Paolo Bonzini + + * lightning/i386/asm.h (MOVS*, MOVZ*): Use correct _r[124] macros. + +2006-10-29 Paolo Bonzini + + * configure.ac: Use lightning.m4 macros. + * lightning.m4: Refactor to use common code in configure.ac. Move... + * build-aux/lightning.m4: ... here. + * lightningize.in: Support suffixes. + * opcode/disass.in: Adapt to changes in configure.ac. + + * lightning/ppc/funcs.h: Use __APPLE__ instead of _CALL_DARWIN. + * lightning/i386/core-32.h: Likewise. + +2006-10-26 Paolo Bonzini + + * configure.ac: Fix compilation test. + * lightning/Makefile.am: Symlink LIGHTNING_TARGET_FILES in + non-distribution mode. + * lightning/i386/Makefile.frag: Use LIGHTNING_TARGET_FILES. + +2006-10-26 Paolo Bonzini + + * configure.ac: Subst cpu. + * lightning/core-common.h: Make tests pass on i386. + * lightning/i386/asm-32.h: Make tests pass on i386. + * lightning/i386/asm-64.h: Make tests pass on i386. + * lightning/i386/asm-i386.h: Make tests pass on i386. + * lightning/i386/core-32.h: Make tests pass on i386. + * lightning/i386/core-64.h: Make tests pass on i386. + * lightning/i386/core-i386.h: Make tests pass on i386. + * tests/Makefile.am: Include files from cpu directory. + +2006-10-26 Paolo Bonzini + + * lightning/i386/asm.h: Move to asm-i386.h + * lightning/i386/asm-32.h: New, from Matthew Flatt. + * lightning/i386/asm-64.h: New, from Matthew Flatt. + * lightning/i386/core.h: Move to core-i386.h + * lightning/i386/core-32.h: New, from Matthew Flatt. + * lightning/i386/core-64.h: New, from Matthew Flatt. + * lightning/i386/fp.h: Move to fp-32.h + * lightning/i386/fp-64.h: New, dummy. + * lightning/i386/Makefile.frag: New. + * lightning/Makefile.am: Support per-target Makefile fragments. + * configure.ac: Support per-target Makefile fragments and CPU suffixes. + +2006-10-16 Paolo Bonzini + + * lightning/i386/i386.h (jit_flush_code): Fix syntax error. :-( + +2006-07-06 Paolo Bonzini + Ludovic Courtes + + * doc/using.texi: Clarify "Using autoconf" section + and rename it to "Bundling lightning" + * lightning.m4: Work also if lightning is not bundled. + +2006-07-06 Paolo Bonzini + Ludovic Courtes + + * lightning/ppc/core.h (_jit_mod): Replace with... + (_jit_mod_big, _jit_mod_small): ... these. + (jit_modi_i, jit_modi_ui): Rewrite. + * tests/modi.c, tests/modi.ok: New tests. + +2006-05-18 Matthew Flatt + + * lightning/i386/asm.h: Fix test for extending the mprotect area + towards lower addresses. + +2006-05-16 Bruno Haible + + * lightning/asm-common.h: Don't use __func__ nor __FUNCTION__ if + not compiling with GNU C. + +2006-02-16 Paolo Bonzini + + * lightning/ppc/core.h: Fix jit_ldxi_* with big displacement. + +2006-01-23 Paolo Bonzini + + * configure.ac: Fix comments in config.h.in. + +2005-11-25 Paolo Bonzini + + * lightning/sparc/fp.h: Fix header comment. + * lightning/ppc/fp.h: Fix header comment. + +2005-04-27 Paolo Bonzini + + * lightning/i386/asm.h (JCm, JCSm, JNCm, JNCSm): New. + +2004-11-26 Paolo Bonzini + + * lightning/ppc/funcs.h (_jit_epilog): Remove unused variable. + +2004-11-13 Paolo Bonzini + + * lightning/i386/funcs.h [__linux__]: Include sys/mman.h. + +2004-11-09 Paolo Bonzini + + * lightning/sparc/fp.h: Fix fp-to-integer conversions. + * lightning/ppc/testfp.c: Test fp-to-integer conversions + of integer numbers. + * lightning/ppc/testfp.ok: Adjust for the above. + +2004-11-08 Paolo Bonzini + + * lightning/ppc/testfp.c: Always flush code before + testing it. + +2004-11-08 Paolo Bonzini + + * lightning/ppc/fp.h: Do not clobber f31. + +2004-11-08 Paolo Bonzini + + * lightning.h: New name of... + * lightning-inst.h: ... this file. + * lightning.h.in: Removed. + + * opcodes/disass.c: Include config.h. + * tests/add.c: Include config.h. + * tests/bp.c: Include config.h. + * tests/fib.c: Include config.h. + * tests/fibdelay.c: Include config.h. + * tests/fibit.c: Include config.h. + * tests/funcfp.c: Include config.h. + * tests/incr.c: Include config.h. + * tests/printf.c: Include config.h. + * tests/printf2.c: Include config.h. + * tests/rpn.c: Include config.h. + * tests/rpnfp.c: Include config.h. + * tests/testfp.c: Include config.h. + +2004-10-12 Paolo Bonzini + + * lightning/i386/fp.h: Fix bugs in conditional branches. + +2004-10-10 Paolo Bonzini + + * lightning/i386/funcs.h: Fix pasto in jit_flush_code. + +2004-10-08 Paolo Bonzini + + * lightning/ppc/fp.h: Optimized conditional branches. + +2004-09-20 Paolo Bonzini + + * lightning/ppc/asm.h: Fix more typos. + +2004-09-20 Paolo Bonzini + + * lightning/ppc/asm.h: Fix typos, replace `26' with JIT_AUX. + +2004-09-20 Paolo Bonzini + + * lightning/ppc/fp.h: Added conditional branches. + +2004-09-18 Laurent Michel + + * lightning/ppc/fp.h (jit_unler_d, jit_unltr_d, jit_unger_d, + jit_ungtr_d, jit_ltgt_d, jit_uneq_d): Implemented missing tests + to fully support testfp. + (jit_floorr_d_i, jit_ceilr_d_i, jit_roundr_d_i, jit_truncr_d_i): + New macros. + * lightning/ppc/asm.h: Added missing opcodes FCTIWZ and MTFSFI. + * lightning/ppc/funcs.h (_jit_prolog): Fixed minor mistake in + the initialization of _jitl.nextarg_geti, relying on the + JIT_AUX macro as well to get the register offset. + +2004-09-07 Paolo Bonzini + + * lightning/ppc/funcs.h: Fix typo. + +2004-09-06 Paolo Bonzini + + * tests/funcfp.c: Use %g. Remove C99 variable declarations. + * tests/testfp.c: Don't use __builtin_nan. + + * lightning/ppc/core.h: Add three V registers. + * lightning/ppc/funcs.h: Adjust. + + * lightning/sparc/core.h: Some fixes related to FP argument passing. + Move R0 to %g2, use %o7 for JIT_BIG2. + * lightning/sparc/fp.h: Some fixes related to FP argument passing. + +2004-09-02 Paolo Bonzini + + * lightning/sparc/core.h: Add another V register, + move R0 to %o7. + +2004-07-15 Paolo Bonzini + + * lightning/i386/funcs.h: Implement jit_flush_code, + in order to support Fedora's exec-shield. + +2004-07-14 Paolo Bonzini + + * lightning/core-common.h: Add more jit_extr_*_* macros. + * lightning/doc/using.texi: Be clearer about the order + of arguments in jit_extr_*_*. + * lightning/doc/porting.texi: Add more jit_extr_*_* macros. + * lightning/i386/fp.h: Fix typo in jit_extr_i_d. + +2004-07-14 Paolo Bonzini + + * lightning/ppc/funcs.h: Adjust offset of LR into + stack frame if running under the Darwin ABI. + +2004-07-13 Paolo Bonzini + + * lightning/i386/fp.h: Rename jit_exti_d to jit_extr_i_d. + +2004-07-13 Paolo Bonzini + + * lightning/ppc/core.h: Fix thinko. + + * lightning/i386/core.h: Fix jit_lti_ui. + * lightning/core-common.h: Add missing macros. + + * lightning/ppc/fp.h: Rename jit_neg_* to jit_negr_*. + * lightning/i386/fp.h: Rename jit_neg_* to jit_negr_*. + * lightning/sparc/fp.h: Rename jit_neg_* to jit_negr_*. + * lightning/fp-common.h: Rename jit_neg_* to jit_negr_*. + * doc/porting.texi: Add undocumented macros. + +2004-07-12 Paolo Bonzini + + * doc/porting.texi: Add missing macros. + +2004-07-12 Paolo Bonzini + + * lightning/ppc/funcs.h: Don't generate trampolines. + Separate prolog and epilog generation. + * lightning/ppc/core.h: Generate epilog explicitly. + Don't reserve r31 anymore. + * lightning/core-common.h: Remove call to jit_setup_code. + +2004-07-09 Paolo Bonzini + + * lightning/lightning.h.in: Avoid preprocessor warnings. + * lightning/lightning-inst.h: Likewise. + + * lightning/i386/core.h: Define JIT_R, JIT_R_NUM, JIT_V, + JIT_V_NUM. + * lightning/ppc/core.h: Likewise. + * lightning/sparc/core.h: Likewise. + * lightning/i386/fp.h: Define JIT_FPR, JIT_FPR_NUM. + * lightning/ppc/fp.h: Likewise. + * lightning/sparc/fp.h: Likewise. + * lightning/core-common.h: Define fixed register names. + * lightning/fp-common.h: Likewise for FP regs. + +2004-07-09 Paolo Bonzini + + * lightning/ppc/funcs.h: Fix location where return address + is stored. + * lightning/i386/asm.h: Add a trailing _ to opcodes without + any parameter. + * lightning/i386/core.h: Adjust for the above. + +2004-04-15 Paolo Bonzini + + * lightning/i386/fp.h: Change "and" to "_and" + to satisfy C++ compilers. + +2004-04-14 Paolo Bonzini + + * lightning/sparc/fp.h: Use memcpy to implement jit_movi. + * lightning/ppc/fp.h: Use memcpy to implement jit_movi. + Move floating-point opcodes... + * lightning/ppc/asm.h: ... here. + +2004-04-14 Paolo Bonzini + + * lightning/core-common.h: Add jit_finishr. + * lightning/ppc/core.h: Add jit_callr and jit_finishr. + * lightning/i386/core.h: Add jit_callr. + * lightning/sparc/core.h: Add jit_callr. Fix typo. + +2004-04-14 Paolo Bonzini + + * lightning/i386/core.h: Fix pasto in jit_b*_ui. + +2004-03-30 Laurent Michel + + * lightning/ppc: Implement PowerPC floating point + (ChangeLog entry missing). + +2004-03-12 Paolo Bonzini + + * lightning/fp-common.h: Load/store macros are not the + same for floats and doubles anywhere, but jit_retval may be. + * lightning/i386/asm.h: Fix = mistaken for == in ESCrri. + * lightning/i386/core.h: Fix typo in jit_prepare_[fd]. + * lightning/i386/fp.h: Rewritten. + * tests/testfp.c: Add tests for unordered comparisons. + * tests/testfp.ok: Add results. + +2004-03-15 Paolo Bonzini + + Merge changes from Laurent Michel. + + * lightning/asm-common.h: Add _jit_I_noinc. + * lightning/core-common.h: Support jit_init, + jit_setup_code, jit_patch_at. Return patchable IP from + jit_movi_p. + * lightning/funcs-common.h: Provide defaults + for jit_setup_code, jit_start_pfx, jit_end_pfx + * lightning/i386/core.h: Add jit_patch_at, jit_patch_movi. + * lightning/ppc/core.h: Likewise. + * lightning/sparc/core.h: Likewise. + * lightning/ppc/asm.h: Fix generation of branch destination + displacements in _FB and _BB + * lightning/ppc/core.h: Generate trampolines in the user + area. + * lightning/ppc/funcs.h: Add a few casts. + * tests/bc.c: New testcase. + + * lightning/i386/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. + * lightning/ppc/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. + * lightning/sparc/asm.h: Wrap into #ifndef LIGHTNING_DEBUG. + + +2004-03-09 Paolo Bonzini + + * lightning/sparc/fp.h: Rewrite. Move macros for + FP code generation... + * lightning/sparc/asm.h: ... here. + * lightning/sparc/core.h: Rename jit_prepare to + jit_prepare_i, jit_retval to jit_retval_i. + * lightning/ppc/core.h: Rename jit_prepare to + jit_prepare_i, jit_retval to jit_retval_i. + * lightning/i386/core.h: Rename jit_prepare to + jit_prepare_i, jit_retval to jit_retval_i. + * lightning/core-common.h: Provide backwards + compatible synonyms for the above. + * lightning/fp-common.h: Rewrite. + * lightning-inst.h: Include fp unconditionally. + * lightning.h.in: Include fp unconditionally. + * tests/Makefile.am: Enable fp tests. + * tests/fib.c: Use jit_retval_i. + * tests/fibit.c: Cast codeBuffer to char *. + * tests/funcfp.c: Use new fp macros. + * tests/printf.c: Use jit_retval_i. + * tests/rpnfp.c: Use new fp macros. + * tests/testfp.c: Use new fp macros. + +2004-03-02 Paolo Bonzini + + * lightning/i386/core.h: generate correct code when + doing lt/le/ge/etc. on ESI and EDI. Use MOVZX/MOVSX + where possible. + * lightning/i386/asm.h: Add macros for MOVZX/MOVSX. + Move macros for x87 here, and add many of them. + * lightning/i386/fp.h: Use new macros for x87. + +2004-02-06 Paolo Bonzini + + * lightning/i386/core.h: avoid generating MOV reg, reg. + * lightning/sparc/core.h: fix several bugs. + * lightning/ppc/core.h: fix several bugs. + * tests/rpn.c: rewritten. + +2004-01-08 Paolo Bonzini + + * tests/rpnfp.c: new example, suggested by Basile + Starynkevitch. + * tests/rpnfp.ok: new example. + +2003-12-12 Paolo Bonzini + + * tests/add.c: new test, suggested by Steve Dekorte. + * tests/add.c: new test. + +2003-11-14 Paolo Bonzini + John Redford + + * lightning/asm-common.h: change the 'pc' field of _jit to + be a union of various data types, because ISO C99 doesn't + permit using ++ on a = cast. Change the incremented casts of + _jit.pc to be _jit.x.uc_pc, _jit.x.us_pc, etc. + * all files: change all non-cast instances of _jit.pc to be + _jit.x.pc. + * lightning/i386/core.h: remove casts from jit_might. + +2003-05-25 Paolo Bonzini + + * lightning/i386/core.h: use JITSORRY in jit_replace + * lightning/asm-common.h: define JITSORRY + +2003-05-14 Paolo Bonzini + + * lightning/i386/core.h: fix missing comma in several + load/store macros. + * lightning/core-common.h: fix long/unsigned long/pointer + jit_pushr/jit_popr. + * lightning/ppc/funcs.h: correctly align stack pointer + +No changelogs for the assemblers (lightning directory) until 1.0 + +2003-03-27 Paolo Bonzini + + * tests/printf2.c: new test + +2001-05-03 Paolo Bonzini + + * tests/printf.c: made the message platform independent + +2001-01-19 Paolo Bonzini + + * configure.in: support cross-assembling + + * disass/bfd.h, disass/dis-asm.h, disass/dis-buf.c, + disass/i386-dis.c, disass/i386.h, disass/ppc-dis.c, + disass/ppc.h, disass/ppc-opc.c, disass/sparc-dis.c, + disass/sparc.h, disass/sparc-opc.c: new files, from GDB + + * disass/disass.c, disass/Makefile.am: new files + + * tests/fib.c, tests/fibit.c, tests/incr.c, tests/printf.c, + tests/rpn.c, tests/testfp.c, tests/Makefile.am: support + disassembling From beac56d7ecbcb4d1dad7f83e8c1fee86ff34a670 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:47:28 +0100 Subject: [PATCH 08/78] Remove TODO --- TODO | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 TODO diff --git a/TODO b/TODO deleted file mode 100644 index 676af0293..000000000 --- a/TODO +++ /dev/null @@ -1,28 +0,0 @@ - * Validate that divrem in jit_x86-cpu.c is not modifying - the non result arguments. This is not verified by clobber.tst, - as it only checks registers not involved in the operation - (because it does not know about values being set as input - for the the operation). - - * Write a simple higher level language implementation generating - jit with lightning, that could be some lisp or C like language. - - * rerun ./configure --enable-devel-get-jit-size and regenerate - the related jit_$arch-sz.c for the ports where nodata is - meaningful: - hppa (done) - i586 (done) - ia64 - mips o32 (done) - mips n32 - mips n64 - powerpc 32 (done) - powerpc 64 (done) - ppc - s390x (done) - sparc (done) - x86_64 (done) - Missing ones are due to no longer (remote) access to such hosts - and may be broken with jit_set_data(..., JIT_DISABLE_DATA). - (ia64 hp-ux or linx), (irix mips for 32 or 64 abi), and - (darwin ppc). From 8215433144f88d2ae238c765130d322c90f89f06 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:47:57 +0100 Subject: [PATCH 09/78] Remove bits of .gitignore no longer needed --- .gitignore | 104 ----------------------------------------------------- 1 file changed, 104 deletions(-) diff --git a/.gitignore b/.gitignore index f75e84714..cb463565a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,106 +1,2 @@ -.deps -.libs *.o -*.lo -*.la +* -autom4te.cache -aclocal.m4 -compile -depcomp -INSTALL -Makefile -Makefile.in -config.guess -config.h -config.h.in -config.log -config.status -config.sub -configure -install-sh -libtool -lightning-*.tar.* -ltmain.sh -missing -size -stamp-h1 -test-driver -m4/libtool.m4 -m4/lt~obsolete.m4 -m4/ltoptions.m4 -m4/ltsugar.m4 -m4/ltversion.m4 -doc/mdate-sh -doc/texinfo.tex -lightning.pc -doc/fact -doc/ifib -doc/incr -doc/printf -doc/rfib -doc/rpn -check/*.log -check/*.trs -check/*.nodata -check/3to2 -check/add -check/align -check/allocai -check/allocar -check/all.tst -check/alu_add -check/alu_and -check/alu_com -check/alu_div -check/alu_lsh -check/alu_mul -check/alu_neg -check/alu_or -check/alu_rem -check/alu_rsb -check/alu_rsh -check/alu_sub -check/alux_add -check/alu_xor -check/alux_sub -check/bp -check/branch -check/call -check/carg -check/carry -check/ccall -check/clobber -check/ctramp -check/cva_list -check/cvt -check/divi -check/fib -check/float -check/fop_abs -check/fop_sqrt -check/hton -check/hton.ok -check/jmpr -check/ldsti -check/ldstr -check/ldstr-c -check/ldstxi -check/ldstxi-c -check/ldstxr -check/ldstxr-c -check/lightning -check/nodata -check/put -check/qalu_div -check/qalu_mul -check/range -check/ranger -check/ret -check/rpn -check/self -check/setcode -check/stack -check/tramp -check/va_list -check/varargs From a5263b6618021415c2c69cb1a7b0e26dd8df7fe2 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 11:48:23 +0100 Subject: [PATCH 10/78] Remove autotools --- .gitattributes | 1 - Makefile.am | 26 ----- configure.ac | 285 ------------------------------------------------ lightning.pc.in | 12 -- m4/.gitkeep | 0 5 files changed, 324 deletions(-) delete mode 100644 .gitattributes delete mode 100644 Makefile.am delete mode 100644 configure.ac delete mode 100644 lightning.pc.in delete mode 100644 m4/.gitkeep diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index e8495d51e..000000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -ChangeLog merge=merge-changelog diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 7903efd61..000000000 --- a/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright 2000, 2001, 2002, 2012-2018 Free Software Foundation, Inc. -# -# This file is part of GNU lightning. -# -# GNU lightning is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU lightning is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# - -ACLOCAL_AMFLAGS = -I m4 - -SUBDIRS = \ - check \ - doc \ - include \ - lib - -pkgconfiglibdir = $(libdir)/pkgconfig -pkgconfiglib_DATA = lightning.pc diff --git a/configure.ac b/configure.ac deleted file mode 100644 index cb6b8d535..000000000 --- a/configure.ac +++ /dev/null @@ -1,285 +0,0 @@ -dnl -dnl Copyright 2000, 2001, 2002, 2012-2018 Free Software Foundation, Inc. -dnl -dnl This file is part of GNU lightning. -dnl -dnl GNU lightning is free software; you can redistribute it and/or modify it -dnl under the terms of the GNU Lesser General Public License as published -dnl by the Free Software Foundation; either version 3, or (at your option) -dnl any later version. -dnl -dnl GNU lightning is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -dnl License for more details. -dnl - -AC_PREREQ(2.57) -AC_INIT([GNU lightning], 2.1.2, pcpa@gnu.org, lightning) -AC_CANONICAL_TARGET -AC_CONFIG_SRCDIR([Makefile.am]) -AM_INIT_AUTOMAKE([dist-bzip2]) -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -AC_CONFIG_MACRO_DIR(m4) - -AC_CONFIG_HEADERS(config.h) - -AC_PROG_CC -AC_PROG_INSTALL -AC_PROG_LIBTOOL - -case "$target_cpu" in - ia64) - case "$host_os" in - # Only supported mode - *hpux*) - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -mlp64" ;; - *) ;; - esac ;; - *mips*) - case "$host_os" in - # (Hack) Flags to pass configure with gcc 3.x - # Should not set LIGHTNINT_CFLAGS - *irix*) - CFLAGS="$CFLAGS -D__c99 -Drestrict=";; - *) ;; - esac ;; - alpha*) - case "$host_os" in - osf*) - # Get proper varargs and mmap prototypes and definitions - CFLAGS="$CFLAGS -D_ANSI_C_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE -D_POSIX_C_SOURCE=199309L" - # Want to generate NaN with 0.0/0.0 and Inf with 1.0/0.0 - if test x$GCC = "xyes"; then - CFLAGS="$CFLAGS -mieee" - else - CFLAGS="$CFLAGS -ieee_with_no_inexact" - fi ;; - *) ;; - esac ;; - *) ;; -esac - -AC_CHECK_FUNCS(mremap ffsl getopt_long_only isnan isinf,,) - -AC_CHECK_HEADERS([getopt.h stdint.h],,,) - -AC_ARG_ENABLE(disassembler, - AS_HELP_STRING([--enable-disassembler], - [Enable jit disassembler using binutils]), - [DISASSEMBLER=$enableval], [DISASSEMBLER=auto]) -if test "x$DISASSEMBLER" != "xno"; then - # FIXME need to check for libiberty first or will fail to link - AC_CHECK_LIB(iberty, htab_try_create, , - [HAVE_IBERTY="no"]) - AC_CHECK_LIB(bfd, bfd_init, , - [HAVE_BFD="no"]) - AC_CHECK_LIB(z, compressBound, , - [HAVE_Z="no"]) - AC_CHECK_LIB(opcodes, init_disassemble_info, , - [HAVE_OPCODES="no"]) - if test "x$HAVE_IBERTY" = "xno" -o \ - "x$HAVE_BFD" = "xno" -o \ - "x$HAVE_Z" = "xno" -o \ - "x$HAVE_OPCODES" = "xno"; then - if test "x$DISASSEMBLER" != "xauto"; then - AC_MSG_ERROR([binutils not found, see http://www.gnu.org/software/binutils/]) - else - AC_MSG_WARN([binutils not found, see http://www.gnu.org/software/binutils/]) - DISASSEMBLER="no" - fi - fi -fi -AM_CONDITIONAL(with_disassembler, [test "x$DISASSEMBLER" != "xno"]) -if test "x$DISASSEMBLER" != "xno"; then - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDISASSEMBLER=1" - save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -I$PWD/include -D_GNU_SOURCE" - AC_COMPILE_IFELSE([AC_LANG_SOURCE( - #include - #include - #include - int main(int argc, char *argv[]) - { - disassembler_ftype print; - bfd *abfd; - print = disassembler(abfd); - return 0; - } - )], [ac_cv_test_new_disassembler=no],,) - CFLAGS="$save_CFLAGS" - if test "x$ac_cv_test_new_disassembler" != "xno"; then - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DBINUTILS_2_29=1" - fi -fi - -AC_ARG_ENABLE(devel-disassembler, - AS_HELP_STRING([--enable-devel-disassembler], - [Enable extra disassembly options]), - [DEVEL_DISASSEMBLER=$enableval], [DEVEL_DISASSEMBLER=no]) -if test "x$DEVEL_DISASSEMBLER" != "xno"; then - if test "x$DISASSEMBLER" = "xno"; then - AC_MSG_ERROR(devel-disassembler needs disassembler enabled) - fi - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDEVEL_DISASSEMBLER=1" -fi - -AC_ARG_ENABLE(assertions, - AS_HELP_STRING([--enable-assertions], - [Enable runtime code generation assertions]), - [DEBUG=$enableval], [DEBUG=auto]) -if test "x$DEBUG" = xyes; then - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDEBUG=1" -else - LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DNDEBUG" - DEBUG=no -fi - -case "$host_os" in - *bsd*|osf*) SHLIB="" ;; - *hpux*) SHLIB="-ldld" ;; - *) SHLIB="-ldl" ;; -esac -AC_SUBST(SHLIB) - -cpu= -case "$target_cpu" in - i?86|x86_64|amd64) cpu=x86 ;; - *arm*) cpu=arm ;; - *mips*) cpu=mips ;; - *powerpc*) cpu=ppc ;; - *sparc*) cpu=sparc ;; - ia64) cpu=ia64 ;; - hppa*) cpu=hppa ;; - aarch64) cpu=aarch64 ;; - s390*) cpu=s390 ;; - alpha*) cpu=alpha ;; - *) ;; -esac -AM_CONDITIONAL(cpu_arm, [test cpu-$cpu = cpu-arm]) -AM_CONDITIONAL(cpu_mips, [test cpu-$cpu = cpu-mips]) -AM_CONDITIONAL(cpu_ppc, [test cpu-$cpu = cpu-ppc]) -AM_CONDITIONAL(cpu_sparc, [test cpu-$cpu = cpu-sparc]) -AM_CONDITIONAL(cpu_x86, [test cpu-$cpu = cpu-x86]) -AM_CONDITIONAL(cpu_ia64, [test cpu-$cpu = cpu-ia64]) -AM_CONDITIONAL(cpu_hppa, [test cpu-$cpu = cpu-hppa]) -AM_CONDITIONAL(cpu_aarch64, [test cpu-$cpu = cpu-aarch64]) -AM_CONDITIONAL(cpu_s390, [test cpu-$cpu = cpu-s390]) -AM_CONDITIONAL(cpu_alpha, [test cpu-$cpu = cpu-alpha]) - -# Test x87 if both, x87 and sse2 available -ac_cv_test_x86_x87= -# Test arm instruction set if thumb instruction set available -ac_cv_test_arm_arm= -# Test sofware float if vfp available and not using hard float abi -ac_cv_test_arm_swf= - -save_CFLAGS=$CFLAGS -CFLAGS="$CFLAGS -I$PWD/include -D_GNU_SOURCE" -if test x$cpu = x; then - AC_MSG_ERROR([cpu $target_cpu not supported]) -elif test $cpu = x86; then - AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include - int main(void) { - int ac, flags; - unsigned int eax, ebx, ecx, edx; - if (__WORDSIZE == 64) - return 1; - __asm__ volatile ("pushfl;\n\t" - "popl %0;\n\t" - "movl \$0x240000, %1;\n\t" - "xorl %0, %1;\n\t" - "pushl %1;\n\t" - "popfl;\n\t" - "pushfl;\n\t" - "popl %1;\n\t" - "xorl %0, %1;\n\t" - "pushl %0;\n\t" - "popfl" - : "=r" (flags), "=r" (ac)); - if ((ac & (1 << 21)) == 0) - return 1; - __asm__ volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" - : "=a" (eax), "=r" (ebx), - "=c" (ecx), "=d" (edx) - : "0" (1)); - return (edx & 1 << 26) ? 0 : 1; - } - ]])],[ac_cv_test_x86_x87=yes],[],[ac_cv_test_x86_x87=no]) -elif test $cpu = arm; then - AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include - int main(void) { - #if defined(__linux__) - FILE *fp; - char buf[128]; - if ((fp = fopen("/proc/cpuinfo", "r")) == NULL) - return 1; - while (fgets(buf, sizeof(buf), fp)) { - if (strncmp(buf, "Features\t:", 10) == 0 && - strstr(buf + 10, "thumb")) { - fclose(fp); - return 0; - } - } - fclose(fp); - #elif defined(__thumb2__) - return 0; - #endif - return 1; - } - ]])],[ac_cv_test_arm_arm=yes],[],[ac_cv_test_arm_arm=no]) - AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include - int main(void) { - #if defined(__linux__) - FILE *fp; - char buf[128]; - # if !defined(__ARM_PCS_VFP) - if ((fp = fopen("/proc/cpuinfo", "r")) == NULL) - return 1; - while (fgets(buf, sizeof(buf), fp)) { - if (strncmp(buf, "Features\t:", 10) == 0 && - strstr(buf + 10, "vfp")) { - fclose(fp); - return 0; - } - } - fclose(fp); - # endif - #endif - return 1; - } - ]])],[ac_cv_test_arm_swf=yes],[],[ac_cv_test_arm_swf=no]) -elif test $cpu = ppc; then - if test "x$DISASSEMBLER" != "xno"; then - save_LIBS="$LIBS" - LIBS="$LIBS $SHLIB" - AC_CHECK_FUNCS(disassemble_init_for_target disassemble_init_powerpc) - LIBS="$save_LIBS" - fi -fi -CFLAGS=$save_CFLAGS - -AM_CONDITIONAL(test_x86_x87, [test x$ac_cv_test_x86_x87 = xyes]) -AM_CONDITIONAL(test_arm_arm, [test x$ac_cv_test_arm_arm = xyes]) -AM_CONDITIONAL(test_arm_swf, [test x$ac_cv_test_arm_swf = xyes]) - -AM_CONDITIONAL(test_nodata, [test cpu-$cpu = cpu-mips -o cpu-$cpu = cpu-ppc -o cpu-$cpu = cpu-sparc -o cpu-$cpu = cpu-x86 -o cpu-$cpu = cpu-ia64 -o cpu-$cpu = cpu-hppa -o cpu-$cpu = cpu-s390 -o cpu-$cpu = cpu-alpha]) - -if test $cpu = arm; then - AC_CHECK_LIB(m, sqrtf, , - [AC_MSG_ERROR([sqrtf required but not available])]) -fi -AC_SUBST(cpu) - -AC_SUBST([LIGHTNING_CFLAGS]) - -AC_OUTPUT([Makefile - lightning.pc - doc/Makefile - include/Makefile - include/lightning/Makefile - lib/Makefile - check/Makefile]) diff --git a/lightning.pc.in b/lightning.pc.in deleted file mode 100644 index e13f7c0c4..000000000 --- a/lightning.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: GNU Lightning -Description: JIT library -Version: @VERSION@ -Libs: -L${libdir} -llightning -Cflags: -I${includedir}/ - - diff --git a/m4/.gitkeep b/m4/.gitkeep deleted file mode 100644 index e69de29bb..000000000 From 796ec6c16d0eb0bdb17eb3ea30bc335e1a9622cd Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 12:16:35 +0100 Subject: [PATCH 11/78] Rename include to jit.h, move all files to jit/ This change is in anticipation of making this lightning fork into an include-only library. --- include/Makefile.am | 19 -------- include/lightning/Makefile.am | 61 ------------------------ include/lightning.h => jit.h | 28 +++++------ {lib => jit}/Makefile.am | 0 {lib => jit}/jit_aarch64-cpu.c | 0 {lib => jit}/jit_aarch64-fpu.c | 0 {lib => jit}/jit_aarch64-sz.c | 0 {lib => jit}/jit_aarch64.c | 0 {include/lightning => jit}/jit_aarch64.h | 0 {lib => jit}/jit_alpha-cpu.c | 0 {lib => jit}/jit_alpha-fpu.c | 0 {lib => jit}/jit_alpha-sz.c | 0 {lib => jit}/jit_alpha.c | 0 {include/lightning => jit}/jit_alpha.h | 0 {lib => jit}/jit_arm-cpu.c | 0 {lib => jit}/jit_arm-swf.c | 0 {lib => jit}/jit_arm-sz.c | 0 {lib => jit}/jit_arm-vfp.c | 0 {lib => jit}/jit_arm.c | 0 {include/lightning => jit}/jit_arm.h | 0 {lib => jit}/jit_disasm.c | 6 +-- {lib => jit}/jit_hppa-cpu.c | 0 {lib => jit}/jit_hppa-fpu.c | 0 {lib => jit}/jit_hppa-sz.c | 0 {lib => jit}/jit_hppa.c | 6 +-- {include/lightning => jit}/jit_hppa.h | 0 {lib => jit}/jit_ia64-cpu.c | 0 {lib => jit}/jit_ia64-fpu.c | 0 {lib => jit}/jit_ia64-sz.c | 0 {lib => jit}/jit_ia64.c | 6 +-- {include/lightning => jit}/jit_ia64.h | 0 {lib => jit}/jit_memory.c | 7 +-- {lib => jit}/jit_mips-cpu.c | 0 {lib => jit}/jit_mips-fpu.c | 0 {lib => jit}/jit_mips-sz.c | 0 {lib => jit}/jit_mips.c | 0 {include/lightning => jit}/jit_mips.h | 0 {lib => jit}/jit_names.c | 0 {lib => jit}/jit_note.c | 6 +-- {lib => jit}/jit_ppc-cpu.c | 0 {lib => jit}/jit_ppc-fpu.c | 0 {lib => jit}/jit_ppc-sz.c | 0 {lib => jit}/jit_ppc.c | 0 {include/lightning => jit}/jit_ppc.h | 0 {lib => jit}/jit_print.c | 6 +-- {include/lightning => jit}/jit_private.h | 0 {lib => jit}/jit_rewind.c | 6 +-- {lib => jit}/jit_s390-cpu.c | 0 {lib => jit}/jit_s390-fpu.c | 0 {lib => jit}/jit_s390-sz.c | 0 {lib => jit}/jit_s390.c | 6 +-- {include/lightning => jit}/jit_s390.h | 0 {lib => jit}/jit_size.c | 6 +-- {lib => jit}/jit_sparc-cpu.c | 0 {lib => jit}/jit_sparc-fpu.c | 0 {lib => jit}/jit_sparc-sz.c | 0 {lib => jit}/jit_sparc.c | 0 {include/lightning => jit}/jit_sparc.h | 0 {lib => jit}/jit_x86-cpu.c | 0 {lib => jit}/jit_x86-sse.c | 0 {lib => jit}/jit_x86-sz.c | 0 {lib => jit}/jit_x86-x87.c | 0 {lib => jit}/jit_x86.c | 6 +-- {include/lightning => jit}/jit_x86.h | 0 {lib => jit}/lightning.c | 7 +-- 65 files changed, 49 insertions(+), 127 deletions(-) delete mode 100644 include/Makefile.am delete mode 100644 include/lightning/Makefile.am rename include/lightning.h => jit.h (99%) rename {lib => jit}/Makefile.am (100%) rename {lib => jit}/jit_aarch64-cpu.c (100%) rename {lib => jit}/jit_aarch64-fpu.c (100%) rename {lib => jit}/jit_aarch64-sz.c (100%) rename {lib => jit}/jit_aarch64.c (100%) rename {include/lightning => jit}/jit_aarch64.h (100%) rename {lib => jit}/jit_alpha-cpu.c (100%) rename {lib => jit}/jit_alpha-fpu.c (100%) rename {lib => jit}/jit_alpha-sz.c (100%) rename {lib => jit}/jit_alpha.c (100%) rename {include/lightning => jit}/jit_alpha.h (100%) rename {lib => jit}/jit_arm-cpu.c (100%) rename {lib => jit}/jit_arm-swf.c (100%) rename {lib => jit}/jit_arm-sz.c (100%) rename {lib => jit}/jit_arm-vfp.c (100%) rename {lib => jit}/jit_arm.c (100%) rename {include/lightning => jit}/jit_arm.h (100%) rename {lib => jit}/jit_disasm.c (98%) rename {lib => jit}/jit_hppa-cpu.c (100%) rename {lib => jit}/jit_hppa-fpu.c (100%) rename {lib => jit}/jit_hppa-sz.c (100%) rename {lib => jit}/jit_hppa.c (99%) rename {include/lightning => jit}/jit_hppa.h (100%) rename {lib => jit}/jit_ia64-cpu.c (100%) rename {lib => jit}/jit_ia64-fpu.c (100%) rename {lib => jit}/jit_ia64-sz.c (100%) rename {lib => jit}/jit_ia64.c (99%) rename {include/lightning => jit}/jit_ia64.h (100%) rename {lib => jit}/jit_memory.c (95%) rename {lib => jit}/jit_mips-cpu.c (100%) rename {lib => jit}/jit_mips-fpu.c (100%) rename {lib => jit}/jit_mips-sz.c (100%) rename {lib => jit}/jit_mips.c (100%) rename {include/lightning => jit}/jit_mips.h (100%) rename {lib => jit}/jit_names.c (100%) rename {lib => jit}/jit_note.c (98%) rename {lib => jit}/jit_ppc-cpu.c (100%) rename {lib => jit}/jit_ppc-fpu.c (100%) rename {lib => jit}/jit_ppc-sz.c (100%) rename {lib => jit}/jit_ppc.c (100%) rename {include/lightning => jit}/jit_ppc.h (100%) rename {lib => jit}/jit_print.c (98%) rename {include/lightning => jit}/jit_private.h (100%) rename {lib => jit}/jit_rewind.c (97%) rename {lib => jit}/jit_s390-cpu.c (100%) rename {lib => jit}/jit_s390-fpu.c (100%) rename {lib => jit}/jit_s390-sz.c (100%) rename {lib => jit}/jit_s390.c (99%) rename {include/lightning => jit}/jit_s390.h (100%) rename {lib => jit}/jit_size.c (95%) rename {lib => jit}/jit_sparc-cpu.c (100%) rename {lib => jit}/jit_sparc-fpu.c (100%) rename {lib => jit}/jit_sparc-sz.c (100%) rename {lib => jit}/jit_sparc.c (100%) rename {include/lightning => jit}/jit_sparc.h (100%) rename {lib => jit}/jit_x86-cpu.c (100%) rename {lib => jit}/jit_x86-sse.c (100%) rename {lib => jit}/jit_x86-sz.c (100%) rename {lib => jit}/jit_x86-x87.c (100%) rename {lib => jit}/jit_x86.c (99%) rename {include/lightning => jit}/jit_x86.h (100%) rename {lib => jit}/lightning.c (99%) diff --git a/include/Makefile.am b/include/Makefile.am deleted file mode 100644 index 601ae7a7c..000000000 --- a/include/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc. -# -# This file is part of GNU lightning. -# -# GNU lightning is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU lightning is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# - -include_HEADERS = lightning.h -SUBDIRS = \ - lightning diff --git a/include/lightning/Makefile.am b/include/lightning/Makefile.am deleted file mode 100644 index 885a0d5b4..000000000 --- a/include/lightning/Makefile.am +++ /dev/null @@ -1,61 +0,0 @@ -# -# Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc. -# -# This file is part of GNU lightning. -# -# GNU lightning is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU lightning is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# - -lightning_includedir = $(includedir)/lightning - -EXTRA_DIST = \ - jit_private.h - -if cpu_arm -lightning_include_HEADERS = \ - jit_arm.h -endif -if cpu_mips -lightning_include_HEADERS = \ - jit_mips.h -endif -if cpu_ppc -lightning_include_HEADERS = \ - jit_ppc.h -endif -if cpu_sparc -lightning_include_HEADERS = \ - jit_sparc.h -endif -if cpu_x86 -lightning_include_HEADERS = \ - jit_x86.h -endif -if cpu_ia64 -lightning_include_HEADERS = \ - jit_ia64.h -endif -if cpu_hppa -lightning_include_HEADERS = \ - jit_hppa.h -endif -if cpu_aarch64 -lightning_include_HEADERS = \ - jit_aarch64.h -endif -if cpu_s390 -lightning_include_HEADERS = \ - jit_s390.h -endif -if cpu_alpha -lightning_include_HEADERS = \ - jit_alpha.h -endif diff --git a/include/lightning.h b/jit.h similarity index 99% rename from include/lightning.h rename to jit.h index 55657c858..0b5c6cef1 100644 --- a/include/lightning.h +++ b/jit.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Free Software Foundation, Inc. + * Copyright (C) 2012-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#ifndef _lightning_h -#define _lightning_h +#ifndef _jit_h +#define _jit_h #if HAVE_CONFIG_H # include "config.h" @@ -133,25 +133,25 @@ typedef jit_int32_t jit_gpr_t; typedef jit_int32_t jit_fpr_t; #if defined(__i386__) || defined(__x86_64__) -# include +# include #elif defined(__mips__) -# include +# include #elif defined(__arm__) -# include +# include #elif defined(__ppc__) || defined(__powerpc__) -# include +# include #elif defined(__sparc__) -# include +# include #elif defined(__ia64__) -# include +# include #elif defined(__hppa__) -# include +# include #elif defined(__aarch64__) -# include +# include #elif defined(__s390__) || defined(__s390x__) -# include +# include #elif defined(__alpha__) -# include +# include #endif #define jit_flag_node 0x0001 /* patch node not absolute */ @@ -1095,4 +1095,4 @@ extern void jit_get_memory_functions(jit_alloc_func_ptr*, jit_realloc_func_ptr*, jit_free_func_ptr*); -#endif /* _lightning_h */ +#endif /* _jit_h */ diff --git a/lib/Makefile.am b/jit/Makefile.am similarity index 100% rename from lib/Makefile.am rename to jit/Makefile.am diff --git a/lib/jit_aarch64-cpu.c b/jit/jit_aarch64-cpu.c similarity index 100% rename from lib/jit_aarch64-cpu.c rename to jit/jit_aarch64-cpu.c diff --git a/lib/jit_aarch64-fpu.c b/jit/jit_aarch64-fpu.c similarity index 100% rename from lib/jit_aarch64-fpu.c rename to jit/jit_aarch64-fpu.c diff --git a/lib/jit_aarch64-sz.c b/jit/jit_aarch64-sz.c similarity index 100% rename from lib/jit_aarch64-sz.c rename to jit/jit_aarch64-sz.c diff --git a/lib/jit_aarch64.c b/jit/jit_aarch64.c similarity index 100% rename from lib/jit_aarch64.c rename to jit/jit_aarch64.c diff --git a/include/lightning/jit_aarch64.h b/jit/jit_aarch64.h similarity index 100% rename from include/lightning/jit_aarch64.h rename to jit/jit_aarch64.h diff --git a/lib/jit_alpha-cpu.c b/jit/jit_alpha-cpu.c similarity index 100% rename from lib/jit_alpha-cpu.c rename to jit/jit_alpha-cpu.c diff --git a/lib/jit_alpha-fpu.c b/jit/jit_alpha-fpu.c similarity index 100% rename from lib/jit_alpha-fpu.c rename to jit/jit_alpha-fpu.c diff --git a/lib/jit_alpha-sz.c b/jit/jit_alpha-sz.c similarity index 100% rename from lib/jit_alpha-sz.c rename to jit/jit_alpha-sz.c diff --git a/lib/jit_alpha.c b/jit/jit_alpha.c similarity index 100% rename from lib/jit_alpha.c rename to jit/jit_alpha.c diff --git a/include/lightning/jit_alpha.h b/jit/jit_alpha.h similarity index 100% rename from include/lightning/jit_alpha.h rename to jit/jit_alpha.h diff --git a/lib/jit_arm-cpu.c b/jit/jit_arm-cpu.c similarity index 100% rename from lib/jit_arm-cpu.c rename to jit/jit_arm-cpu.c diff --git a/lib/jit_arm-swf.c b/jit/jit_arm-swf.c similarity index 100% rename from lib/jit_arm-swf.c rename to jit/jit_arm-swf.c diff --git a/lib/jit_arm-sz.c b/jit/jit_arm-sz.c similarity index 100% rename from lib/jit_arm-sz.c rename to jit/jit_arm-sz.c diff --git a/lib/jit_arm-vfp.c b/jit/jit_arm-vfp.c similarity index 100% rename from lib/jit_arm-vfp.c rename to jit/jit_arm-vfp.c diff --git a/lib/jit_arm.c b/jit/jit_arm.c similarity index 100% rename from lib/jit_arm.c rename to jit/jit_arm.c diff --git a/include/lightning/jit_arm.h b/jit/jit_arm.h similarity index 100% rename from include/lightning/jit_arm.h rename to jit/jit_arm.h diff --git a/lib/jit_disasm.c b/jit/jit_disasm.c similarity index 98% rename from lib/jit_disasm.c rename to jit/jit_disasm.c index 89cc289e9..fa3377285 100644 --- a/lib/jit_disasm.c +++ b/jit/jit_disasm.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Free Software Foundation, Inc. + * Copyright (C) 2012-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #if DISASSEMBLER # include #endif diff --git a/lib/jit_hppa-cpu.c b/jit/jit_hppa-cpu.c similarity index 100% rename from lib/jit_hppa-cpu.c rename to jit/jit_hppa-cpu.c diff --git a/lib/jit_hppa-fpu.c b/jit/jit_hppa-fpu.c similarity index 100% rename from lib/jit_hppa-fpu.c rename to jit/jit_hppa-fpu.c diff --git a/lib/jit_hppa-sz.c b/jit/jit_hppa-sz.c similarity index 100% rename from lib/jit_hppa-sz.c rename to jit/jit_hppa-sz.c diff --git a/lib/jit_hppa.c b/jit/jit_hppa.c similarity index 99% rename from lib/jit_hppa.c rename to jit/jit_hppa.c index 558524b41..38bd22ed9 100644 --- a/lib/jit_hppa.c +++ b/jit/jit_hppa.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #define jit_arg_reg_p(i) (i >= 0 && i < 4) diff --git a/include/lightning/jit_hppa.h b/jit/jit_hppa.h similarity index 100% rename from include/lightning/jit_hppa.h rename to jit/jit_hppa.h diff --git a/lib/jit_ia64-cpu.c b/jit/jit_ia64-cpu.c similarity index 100% rename from lib/jit_ia64-cpu.c rename to jit/jit_ia64-cpu.c diff --git a/lib/jit_ia64-fpu.c b/jit/jit_ia64-fpu.c similarity index 100% rename from lib/jit_ia64-fpu.c rename to jit/jit_ia64-fpu.c diff --git a/lib/jit_ia64-sz.c b/jit/jit_ia64-sz.c similarity index 100% rename from lib/jit_ia64-sz.c rename to jit/jit_ia64-sz.c diff --git a/lib/jit_ia64.c b/jit/jit_ia64.c similarity index 99% rename from lib/jit_ia64.c rename to jit/jit_ia64.c index 8f60b2e7f..99e2b71fc 100644 --- a/lib/jit_ia64.c +++ b/jit/jit_ia64.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #define jit_arg_reg_p(i) ((i) >= 0 && (i) < 8) #if __BYTE_ORDER == __LITTLE_ENDIAN diff --git a/include/lightning/jit_ia64.h b/jit/jit_ia64.h similarity index 100% rename from include/lightning/jit_ia64.h rename to jit/jit_ia64.h diff --git a/lib/jit_memory.c b/jit/jit_memory.c similarity index 95% rename from lib/jit_memory.c rename to jit/jit_memory.c index cbc2395c4..b2a90ef20 100644 --- a/lib/jit_memory.c +++ b/jit/jit_memory.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,10 +17,11 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include #include +#include "jit.h" +#include "jit/jit_private.h" + /* * Prototypes */ diff --git a/lib/jit_mips-cpu.c b/jit/jit_mips-cpu.c similarity index 100% rename from lib/jit_mips-cpu.c rename to jit/jit_mips-cpu.c diff --git a/lib/jit_mips-fpu.c b/jit/jit_mips-fpu.c similarity index 100% rename from lib/jit_mips-fpu.c rename to jit/jit_mips-fpu.c diff --git a/lib/jit_mips-sz.c b/jit/jit_mips-sz.c similarity index 100% rename from lib/jit_mips-sz.c rename to jit/jit_mips-sz.c diff --git a/lib/jit_mips.c b/jit/jit_mips.c similarity index 100% rename from lib/jit_mips.c rename to jit/jit_mips.c diff --git a/include/lightning/jit_mips.h b/jit/jit_mips.h similarity index 100% rename from include/lightning/jit_mips.h rename to jit/jit_mips.h diff --git a/lib/jit_names.c b/jit/jit_names.c similarity index 100% rename from lib/jit_names.c rename to jit/jit_names.c diff --git a/lib/jit_note.c b/jit/jit_note.c similarity index 98% rename from lib/jit_note.c rename to jit/jit_note.c index f834de643..ced35061e 100644 --- a/lib/jit_note.c +++ b/jit/jit_note.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" /* * Prototypes diff --git a/lib/jit_ppc-cpu.c b/jit/jit_ppc-cpu.c similarity index 100% rename from lib/jit_ppc-cpu.c rename to jit/jit_ppc-cpu.c diff --git a/lib/jit_ppc-fpu.c b/jit/jit_ppc-fpu.c similarity index 100% rename from lib/jit_ppc-fpu.c rename to jit/jit_ppc-fpu.c diff --git a/lib/jit_ppc-sz.c b/jit/jit_ppc-sz.c similarity index 100% rename from lib/jit_ppc-sz.c rename to jit/jit_ppc-sz.c diff --git a/lib/jit_ppc.c b/jit/jit_ppc.c similarity index 100% rename from lib/jit_ppc.c rename to jit/jit_ppc.c diff --git a/include/lightning/jit_ppc.h b/jit/jit_ppc.h similarity index 100% rename from include/lightning/jit_ppc.h rename to jit/jit_ppc.h diff --git a/lib/jit_print.c b/jit/jit_print.c similarity index 98% rename from lib/jit_print.c rename to jit/jit_print.c index 8fe9885e2..57eb4d1a9 100644 --- a/lib/jit_print.c +++ b/jit/jit_print.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Free Software Foundation, Inc. + * Copyright (C) 2012-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #define print_chr(value) fputc(value, stdout) #define print_hex(value) fprintf(stdout, "0x%lx", value) diff --git a/include/lightning/jit_private.h b/jit/jit_private.h similarity index 100% rename from include/lightning/jit_private.h rename to jit/jit_private.h diff --git a/lib/jit_rewind.c b/jit/jit_rewind.c similarity index 97% rename from lib/jit_rewind.c rename to jit/jit_rewind.c index 518d2f6e9..29f09aa44 100644 --- a/lib/jit_rewind.c +++ b/jit/jit_rewind.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015-2017 Free Software Foundation, Inc. + * Copyright (C) 2015-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #if PROTO # define free_synth_list(node) _free_synth_list(_jit,node) diff --git a/lib/jit_s390-cpu.c b/jit/jit_s390-cpu.c similarity index 100% rename from lib/jit_s390-cpu.c rename to jit/jit_s390-cpu.c diff --git a/lib/jit_s390-fpu.c b/jit/jit_s390-fpu.c similarity index 100% rename from lib/jit_s390-fpu.c rename to jit/jit_s390-fpu.c diff --git a/lib/jit_s390-sz.c b/jit/jit_s390-sz.c similarity index 100% rename from lib/jit_s390-sz.c rename to jit/jit_s390-sz.c diff --git a/lib/jit_s390.c b/jit/jit_s390.c similarity index 99% rename from lib/jit_s390.c rename to jit/jit_s390.c index 27e887100..b7e9bce6c 100644 --- a/lib/jit_s390.c +++ b/jit/jit_s390.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #if __WORDSIZE == 32 # define NUM_FLOAT_REG_ARGS 2 diff --git a/include/lightning/jit_s390.h b/jit/jit_s390.h similarity index 100% rename from include/lightning/jit_s390.h rename to jit/jit_s390.h diff --git a/lib/jit_size.c b/jit/jit_size.c similarity index 95% rename from lib/jit_size.c rename to jit/jit_size.c index 3585adab5..47b41dfd1 100644 --- a/lib/jit_size.c +++ b/jit/jit_size.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Free Software Foundation, Inc. + * Copyright (C) 2013-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #if GET_JIT_SIZE # include #endif diff --git a/lib/jit_sparc-cpu.c b/jit/jit_sparc-cpu.c similarity index 100% rename from lib/jit_sparc-cpu.c rename to jit/jit_sparc-cpu.c diff --git a/lib/jit_sparc-fpu.c b/jit/jit_sparc-fpu.c similarity index 100% rename from lib/jit_sparc-fpu.c rename to jit/jit_sparc-fpu.c diff --git a/lib/jit_sparc-sz.c b/jit/jit_sparc-sz.c similarity index 100% rename from lib/jit_sparc-sz.c rename to jit/jit_sparc-sz.c diff --git a/lib/jit_sparc.c b/jit/jit_sparc.c similarity index 100% rename from lib/jit_sparc.c rename to jit/jit_sparc.c diff --git a/include/lightning/jit_sparc.h b/jit/jit_sparc.h similarity index 100% rename from include/lightning/jit_sparc.h rename to jit/jit_sparc.h diff --git a/lib/jit_x86-cpu.c b/jit/jit_x86-cpu.c similarity index 100% rename from lib/jit_x86-cpu.c rename to jit/jit_x86-cpu.c diff --git a/lib/jit_x86-sse.c b/jit/jit_x86-sse.c similarity index 100% rename from lib/jit_x86-sse.c rename to jit/jit_x86-sse.c diff --git a/lib/jit_x86-sz.c b/jit/jit_x86-sz.c similarity index 100% rename from lib/jit_x86-sz.c rename to jit/jit_x86-sz.c diff --git a/lib/jit_x86-x87.c b/jit/jit_x86-x87.c similarity index 100% rename from lib/jit_x86-x87.c rename to jit/jit_x86-x87.c diff --git a/lib/jit_x86.c b/jit/jit_x86.c similarity index 99% rename from lib/jit_x86.c rename to jit/jit_x86.c index aae796b46..40f667403 100644 --- a/lib/jit_x86.c +++ b/jit/jit_x86.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Free Software Foundation, Inc. + * Copyright (C) 2012-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,8 +17,8 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include +#include "jit.h" +#include "jit/jit_private.h" #if __X32 # define jit_arg_reg_p(i) 0 diff --git a/include/lightning/jit_x86.h b/jit/jit_x86.h similarity index 100% rename from include/lightning/jit_x86.h rename to jit/jit_x86.h diff --git a/lib/lightning.c b/jit/lightning.c similarity index 99% rename from lib/lightning.c rename to jit/lightning.c index bce5968c3..c2cb75f76 100644 --- a/lib/lightning.c +++ b/jit/lightning.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Free Software Foundation, Inc. + * Copyright (C) 2012-2018 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -17,13 +17,14 @@ * Paulo Cesar Pereira de Andrade */ -#include -#include #include #if defined(__sgi) # include #endif +#include "jit.h" +#include "jit/jit_private.h" + #ifndef MAP_ANON # define MAP_ANON MAP_ANONYMOUS # ifndef MAP_ANONYMOUS From 48993156f6e77f3c2c450685a8e670d82ddd57a1 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 12:20:05 +0100 Subject: [PATCH 12/78] Rename lightning.c to jit.c --- jit/Makefile.am | 79 -------------------------------------- jit/{lightning.c => jit.c} | 0 2 files changed, 79 deletions(-) delete mode 100644 jit/Makefile.am rename jit/{lightning.c => jit.c} (100%) diff --git a/jit/Makefile.am b/jit/Makefile.am deleted file mode 100644 index a6885bc28..000000000 --- a/jit/Makefile.am +++ /dev/null @@ -1,79 +0,0 @@ -# -# Copyright 2000, 2001, 2002, 2012-2017 Free Software Foundation, Inc. -# -# This file is part of GNU lightning. -# -# GNU lightning is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU lightning is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# - -AM_CFLAGS = -I$(top_srcdir)/include -D_GNU_SOURCE $(LIGHTNING_CFLAGS) -liblightning_LTLIBRARIES = liblightning.la -liblightning_la_LDFLAGS = -version-info 1:0:0 - -if get_jit_size -JIT_SIZE_PATH = "$(top_builddir)/jit_$(cpu)-sz.c" -AM_CPPFLAGS=-DGET_JIT_SIZE=1 -DJIT_SIZE_PATH='$(JIT_SIZE_PATH)' -endif - -liblightningdir = $(libdir) -liblightning_la_SOURCES = \ - jit_disasm.c \ - jit_memory.c \ - jit_names.c \ - jit_note.c \ - jit_print.c \ - jit_size.c \ - lightning.c - -EXTRA_DIST = \ - jit_rewind.c \ - jit_aarch64.c \ - jit_aarch64-cpu.c \ - jit_aarch64-fpu.c \ - jit_aarch64-sz.c \ - jit_alpha.c \ - jit_alpha-cpu.c \ - jit_alpha-fpu.c \ - jit_alpha-sz.c \ - jit_arm.c \ - jit_arm-cpu.c \ - jit_arm-swf.c \ - jit_arm-vfp.c \ - jit_arm-sz.c \ - jit_hppa.c \ - jit_hppa-cpu.c \ - jit_hppa-fpu.c \ - jit_hppa-sz.c \ - jit_ia64.c \ - jit_ia64-cpu.c \ - jit_ia64-fpu.c \ - jit_ia64-sz.c \ - jit_mips.c \ - jit_mips-cpu.c \ - jit_mips-fpu.c \ - jit_mips-sz.c \ - jit_ppc.c \ - jit_ppc-cpu.c \ - jit_ppc-fpu.c \ - jit_ppc-sz.c \ - jit_s390.c \ - jit_s390-cpu.c \ - jit_s390-fpu.c \ - jit_s390-sz.c \ - jit_sparc.c \ - jit_sparc-cpu.c \ - jit_sparc-fpu.c \ - jit_sparc-sz.c \ - jit_x86.c \ - jit_x86-cpu.c \ - jit_x86-sse.c \ - jit_x86-x87.c \ - jit_x86-sz.c diff --git a/jit/lightning.c b/jit/jit.c similarity index 100% rename from jit/lightning.c rename to jit/jit.c From 846e7bc4432bee6b8fa35e7eff1384676bbe7f18 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 12:21:45 +0100 Subject: [PATCH 13/78] Remove -sz.c files The new form of this library will not need them. --- jit/jit_aarch64-sz.c | 402 ----------- jit/jit_alpha-sz.c | 402 ----------- jit/jit_arm-sz.c | 808 --------------------- jit/jit_hppa-sz.c | 402 ----------- jit/jit_ia64-sz.c | 402 ----------- jit/jit_mips-sz.c | 1210 ------------------------------- jit/jit_ppc-sz.c | 1622 ------------------------------------------ jit/jit_s390-sz.c | 804 --------------------- jit/jit_sparc-sz.c | 803 --------------------- jit/jit_x86-sz.c | 1610 ----------------------------------------- 10 files changed, 8465 deletions(-) delete mode 100644 jit/jit_aarch64-sz.c delete mode 100644 jit/jit_alpha-sz.c delete mode 100644 jit/jit_arm-sz.c delete mode 100644 jit/jit_hppa-sz.c delete mode 100644 jit/jit_ia64-sz.c delete mode 100644 jit/jit_mips-sz.c delete mode 100644 jit/jit_ppc-sz.c delete mode 100644 jit/jit_s390-sz.c delete mode 100644 jit/jit_sparc-sz.c delete mode 100644 jit/jit_x86-sz.c diff --git a/jit/jit_aarch64-sz.c b/jit/jit_aarch64-sz.c deleted file mode 100644 index 7e22e0e7b..000000000 --- a/jit/jit_aarch64-sz.c +++ /dev/null @@ -1,402 +0,0 @@ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 120 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 120, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 44, /* va_start */ - 64, /* va_arg */ - 72, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 20, /* addi */ - 4, /* addcr */ - 12, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 20, /* subi */ - 4, /* subcr */ - 12, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 24, /* rsbi */ - 4, /* mulr */ - 20, /* muli */ - 12, /* qmulr */ - 20, /* qmuli */ - 12, /* qmulr_u */ - 20, /* qmuli_u */ - 4, /* divr */ - 20, /* divi */ - 4, /* divr_u */ - 12, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 28, /* remi */ - 12, /* remr_u */ - 20, /* remi_u */ - 4, /* andr */ - 20, /* andi */ - 4, /* orr */ - 20, /* ori */ - 4, /* xorr */ - 20, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 8, /* ltr */ - 8, /* lti */ - 8, /* ltr_u */ - 8, /* lti_u */ - 8, /* ler */ - 8, /* lei */ - 8, /* ler_u */ - 8, /* lei_u */ - 8, /* eqr */ - 8, /* eqi */ - 8, /* ger */ - 8, /* gei */ - 8, /* ger_u */ - 8, /* gei_u */ - 8, /* gtr */ - 8, /* gti */ - 8, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 8, /* nei */ - 4, /* movr */ - 16, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 4, /* extr_ui */ - 8, /* htonr_us */ - 8, /* htonr_ui */ - 4, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 4, /* ldr_ui */ - 12, /* ldi_ui */ - 4, /* ldr_l */ - 12, /* ldi_l */ - 8, /* ldxr_c */ - 20, /* ldxi_c */ - 4, /* ldxr_uc */ - 20, /* ldxi_uc */ - 4, /* ldxr_s */ - 16, /* ldxi_s */ - 4, /* ldxr_us */ - 16, /* ldxi_us */ - 4, /* ldxr_i */ - 20, /* ldxi_i */ - 4, /* ldxr_ui */ - 16, /* ldxi_ui */ - 4, /* ldxr_l */ - 20, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 4, /* str_l */ - 12, /* sti_l */ - 4, /* stxr_c */ - 20, /* stxi_c */ - 4, /* stxr_s */ - 20, /* stxi_s */ - 4, /* stxr_i */ - 20, /* stxi_i */ - 4, /* stxr_l */ - 20, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 8, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 8, /* blei_u */ - 8, /* beqr */ - 24, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 24, /* bnei */ - 8, /* bmsr */ - 8, /* bmsi */ - 8, /* bmcr */ - 8, /* bmci */ - 8, /* boaddr */ - 8, /* boaddi */ - 8, /* boaddr_u */ - 8, /* boaddi_u */ - 8, /* bxaddr */ - 8, /* bxaddi */ - 8, /* bxaddr_u */ - 8, /* bxaddi_u */ - 8, /* bosubr */ - 8, /* bosubi */ - 8, /* bosubr_u */ - 8, /* bosubi_u */ - 8, /* bxsubr */ - 8, /* bxsubi */ - 8, /* bxsubr_u */ - 8, /* bxsubi_u */ - 4, /* jmpr */ - 20, /* jmpi */ - 4, /* callr */ - 20, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 96, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 12, /* addi_f */ - 4, /* subr_f */ - 12, /* subi_f */ - 12, /* rsbi_f */ - 4, /* mulr_f */ - 12, /* muli_f */ - 4, /* divr_f */ - 12, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 8, /* ltr_f */ - 16, /* lti_f */ - 8, /* ler_f */ - 16, /* lei_f */ - 8, /* eqr_f */ - 16, /* eqi_f */ - 8, /* ger_f */ - 16, /* gei_f */ - 8, /* gtr_f */ - 16, /* gti_f */ - 8, /* ner_f */ - 16, /* nei_f */ - 8, /* unltr_f */ - 16, /* unlti_f */ - 8, /* unler_f */ - 16, /* unlei_f */ - 16, /* uneqr_f */ - 24, /* uneqi_f */ - 8, /* unger_f */ - 16, /* ungei_f */ - 8, /* ungtr_f */ - 16, /* ungti_f */ - 16, /* ltgtr_f */ - 24, /* ltgti_f */ - 8, /* ordr_f */ - 16, /* ordi_f */ - 8, /* unordr_f */ - 16, /* unordi_f */ - 8, /* truncr_f_i */ - 4, /* truncr_f_l */ - 4, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 8, /* movi_f */ - 8, /* ldr_f */ - 16, /* ldi_f */ - 8, /* ldxr_f */ - 24, /* ldxi_f */ - 8, /* str_f */ - 16, /* sti_f */ - 8, /* stxr_f */ - 24, /* stxi_f */ - 8, /* bltr_f */ - 16, /* blti_f */ - 8, /* bler_f */ - 16, /* blei_f */ - 8, /* beqr_f */ - 16, /* beqi_f */ - 8, /* bger_f */ - 16, /* bgei_f */ - 8, /* bgtr_f */ - 16, /* bgti_f */ - 8, /* bner_f */ - 16, /* bnei_f */ - 8, /* bunltr_f */ - 16, /* bunlti_f */ - 8, /* bunler_f */ - 16, /* bunlei_f */ - 16, /* buneqr_f */ - 24, /* buneqi_f */ - 8, /* bunger_f */ - 16, /* bungei_f */ - 8, /* bungtr_f */ - 16, /* bungti_f */ - 16, /* bltgtr_f */ - 24, /* bltgti_f */ - 8, /* bordr_f */ - 16, /* bordi_f */ - 8, /* bunordr_f */ - 16, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 12, /* addi_d */ - 4, /* subr_d */ - 12, /* subi_d */ - 12, /* rsbi_d */ - 4, /* mulr_d */ - 12, /* muli_d */ - 4, /* divr_d */ - 12, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 8, /* ltr_d */ - 16, /* lti_d */ - 8, /* ler_d */ - 16, /* lei_d */ - 8, /* eqr_d */ - 16, /* eqi_d */ - 8, /* ger_d */ - 16, /* gei_d */ - 8, /* gtr_d */ - 16, /* gti_d */ - 8, /* ner_d */ - 16, /* nei_d */ - 8, /* unltr_d */ - 16, /* unlti_d */ - 8, /* unler_d */ - 16, /* unlei_d */ - 16, /* uneqr_d */ - 24, /* uneqi_d */ - 8, /* unger_d */ - 16, /* ungei_d */ - 8, /* ungtr_d */ - 16, /* ungti_d */ - 16, /* ltgtr_d */ - 24, /* ltgti_d */ - 8, /* ordr_d */ - 16, /* ordi_d */ - 8, /* unordr_d */ - 16, /* unordi_d */ - 8, /* truncr_d_i */ - 4, /* truncr_d_l */ - 4, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 12, /* movi_d */ - 8, /* ldr_d */ - 16, /* ldi_d */ - 8, /* ldxr_d */ - 24, /* ldxi_d */ - 8, /* str_d */ - 16, /* sti_d */ - 8, /* stxr_d */ - 24, /* stxi_d */ - 8, /* bltr_d */ - 16, /* blti_d */ - 8, /* bler_d */ - 16, /* blei_d */ - 8, /* beqr_d */ - 20, /* beqi_d */ - 8, /* bger_d */ - 16, /* bgei_d */ - 8, /* bgtr_d */ - 16, /* bgti_d */ - 8, /* bner_d */ - 16, /* bnei_d */ - 8, /* bunltr_d */ - 16, /* bunlti_d */ - 8, /* bunler_d */ - 16, /* bunlei_d */ - 16, /* buneqr_d */ - 24, /* buneqi_d */ - 8, /* bunger_d */ - 16, /* bungei_d */ - 8, /* bungtr_d */ - 16, /* bungti_d */ - 16, /* bltgtr_d */ - 24, /* bltgti_d */ - 8, /* bordr_d */ - 16, /* bordi_d */ - 8, /* bunordr_d */ - 16, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_alpha-sz.c b/jit/jit_alpha-sz.c deleted file mode 100644 index e1a572aab..000000000 --- a/jit/jit_alpha-sz.c +++ /dev/null @@ -1,402 +0,0 @@ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 76 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 76, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 32, /* addi */ - 12, /* addcr */ - 40, /* addci */ - 28, /* addxr */ - 28, /* addxi */ - 4, /* subr */ - 32, /* subi */ - 12, /* subcr */ - 40, /* subci */ - 28, /* subxr */ - 28, /* subxi */ - 36, /* rsbi */ - 4, /* mulr */ - 32, /* muli */ - 44, /* qmulr */ - 56, /* qmuli */ - 12, /* qmulr_u */ - 32, /* qmuli_u */ - 48, /* divr */ - 72, /* divi */ - 48, /* divr_u */ - 72, /* divi_u */ - 56, /* qdivr */ - 56, /* qdivi */ - 56, /* qdivr_u */ - 56, /* qdivi_u */ - 48, /* remr */ - 72, /* remi */ - 48, /* remr_u */ - 72, /* remi_u */ - 4, /* andr */ - 32, /* andi */ - 4, /* orr */ - 32, /* ori */ - 4, /* xorr */ - 32, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 4, /* ltr */ - 4, /* lti */ - 4, /* ltr_u */ - 8, /* lti_u */ - 4, /* ler */ - 8, /* lei */ - 4, /* ler_u */ - 4, /* lei_u */ - 4, /* eqr */ - 4, /* eqi */ - 4, /* ger */ - 8, /* gei */ - 4, /* ger_u */ - 8, /* gei_u */ - 4, /* gtr */ - 8, /* gti */ - 4, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 12, /* nei */ - 4, /* movr */ - 32, /* movi */ - 8, /* extr_c */ - 8, /* extr_uc */ - 8, /* extr_s */ - 8, /* extr_us */ - 8, /* extr_i */ - 8, /* extr_ui */ - 16, /* htonr_us */ - 36, /* htonr_ui */ - 36, /* htonr_ul */ - 12, /* ldr_c */ - 40, /* ldi_c */ - 4, /* ldr_uc */ - 32, /* ldi_uc */ - 12, /* ldr_s */ - 40, /* ldi_s */ - 4, /* ldr_us */ - 32, /* ldi_us */ - 4, /* ldr_i */ - 32, /* ldi_i */ - 12, /* ldr_ui */ - 40, /* ldi_ui */ - 4, /* ldr_l */ - 32, /* ldi_l */ - 16, /* ldxr_c */ - 12, /* ldxi_c */ - 8, /* ldxr_uc */ - 4, /* ldxi_uc */ - 16, /* ldxr_s */ - 12, /* ldxi_s */ - 8, /* ldxr_us */ - 4, /* ldxi_us */ - 8, /* ldxr_i */ - 4, /* ldxi_i */ - 16, /* ldxr_ui */ - 12, /* ldxi_ui */ - 8, /* ldxr_l */ - 4, /* ldxi_l */ - 4, /* str_c */ - 32, /* sti_c */ - 4, /* str_s */ - 32, /* sti_s */ - 4, /* str_i */ - 32, /* sti_i */ - 4, /* str_l */ - 32, /* sti_l */ - 8, /* stxr_c */ - 4, /* stxi_c */ - 8, /* stxr_s */ - 4, /* stxi_s */ - 8, /* stxr_i */ - 4, /* stxi_i */ - 8, /* stxr_l */ - 4, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 12, /* blti_u */ - 8, /* bler */ - 12, /* blei */ - 8, /* bler_u */ - 12, /* blei_u */ - 8, /* beqr */ - 40, /* beqi */ - 8, /* bger */ - 12, /* bgei */ - 8, /* bger_u */ - 12, /* bgei_u */ - 8, /* bgtr */ - 12, /* bgti */ - 8, /* bgtr_u */ - 12, /* bgti_u */ - 8, /* bner */ - 36, /* bnei */ - 8, /* bmsr */ - 8, /* bmsi */ - 8, /* bmcr */ - 8, /* bmci */ - 28, /* boaddr */ - 32, /* boaddi */ - 16, /* boaddr_u */ - 16, /* boaddi_u */ - 28, /* bxaddr */ - 32, /* bxaddi */ - 16, /* bxaddr_u */ - 16, /* bxaddi_u */ - 28, /* bosubr */ - 32, /* bosubi */ - 16, /* bosubr_u */ - 16, /* bosubi_u */ - 28, /* bxsubr */ - 32, /* bxsubi */ - 16, /* bxsubr_u */ - 16, /* bxsubi_u */ - 0, /* jmpr */ - 36, /* jmpi */ - 8, /* callr */ - 36, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 68, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 8, /* addr_f */ - 32, /* addi_f */ - 8, /* subr_f */ - 32, /* subi_f */ - 32, /* rsbi_f */ - 8, /* mulr_f */ - 32, /* muli_f */ - 8, /* divr_f */ - 32, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 8, /* sqrtr_f */ - 32, /* ltr_f */ - 56, /* lti_f */ - 32, /* ler_f */ - 56, /* lei_f */ - 32, /* eqr_f */ - 56, /* eqi_f */ - 32, /* ger_f */ - 56, /* gei_f */ - 32, /* gtr_f */ - 56, /* gti_f */ - 32, /* ner_f */ - 56, /* nei_f */ - 32, /* unltr_f */ - 56, /* unlti_f */ - 32, /* unler_f */ - 56, /* unlei_f */ - 32, /* uneqr_f */ - 56, /* uneqi_f */ - 32, /* unger_f */ - 56, /* ungei_f */ - 32, /* ungtr_f */ - 56, /* ungti_f */ - 32, /* ltgtr_f */ - 56, /* ltgti_f */ - 20, /* ordr_f */ - 44, /* ordi_f */ - 20, /* unordr_f */ - 44, /* unordi_f */ - 16, /* truncr_f_i */ - 16, /* truncr_f_l */ - 12, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 24, /* movi_f */ - 4, /* ldr_f */ - 32, /* ldi_f */ - 8, /* ldxr_f */ - 4, /* ldxi_f */ - 4, /* str_f */ - 32, /* sti_f */ - 8, /* stxr_f */ - 4, /* stxi_f */ - 24, /* bltr_f */ - 48, /* blti_f */ - 24, /* bler_f */ - 48, /* blei_f */ - 24, /* beqr_f */ - 48, /* beqi_f */ - 24, /* bger_f */ - 48, /* bgei_f */ - 24, /* bgtr_f */ - 48, /* bgti_f */ - 28, /* bner_f */ - 52, /* bnei_f */ - 28, /* bunltr_f */ - 52, /* bunlti_f */ - 28, /* bunler_f */ - 52, /* bunlei_f */ - 28, /* buneqr_f */ - 52, /* buneqi_f */ - 28, /* bunger_f */ - 52, /* bungei_f */ - 28, /* bungtr_f */ - 52, /* bungti_f */ - 28, /* bltgtr_f */ - 52, /* bltgti_f */ - 12, /* bordr_f */ - 36, /* bordi_f */ - 12, /* bunordr_f */ - 36, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 8, /* addr_d */ - 28, /* addi_d */ - 8, /* subr_d */ - 28, /* subi_d */ - 28, /* rsbi_d */ - 8, /* mulr_d */ - 28, /* muli_d */ - 8, /* divr_d */ - 28, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 8, /* sqrtr_d */ - 32, /* ltr_d */ - 52, /* lti_d */ - 32, /* ler_d */ - 52, /* lei_d */ - 32, /* eqr_d */ - 52, /* eqi_d */ - 32, /* ger_d */ - 52, /* gei_d */ - 32, /* gtr_d */ - 52, /* gti_d */ - 32, /* ner_d */ - 52, /* nei_d */ - 32, /* unltr_d */ - 52, /* unlti_d */ - 32, /* unler_d */ - 52, /* unlei_d */ - 32, /* uneqr_d */ - 52, /* uneqi_d */ - 32, /* unger_d */ - 52, /* ungei_d */ - 32, /* ungtr_d */ - 52, /* ungti_d */ - 32, /* ltgtr_d */ - 52, /* ltgti_d */ - 20, /* ordr_d */ - 40, /* ordi_d */ - 20, /* unordr_d */ - 40, /* unordi_d */ - 16, /* truncr_d_i */ - 16, /* truncr_d_l */ - 12, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 20, /* movi_d */ - 4, /* ldr_d */ - 32, /* ldi_d */ - 8, /* ldxr_d */ - 4, /* ldxi_d */ - 4, /* str_d */ - 32, /* sti_d */ - 8, /* stxr_d */ - 4, /* stxi_d */ - 24, /* bltr_d */ - 44, /* blti_d */ - 24, /* bler_d */ - 44, /* blei_d */ - 24, /* beqr_d */ - 44, /* beqi_d */ - 24, /* bger_d */ - 44, /* bgei_d */ - 24, /* bgtr_d */ - 44, /* bgti_d */ - 28, /* bner_d */ - 48, /* bnei_d */ - 28, /* bunltr_d */ - 48, /* bunlti_d */ - 28, /* bunler_d */ - 48, /* bunlei_d */ - 28, /* buneqr_d */ - 48, /* buneqi_d */ - 28, /* bunger_d */ - 48, /* bungei_d */ - 28, /* bungtr_d */ - 48, /* bungti_d */ - 28, /* bltgtr_d */ - 48, /* bltgti_d */ - 12, /* bordr_d */ - 32, /* bordi_d */ - 12, /* bunordr_d */ - 32, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_arm-sz.c b/jit/jit_arm-sz.c deleted file mode 100644 index 9f0d01282..000000000 --- a/jit/jit_arm-sz.c +++ /dev/null @@ -1,808 +0,0 @@ - -#if __WORDSIZE == 32 -#if defined(__ARM_PCS_VFP) -#define JIT_INSTR_MAX 48 - 0, /* data */ - 0, /* live */ - 2, /* align */ - 0, /* save */ - 0, /* load */ - 2, /* #name */ - 0, /* #note */ - 0, /* label */ - 34, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 16, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 8, /* addci */ - 4, /* addxr */ - 4, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 8, /* subci */ - 4, /* subxr */ - 4, /* subxi */ - 16, /* rsbi */ - 4, /* mulr */ - 12, /* muli */ - 4, /* qmulr */ - 12, /* qmuli */ - 4, /* qmulr_u */ - 8, /* qmuli_u */ - 40, /* divr */ - 48, /* divi */ - 40, /* divr_u */ - 44, /* divi_u */ - 34, /* qdivr */ - 38, /* qdivi */ - 34, /* qdivr_u */ - 38, /* qdivi_u */ - 40, /* remr */ - 48, /* remi */ - 40, /* remr_u */ - 44, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 14, /* ltr */ - 14, /* lti */ - 14, /* ltr_u */ - 14, /* lti_u */ - 14, /* ler */ - 14, /* lei */ - 14, /* ler_u */ - 14, /* lei_u */ - 14, /* eqr */ - 14, /* eqi */ - 14, /* ger */ - 14, /* gei */ - 14, /* ger_u */ - 14, /* gei_u */ - 14, /* gtr */ - 14, /* gti */ - 14, /* gtr_u */ - 14, /* gti_u */ - 14, /* ner */ - 14, /* nei */ - 4, /* movr */ - 8, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 8, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 4, /* ldxr_c */ - 12, /* ldxi_c */ - 4, /* ldxr_uc */ - 12, /* ldxi_uc */ - 4, /* ldxr_s */ - 12, /* ldxi_s */ - 4, /* ldxr_us */ - 12, /* ldxi_us */ - 4, /* ldxr_i */ - 12, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 4, /* stxr_c */ - 12, /* stxi_c */ - 4, /* stxr_s */ - 12, /* stxi_s */ - 4, /* stxr_i */ - 12, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 8, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 8, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 8, /* bmsr */ - 8, /* bmsi */ - 8, /* bmcr */ - 8, /* bmci */ - 8, /* boaddr */ - 8, /* boaddi */ - 8, /* boaddr_u */ - 8, /* boaddi_u */ - 8, /* bxaddr */ - 8, /* bxaddi */ - 8, /* bxaddr_u */ - 8, /* bxaddi_u */ - 8, /* bosubr */ - 8, /* bosubi */ - 8, /* bosubr_u */ - 8, /* bosubi_u */ - 8, /* bxsubr */ - 8, /* bxsubi */ - 8, /* bxsubr_u */ - 8, /* bxsubi_u */ - 4, /* jmpr */ - 8, /* jmpi */ - 4, /* callr */ - 20, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 24, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 8, /* addi_f */ - 4, /* subr_f */ - 8, /* subi_f */ - 8, /* rsbi_f */ - 4, /* mulr_f */ - 8, /* muli_f */ - 4, /* divr_f */ - 8, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 18, /* ltr_f */ - 30, /* lti_f */ - 20, /* ler_f */ - 32, /* lei_f */ - 18, /* eqr_f */ - 30, /* eqi_f */ - 18, /* ger_f */ - 30, /* gei_f */ - 18, /* gtr_f */ - 30, /* gti_f */ - 18, /* ner_f */ - 30, /* nei_f */ - 18, /* unltr_f */ - 30, /* unlti_f */ - 18, /* unler_f */ - 30, /* unlei_f */ - 24, /* uneqr_f */ - 36, /* uneqi_f */ - 18, /* unger_f */ - 30, /* ungei_f */ - 18, /* ungtr_f */ - 30, /* ungti_f */ - 24, /* ltgtr_f */ - 36, /* ltgti_f */ - 18, /* ordr_f */ - 30, /* ordi_f */ - 18, /* unordr_f */ - 30, /* unordi_f */ - 8, /* truncr_f_i */ - 0, /* truncr_f_l */ - 8, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 8, /* ldxr_f */ - 16, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 8, /* stxr_f */ - 16, /* stxi_f */ - 12, /* bltr_f */ - 24, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 24, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 12, /* bgtr_f */ - 24, /* bgti_f */ - 12, /* bner_f */ - 24, /* bnei_f */ - 16, /* bunltr_f */ - 28, /* bunlti_f */ - 16, /* bunler_f */ - 28, /* bunlei_f */ - 20, /* buneqr_f */ - 32, /* buneqi_f */ - 16, /* bunger_f */ - 28, /* bungei_f */ - 12, /* bungtr_f */ - 24, /* bungti_f */ - 20, /* bltgtr_f */ - 32, /* bltgti_f */ - 12, /* bordr_f */ - 24, /* bordi_f */ - 12, /* bunordr_f */ - 24, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 20, /* addi_d */ - 4, /* subr_d */ - 20, /* subi_d */ - 20, /* rsbi_d */ - 4, /* mulr_d */ - 20, /* muli_d */ - 4, /* divr_d */ - 20, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 18, /* ltr_d */ - 34, /* lti_d */ - 20, /* ler_d */ - 36, /* lei_d */ - 18, /* eqr_d */ - 34, /* eqi_d */ - 18, /* ger_d */ - 34, /* gei_d */ - 18, /* gtr_d */ - 34, /* gti_d */ - 18, /* ner_d */ - 34, /* nei_d */ - 18, /* unltr_d */ - 34, /* unlti_d */ - 18, /* unler_d */ - 34, /* unlei_d */ - 24, /* uneqr_d */ - 40, /* uneqi_d */ - 18, /* unger_d */ - 34, /* ungei_d */ - 18, /* ungtr_d */ - 34, /* ungti_d */ - 24, /* ltgtr_d */ - 40, /* ltgti_d */ - 18, /* ordr_d */ - 34, /* ordi_d */ - 18, /* unordr_d */ - 34, /* unordi_d */ - 8, /* truncr_d_i */ - 0, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 16, /* movi_d */ - 4, /* ldr_d */ - 12, /* ldi_d */ - 8, /* ldxr_d */ - 16, /* ldxi_d */ - 4, /* str_d */ - 12, /* sti_d */ - 8, /* stxr_d */ - 16, /* stxi_d */ - 12, /* bltr_d */ - 28, /* blti_d */ - 12, /* bler_d */ - 28, /* blei_d */ - 12, /* beqr_d */ - 28, /* beqi_d */ - 12, /* bger_d */ - 28, /* bgei_d */ - 12, /* bgtr_d */ - 28, /* bgti_d */ - 12, /* bner_d */ - 28, /* bnei_d */ - 16, /* bunltr_d */ - 32, /* bunlti_d */ - 16, /* bunler_d */ - 32, /* bunlei_d */ - 20, /* buneqr_d */ - 36, /* buneqi_d */ - 16, /* bunger_d */ - 32, /* bungei_d */ - 12, /* bungtr_d */ - 28, /* bungti_d */ - 20, /* bltgtr_d */ - 36, /* bltgti_d */ - 12, /* bordr_d */ - 28, /* bordi_d */ - 12, /* bunordr_d */ - 28, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 4, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 4, /* movr_d_ww */ - 12, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __ARM_PCS_VFP */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 32 -#if !defined(__ARM_PCS_VFP) -#define JIT_INSTR_MAX 160 - 0, /* data */ - 0, /* live */ - 2, /* align */ - 0, /* save */ - 0, /* load */ - 2, /* #name */ - 0, /* #note */ - 0, /* label */ - 30, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 28, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 8, /* addci */ - 4, /* addxr */ - 4, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 8, /* subci */ - 4, /* subxr */ - 4, /* subxi */ - 16, /* rsbi */ - 8, /* mulr */ - 12, /* muli */ - 4, /* qmulr */ - 12, /* qmuli */ - 4, /* qmulr_u */ - 8, /* qmuli_u */ - 40, /* divr */ - 48, /* divi */ - 40, /* divr_u */ - 44, /* divi_u */ - 34, /* qdivr */ - 38, /* qdivi */ - 34, /* qdivr_u */ - 38, /* qdivi_u */ - 40, /* remr */ - 48, /* remi */ - 40, /* remr_u */ - 44, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 14, /* ltr */ - 14, /* lti */ - 14, /* ltr_u */ - 14, /* lti_u */ - 14, /* ler */ - 14, /* lei */ - 14, /* ler_u */ - 14, /* lei_u */ - 14, /* eqr */ - 14, /* eqi */ - 14, /* ger */ - 14, /* gei */ - 14, /* ger_u */ - 14, /* gei_u */ - 14, /* gtr */ - 14, /* gti */ - 14, /* gtr_u */ - 14, /* gti_u */ - 14, /* ner */ - 14, /* nei */ - 4, /* movr */ - 8, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 8, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 20, /* htonr_us */ - 16, /* htonr_ui */ - 0, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 4, /* ldxr_c */ - 12, /* ldxi_c */ - 4, /* ldxr_uc */ - 12, /* ldxi_uc */ - 4, /* ldxr_s */ - 12, /* ldxi_s */ - 4, /* ldxr_us */ - 12, /* ldxi_us */ - 4, /* ldxr_i */ - 12, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 4, /* stxr_c */ - 12, /* stxi_c */ - 4, /* stxr_s */ - 12, /* stxi_s */ - 4, /* stxr_i */ - 12, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 8, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 8, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 8, /* bmsr */ - 8, /* bmsi */ - 8, /* bmcr */ - 8, /* bmci */ - 8, /* boaddr */ - 8, /* boaddi */ - 8, /* boaddr_u */ - 8, /* boaddi_u */ - 8, /* bxaddr */ - 8, /* bxaddi */ - 8, /* bxaddr_u */ - 8, /* bxaddi_u */ - 8, /* bosubr */ - 8, /* bosubi */ - 8, /* bosubr_u */ - 8, /* bosubi_u */ - 8, /* bxsubr */ - 8, /* bxsubi */ - 8, /* bxsubr_u */ - 8, /* bxsubi_u */ - 12, /* jmpr */ - 72, /* jmpi */ - 4, /* callr */ - 20, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 160, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 40, /* addr_f */ - 40, /* addi_f */ - 40, /* subr_f */ - 40, /* subi_f */ - 40, /* rsbi_f */ - 40, /* mulr_f */ - 40, /* muli_f */ - 40, /* divr_f */ - 40, /* divi_f */ - 12, /* negr_f */ - 12, /* absr_f */ - 36, /* sqrtr_f */ - 40, /* ltr_f */ - 44, /* lti_f */ - 40, /* ler_f */ - 44, /* lei_f */ - 40, /* eqr_f */ - 44, /* eqi_f */ - 40, /* ger_f */ - 44, /* gei_f */ - 40, /* gtr_f */ - 44, /* gti_f */ - 44, /* ner_f */ - 48, /* nei_f */ - 72, /* unltr_f */ - 80, /* unlti_f */ - 72, /* unler_f */ - 80, /* unlei_f */ - 72, /* uneqr_f */ - 80, /* uneqi_f */ - 72, /* unger_f */ - 80, /* ungei_f */ - 72, /* ungtr_f */ - 80, /* ungti_f */ - 76, /* ltgtr_f */ - 84, /* ltgti_f */ - 44, /* ordr_f */ - 48, /* ordi_f */ - 72, /* unordr_f */ - 80, /* unordi_f */ - 36, /* truncr_f_i */ - 0, /* truncr_f_l */ - 36, /* extr_f */ - 38, /* extr_d_f */ - 8, /* movr_f */ - 12, /* movi_f */ - 8, /* ldr_f */ - 16, /* ldi_f */ - 8, /* ldxr_f */ - 16, /* ldxi_f */ - 8, /* str_f */ - 16, /* sti_f */ - 8, /* stxr_f */ - 16, /* stxi_f */ - 44, /* bltr_f */ - 48, /* blti_f */ - 44, /* bler_f */ - 48, /* blei_f */ - 44, /* beqr_f */ - 52, /* beqi_f */ - 44, /* bger_f */ - 48, /* bgei_f */ - 44, /* bgtr_f */ - 48, /* bgti_f */ - 44, /* bner_f */ - 48, /* bnei_f */ - 44, /* bunltr_f */ - 48, /* bunlti_f */ - 44, /* bunler_f */ - 48, /* bunlei_f */ - 76, /* buneqr_f */ - 84, /* buneqi_f */ - 44, /* bunger_f */ - 48, /* bungei_f */ - 44, /* bungtr_f */ - 48, /* bungti_f */ - 76, /* bltgtr_f */ - 84, /* bltgti_f */ - 44, /* bordr_f */ - 48, /* bordi_f */ - 44, /* bunordr_f */ - 48, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 50, /* addr_d */ - 52, /* addi_d */ - 50, /* subr_d */ - 52, /* subi_d */ - 52, /* rsbi_d */ - 50, /* mulr_d */ - 52, /* muli_d */ - 50, /* divr_d */ - 52, /* divi_d */ - 20, /* negr_d */ - 20, /* absr_d */ - 42, /* sqrtr_d */ - 44, /* ltr_d */ - 48, /* lti_d */ - 44, /* ler_d */ - 48, /* lei_d */ - 44, /* eqr_d */ - 48, /* eqi_d */ - 44, /* ger_d */ - 48, /* gei_d */ - 44, /* gtr_d */ - 48, /* gti_d */ - 48, /* ner_d */ - 52, /* nei_d */ - 82, /* unltr_d */ - 88, /* unlti_d */ - 82, /* unler_d */ - 88, /* unlei_d */ - 82, /* uneqr_d */ - 88, /* uneqi_d */ - 82, /* unger_d */ - 88, /* ungei_d */ - 82, /* ungtr_d */ - 88, /* ungti_d */ - 86, /* ltgtr_d */ - 92, /* ltgti_d */ - 48, /* ordr_d */ - 52, /* ordi_d */ - 82, /* unordr_d */ - 88, /* unordi_d */ - 36, /* truncr_d_i */ - 0, /* truncr_d_l */ - 36, /* extr_d */ - 38, /* extr_f_d */ - 16, /* movr_d */ - 20, /* movi_d */ - 16, /* ldr_d */ - 24, /* ldi_d */ - 20, /* ldxr_d */ - 28, /* ldxi_d */ - 16, /* str_d */ - 24, /* sti_d */ - 20, /* stxr_d */ - 28, /* stxi_d */ - 48, /* bltr_d */ - 52, /* blti_d */ - 48, /* bler_d */ - 52, /* blei_d */ - 48, /* beqr_d */ - 60, /* beqi_d */ - 48, /* bger_d */ - 52, /* bgei_d */ - 48, /* bgtr_d */ - 52, /* bgti_d */ - 48, /* bner_d */ - 52, /* bnei_d */ - 48, /* bunltr_d */ - 52, /* bunlti_d */ - 48, /* bunler_d */ - 52, /* bunlei_d */ - 84, /* buneqr_d */ - 92, /* buneqi_d */ - 48, /* bunger_d */ - 52, /* bungei_d */ - 48, /* bungtr_d */ - 52, /* bungti_d */ - 84, /* bltgtr_d */ - 92, /* bltgti_d */ - 48, /* bordr_d */ - 52, /* bordi_d */ - 48, /* bunordr_d */ - 52, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 4, /* movr_w_f */ - 8, /* movr_ww_d */ - 0, /* movr_w_d */ - 8, /* movr_f_w */ - 8, /* movi_f_w */ - 16, /* movr_d_ww */ - 12, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __ARM_PCS_VFP */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_hppa-sz.c b/jit/jit_hppa-sz.c deleted file mode 100644 index 3c04f6372..000000000 --- a/jit/jit_hppa-sz.c +++ /dev/null @@ -1,402 +0,0 @@ - -#if __WORDSIZE == 32 -#define JIT_INSTR_MAX 64 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 64, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 12, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 12, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 16, /* rsbi */ - 28, /* mulr */ - 36, /* muli */ - 40, /* qmulr */ - 44, /* qmuli */ - 32, /* qmulr_u */ - 40, /* qmuli_u */ - 36, /* divr */ - 40, /* divi */ - 36, /* divr_u */ - 40, /* divi_u */ - 40, /* qdivr */ - 40, /* qdivi */ - 40, /* qdivr_u */ - 40, /* qdivi_u */ - 36, /* remr */ - 40, /* remi */ - 36, /* remr_u */ - 40, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 12, /* lshr */ - 4, /* lshi */ - 12, /* rshr */ - 4, /* rshi */ - 12, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 8, /* ltr */ - 8, /* lti */ - 8, /* ltr_u */ - 8, /* lti_u */ - 8, /* ler */ - 8, /* lei */ - 8, /* ler_u */ - 8, /* lei_u */ - 8, /* eqr */ - 12, /* eqi */ - 8, /* ger */ - 8, /* gei */ - 8, /* ger_u */ - 8, /* gei_u */ - 8, /* gtr */ - 8, /* gti */ - 8, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 8, /* nei */ - 4, /* movr */ - 8, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_l */ - 8, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 8, /* ldi_uc */ - 8, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 8, /* ldi_us */ - 4, /* ldr_i */ - 8, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 8, /* ldxr_c */ - 8, /* ldxi_c */ - 4, /* ldxr_uc */ - 4, /* ldxi_uc */ - 8, /* ldxr_s */ - 8, /* ldxi_s */ - 4, /* ldxr_us */ - 4, /* ldxi_us */ - 4, /* ldxr_i */ - 4, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 8, /* sti_c */ - 4, /* str_s */ - 8, /* sti_s */ - 4, /* str_i */ - 8, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 8, /* stxr_c */ - 4, /* stxi_c */ - 8, /* stxr_s */ - 4, /* stxi_s */ - 8, /* stxr_i */ - 4, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 8, /* blti_u */ - 8, /* bler */ - 12, /* blei */ - 8, /* bler_u */ - 8, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 16, /* bmsi */ - 12, /* bmcr */ - 16, /* bmci */ - 8, /* boaddr */ - 8, /* boaddi */ - 8, /* boaddr_u */ - 8, /* boaddi_u */ - 8, /* bxaddr */ - 8, /* bxaddi */ - 8, /* bxaddr_u */ - 8, /* bxaddi_u */ - 12, /* bosubr */ - 16, /* bosubi */ - 16, /* bosubr_u */ - 20, /* bosubi_u */ - 12, /* bxsubr */ - 16, /* bxsubi */ - 16, /* bxsubr_u */ - 20, /* bxsubi_u */ - 0, /* jmpr */ - 12, /* jmpi */ - 40, /* callr */ - 44, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 64, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 28, /* lti_f */ - 16, /* ler_f */ - 28, /* lei_f */ - 16, /* eqr_f */ - 28, /* eqi_f */ - 16, /* ger_f */ - 28, /* gei_f */ - 16, /* gtr_f */ - 28, /* gti_f */ - 16, /* ner_f */ - 28, /* nei_f */ - 16, /* unltr_f */ - 28, /* unlti_f */ - 16, /* unler_f */ - 28, /* unlei_f */ - 16, /* uneqr_f */ - 28, /* uneqi_f */ - 16, /* unger_f */ - 28, /* ungei_f */ - 16, /* ungtr_f */ - 28, /* ungti_f */ - 16, /* ltgtr_f */ - 28, /* ltgti_f */ - 16, /* ordr_f */ - 28, /* ordi_f */ - 16, /* unordr_f */ - 28, /* unordi_f */ - 12, /* truncr_f_i */ - 0, /* truncr_f_l */ - 12, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 4, /* ldxr_f */ - 4, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 8, /* stxr_f */ - 4, /* stxi_f */ - 16, /* bltr_f */ - 28, /* blti_f */ - 16, /* bler_f */ - 28, /* blei_f */ - 16, /* beqr_f */ - 28, /* beqi_f */ - 16, /* bger_f */ - 28, /* bgei_f */ - 16, /* bgtr_f */ - 28, /* bgti_f */ - 16, /* bner_f */ - 28, /* bnei_f */ - 16, /* bunltr_f */ - 28, /* bunlti_f */ - 16, /* bunler_f */ - 28, /* bunlei_f */ - 16, /* buneqr_f */ - 28, /* buneqi_f */ - 16, /* bunger_f */ - 28, /* bungei_f */ - 16, /* bungtr_f */ - 28, /* bungti_f */ - 16, /* bltgtr_f */ - 28, /* bltgti_f */ - 16, /* bordr_f */ - 28, /* bordi_f */ - 16, /* bunordr_f */ - 28, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 24, /* addi_d */ - 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ - 4, /* mulr_d */ - 24, /* muli_d */ - 4, /* divr_d */ - 24, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 36, /* lti_d */ - 16, /* ler_d */ - 36, /* lei_d */ - 16, /* eqr_d */ - 36, /* eqi_d */ - 16, /* ger_d */ - 36, /* gei_d */ - 16, /* gtr_d */ - 36, /* gti_d */ - 16, /* ner_d */ - 36, /* nei_d */ - 16, /* unltr_d */ - 36, /* unlti_d */ - 16, /* unler_d */ - 36, /* unlei_d */ - 16, /* uneqr_d */ - 36, /* uneqi_d */ - 16, /* unger_d */ - 36, /* ungei_d */ - 16, /* ungtr_d */ - 36, /* ungti_d */ - 16, /* ltgtr_d */ - 36, /* ltgti_d */ - 16, /* ordr_d */ - 36, /* ordi_d */ - 16, /* unordr_d */ - 36, /* unordi_d */ - 12, /* truncr_d_i */ - 0, /* truncr_d_l */ - 12, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 20, /* movi_d */ - 4, /* ldr_d */ - 12, /* ldi_d */ - 4, /* ldxr_d */ - 4, /* ldxi_d */ - 4, /* str_d */ - 12, /* sti_d */ - 8, /* stxr_d */ - 4, /* stxi_d */ - 16, /* bltr_d */ - 36, /* blti_d */ - 16, /* bler_d */ - 36, /* blei_d */ - 16, /* beqr_d */ - 36, /* beqi_d */ - 16, /* bger_d */ - 36, /* bgei_d */ - 16, /* bgtr_d */ - 36, /* bgti_d */ - 16, /* bner_d */ - 36, /* bnei_d */ - 16, /* bunltr_d */ - 36, /* bunlti_d */ - 16, /* bunler_d */ - 36, /* bunlei_d */ - 16, /* buneqr_d */ - 36, /* buneqi_d */ - 16, /* bunger_d */ - 36, /* bungei_d */ - 16, /* bungtr_d */ - 36, /* bungti_d */ - 16, /* bltgtr_d */ - 36, /* bltgti_d */ - 16, /* bordr_d */ - 36, /* bordi_d */ - 16, /* bunordr_d */ - 36, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_ia64-sz.c b/jit/jit_ia64-sz.c deleted file mode 100644 index 59826d99d..000000000 --- a/jit/jit_ia64-sz.c +++ /dev/null @@ -1,402 +0,0 @@ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 224 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 224, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 16, /* va_start */ - 32, /* va_arg */ - 32, /* va_arg_d */ - 0, /* va_end */ - 16, /* addr */ - 32, /* addi */ - 32, /* addcr */ - 48, /* addci */ - 64, /* addxr */ - 64, /* addxi */ - 16, /* subr */ - 32, /* subi */ - 32, /* subcr */ - 48, /* subci */ - 64, /* subxr */ - 64, /* subxi */ - 32, /* rsbi */ - 48, /* mulr */ - 64, /* muli */ - 112, /* qmulr */ - 112, /* qmuli */ - 112, /* qmulr_u */ - 112, /* qmuli_u */ - 80, /* divr */ - 96, /* divi */ - 80, /* divr_u */ - 96, /* divi_u */ - 144, /* qdivr */ - 144, /* qdivi */ - 144, /* qdivr_u */ - 144, /* qdivi_u */ - 80, /* remr */ - 96, /* remi */ - 80, /* remr_u */ - 96, /* remi_u */ - 16, /* andr */ - 32, /* andi */ - 16, /* orr */ - 32, /* ori */ - 16, /* xorr */ - 32, /* xori */ - 16, /* lshr */ - 16, /* lshi */ - 16, /* rshr */ - 16, /* rshi */ - 16, /* rshr_u */ - 16, /* rshi_u */ - 16, /* negr */ - 16, /* comr */ - 32, /* ltr */ - 32, /* lti */ - 32, /* ltr_u */ - 32, /* lti_u */ - 32, /* ler */ - 32, /* lei */ - 32, /* ler_u */ - 32, /* lei_u */ - 32, /* eqr */ - 32, /* eqi */ - 32, /* ger */ - 32, /* gei */ - 32, /* ger_u */ - 32, /* gei_u */ - 32, /* gtr */ - 32, /* gti */ - 32, /* gtr_u */ - 32, /* gti_u */ - 32, /* ner */ - 32, /* nei */ - 16, /* movr */ - 16, /* movi */ - 16, /* extr_c */ - 16, /* extr_uc */ - 16, /* extr_s */ - 16, /* extr_us */ - 16, /* extr_i */ - 16, /* extr_ui */ - 64, /* htonr_us */ - 160, /* htonr_ui */ - 16, /* htonr_ul */ - 16, /* ldr_c */ - 32, /* ldi_c */ - 16, /* ldr_uc */ - 32, /* ldi_uc */ - 16, /* ldr_s */ - 32, /* ldi_s */ - 16, /* ldr_us */ - 32, /* ldi_us */ - 16, /* ldr_i */ - 32, /* ldi_i */ - 16, /* ldr_ui */ - 32, /* ldi_ui */ - 16, /* ldr_l */ - 32, /* ldi_l */ - 32, /* ldxr_c */ - 48, /* ldxi_c */ - 16, /* ldxr_uc */ - 32, /* ldxi_uc */ - 32, /* ldxr_s */ - 48, /* ldxi_s */ - 16, /* ldxr_us */ - 32, /* ldxi_us */ - 32, /* ldxr_i */ - 48, /* ldxi_i */ - 16, /* ldxr_ui */ - 32, /* ldxi_ui */ - 16, /* ldxr_l */ - 32, /* ldxi_l */ - 16, /* str_c */ - 32, /* sti_c */ - 16, /* str_s */ - 32, /* sti_s */ - 16, /* str_i */ - 32, /* sti_i */ - 16, /* str_l */ - 32, /* sti_l */ - 16, /* stxr_c */ - 32, /* stxi_c */ - 16, /* stxr_s */ - 32, /* stxi_s */ - 16, /* stxr_i */ - 32, /* stxi_i */ - 16, /* stxr_l */ - 32, /* stxi_l */ - 32, /* bltr */ - 32, /* blti */ - 32, /* bltr_u */ - 32, /* blti_u */ - 32, /* bler */ - 32, /* blei */ - 32, /* bler_u */ - 32, /* blei_u */ - 32, /* beqr */ - 48, /* beqi */ - 32, /* bger */ - 32, /* bgei */ - 32, /* bger_u */ - 32, /* bgei_u */ - 32, /* bgtr */ - 32, /* bgti */ - 32, /* bgtr_u */ - 32, /* bgti_u */ - 32, /* bner */ - 48, /* bnei */ - 32, /* bmsr */ - 48, /* bmsi */ - 32, /* bmcr */ - 48, /* bmci */ - 96, /* boaddr */ - 112, /* boaddi */ - 64, /* boaddr_u */ - 64, /* boaddi_u */ - 96, /* bxaddr */ - 112, /* bxaddi */ - 64, /* bxaddr_u */ - 64, /* bxaddi_u */ - 112, /* bosubr */ - 112, /* bosubi */ - 64, /* bosubr_u */ - 64, /* bosubi_u */ - 112, /* bxsubr */ - 112, /* bxsubi */ - 64, /* bxsubr_u */ - 64, /* bxsubi_u */ - 16, /* jmpr */ - 16, /* jmpi */ - 32, /* callr */ - 48, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 128, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 16, /* addr_f */ - 48, /* addi_f */ - 16, /* subr_f */ - 48, /* subi_f */ - 48, /* rsbi_f */ - 16, /* mulr_f */ - 48, /* muli_f */ - 160, /* divr_f */ - 192, /* divi_f */ - 16, /* negr_f */ - 16, /* absr_f */ - 80, /* sqrtr_f */ - 32, /* ltr_f */ - 64, /* lti_f */ - 32, /* ler_f */ - 64, /* lei_f */ - 32, /* eqr_f */ - 64, /* eqi_f */ - 32, /* ger_f */ - 64, /* gei_f */ - 32, /* gtr_f */ - 64, /* gti_f */ - 32, /* ner_f */ - 64, /* nei_f */ - 32, /* unltr_f */ - 64, /* unlti_f */ - 32, /* unler_f */ - 64, /* unlei_f */ - 48, /* uneqr_f */ - 96, /* uneqi_f */ - 32, /* unger_f */ - 64, /* ungei_f */ - 32, /* ungtr_f */ - 64, /* ungti_f */ - 48, /* ltgtr_f */ - 96, /* ltgti_f */ - 32, /* ordr_f */ - 64, /* ordi_f */ - 32, /* unordr_f */ - 64, /* unordi_f */ - 32, /* truncr_f_i */ - 32, /* truncr_f_l */ - 48, /* extr_f */ - 16, /* extr_d_f */ - 16, /* movr_f */ - 32, /* movi_f */ - 16, /* ldr_f */ - 32, /* ldi_f */ - 16, /* ldxr_f */ - 32, /* ldxi_f */ - 16, /* str_f */ - 32, /* sti_f */ - 16, /* stxr_f */ - 32, /* stxi_f */ - 32, /* bltr_f */ - 64, /* blti_f */ - 32, /* bler_f */ - 64, /* blei_f */ - 32, /* beqr_f */ - 64, /* beqi_f */ - 32, /* bger_f */ - 64, /* bgei_f */ - 32, /* bgtr_f */ - 64, /* bgti_f */ - 32, /* bner_f */ - 64, /* bnei_f */ - 32, /* bunltr_f */ - 64, /* bunlti_f */ - 32, /* bunler_f */ - 64, /* bunlei_f */ - 80, /* buneqr_f */ - 112, /* buneqi_f */ - 32, /* bunger_f */ - 64, /* bungei_f */ - 32, /* bungtr_f */ - 64, /* bungti_f */ - 80, /* bltgtr_f */ - 112, /* bltgti_f */ - 32, /* bordr_f */ - 64, /* bordi_f */ - 32, /* bunordr_f */ - 64, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 16, /* addr_d */ - 48, /* addi_d */ - 16, /* subr_d */ - 48, /* subi_d */ - 48, /* rsbi_d */ - 16, /* mulr_d */ - 48, /* muli_d */ - 160, /* divr_d */ - 192, /* divi_d */ - 16, /* negr_d */ - 16, /* absr_d */ - 80, /* sqrtr_d */ - 32, /* ltr_d */ - 64, /* lti_d */ - 32, /* ler_d */ - 64, /* lei_d */ - 32, /* eqr_d */ - 64, /* eqi_d */ - 32, /* ger_d */ - 64, /* gei_d */ - 32, /* gtr_d */ - 64, /* gti_d */ - 32, /* ner_d */ - 64, /* nei_d */ - 32, /* unltr_d */ - 64, /* unlti_d */ - 32, /* unler_d */ - 64, /* unlei_d */ - 48, /* uneqr_d */ - 96, /* uneqi_d */ - 32, /* unger_d */ - 64, /* ungei_d */ - 32, /* ungtr_d */ - 64, /* ungti_d */ - 48, /* ltgtr_d */ - 96, /* ltgti_d */ - 32, /* ordr_d */ - 64, /* ordi_d */ - 32, /* unordr_d */ - 64, /* unordi_d */ - 32, /* truncr_d_i */ - 32, /* truncr_d_l */ - 48, /* extr_d */ - 16, /* extr_f_d */ - 16, /* movr_d */ - 32, /* movi_d */ - 16, /* ldr_d */ - 32, /* ldi_d */ - 16, /* ldxr_d */ - 32, /* ldxi_d */ - 16, /* str_d */ - 32, /* sti_d */ - 16, /* stxr_d */ - 32, /* stxi_d */ - 32, /* bltr_d */ - 64, /* blti_d */ - 32, /* bler_d */ - 64, /* blei_d */ - 32, /* beqr_d */ - 64, /* beqi_d */ - 32, /* bger_d */ - 64, /* bgei_d */ - 32, /* bgtr_d */ - 64, /* bgti_d */ - 32, /* bner_d */ - 64, /* bnei_d */ - 32, /* bunltr_d */ - 64, /* bunlti_d */ - 32, /* bunler_d */ - 64, /* bunlei_d */ - 80, /* buneqr_d */ - 112, /* buneqi_d */ - 32, /* bunger_d */ - 64, /* bungei_d */ - 32, /* bungtr_d */ - 64, /* bungti_d */ - 80, /* bltgtr_d */ - 112, /* bltgti_d */ - 32, /* bordr_d */ - 64, /* bordi_d */ - 32, /* bunordr_d */ - 64, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 16, /* movr_d_w */ - 32, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_mips-sz.c b/jit/jit_mips-sz.c deleted file mode 100644 index 613aa0090..000000000 --- a/jit/jit_mips-sz.c +++ /dev/null @@ -1,1210 +0,0 @@ - -#if __WORDSIZE == 32 -#if NEW_ABI -#define JIT_INSTR_MAX 44 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 44, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 12, /* addcr */ - 20, /* addci */ - 28, /* addxr */ - 28, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 12, /* subcr */ - 20, /* subci */ - 28, /* subxr */ - 28, /* subxi */ - 16, /* rsbi */ - 8, /* mulr */ - 16, /* muli */ - 12, /* qmulr */ - 20, /* qmuli */ - 12, /* qmulr_u */ - 20, /* qmuli_u */ - 8, /* divr */ - 16, /* divi */ - 8, /* divr_u */ - 16, /* divi_u */ - 12, /* qdivr */ - 16, /* qdivi */ - 12, /* qdivr_u */ - 16, /* qdivi_u */ - 8, /* remr */ - 16, /* remi */ - 8, /* remr_u */ - 16, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 8, /* comr */ - 4, /* ltr */ - 4, /* lti */ - 4, /* ltr_u */ - 4, /* lti_u */ - 8, /* ler */ - 12, /* lei */ - 8, /* ler_u */ - 12, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 8, /* ger */ - 12, /* gei */ - 8, /* ger_u */ - 12, /* gei_u */ - 4, /* gtr */ - 8, /* gti */ - 4, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 8, /* nei */ - 4, /* movr */ - 8, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 8, /* ldxr_c */ - 4, /* ldxi_c */ - 8, /* ldxr_uc */ - 4, /* ldxi_uc */ - 8, /* ldxr_s */ - 4, /* ldxi_s */ - 8, /* ldxr_us */ - 4, /* ldxi_us */ - 8, /* ldxr_i */ - 4, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 8, /* stxr_c */ - 4, /* stxi_c */ - 8, /* stxr_s */ - 4, /* stxi_s */ - 8, /* stxr_i */ - 4, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 12, /* bltr */ - 12, /* blti */ - 12, /* bltr_u */ - 12, /* blti_u */ - 12, /* bler */ - 16, /* blei */ - 12, /* bler_u */ - 16, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 12, /* bger */ - 12, /* bgei */ - 12, /* bger_u */ - 12, /* bgei_u */ - 12, /* bgtr */ - 16, /* bgti */ - 12, /* bgtr_u */ - 16, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 28, /* boaddr */ - 28, /* boaddi */ - 16, /* boaddr_u */ - 20, /* boaddi_u */ - 28, /* bxaddr */ - 28, /* bxaddi */ - 16, /* bxaddr_u */ - 20, /* bxaddi_u */ - 28, /* bosubr */ - 28, /* bosubi */ - 16, /* bosubr_u */ - 20, /* bosubi_u */ - 28, /* bxsubr */ - 28, /* bxsubi */ - 16, /* bxsubr_u */ - 20, /* bxsubi_u */ - 0, /* jmpr */ - 8, /* jmpi */ - 12, /* callr */ - 16, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 44, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 28, /* lti_f */ - 16, /* ler_f */ - 28, /* lei_f */ - 16, /* eqr_f */ - 28, /* eqi_f */ - 16, /* ger_f */ - 28, /* gei_f */ - 16, /* gtr_f */ - 28, /* gti_f */ - 16, /* ner_f */ - 28, /* nei_f */ - 16, /* unltr_f */ - 28, /* unlti_f */ - 16, /* unler_f */ - 28, /* unlei_f */ - 16, /* uneqr_f */ - 28, /* uneqi_f */ - 16, /* unger_f */ - 28, /* ungei_f */ - 16, /* ungtr_f */ - 28, /* ungti_f */ - 16, /* ltgtr_f */ - 28, /* ltgti_f */ - 16, /* ordr_f */ - 28, /* ordi_f */ - 16, /* unordr_f */ - 28, /* unordi_f */ - 8, /* truncr_f_i */ - 0, /* truncr_f_l */ - 8, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 8, /* ldxr_f */ - 4, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 8, /* stxr_f */ - 4, /* stxi_f */ - 12, /* bltr_f */ - 24, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 24, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 12, /* bgtr_f */ - 24, /* bgti_f */ - 12, /* bner_f */ - 24, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ - 12, /* bunler_f */ - 24, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_f */ - 12, /* bunger_f */ - 24, /* bungei_f */ - 12, /* bungtr_f */ - 24, /* bungti_f */ - 12, /* bltgtr_f */ - 24, /* bltgti_f */ - 12, /* bordr_f */ - 24, /* bordi_f */ - 12, /* bunordr_f */ - 24, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 16, /* addi_d */ - 4, /* subr_d */ - 16, /* subi_d */ - 16, /* rsbi_d */ - 4, /* mulr_d */ - 16, /* muli_d */ - 4, /* divr_d */ - 16, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 28, /* lti_d */ - 16, /* ler_d */ - 28, /* lei_d */ - 16, /* eqr_d */ - 28, /* eqi_d */ - 16, /* ger_d */ - 28, /* gei_d */ - 16, /* gtr_d */ - 28, /* gti_d */ - 16, /* ner_d */ - 28, /* nei_d */ - 16, /* unltr_d */ - 28, /* unlti_d */ - 16, /* unler_d */ - 28, /* unlei_d */ - 16, /* uneqr_d */ - 28, /* uneqi_d */ - 16, /* unger_d */ - 28, /* ungei_d */ - 16, /* ungtr_d */ - 28, /* ungti_d */ - 16, /* ltgtr_d */ - 28, /* ltgti_d */ - 16, /* ordr_d */ - 28, /* ordi_d */ - 16, /* unordr_d */ - 28, /* unordi_d */ - 8, /* truncr_d_i */ - 0, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 12, /* movi_d */ - 4, /* ldr_d */ - 12, /* ldi_d */ - 8, /* ldxr_d */ - 4, /* ldxi_d */ - 4, /* str_d */ - 12, /* sti_d */ - 8, /* stxr_d */ - 4, /* stxi_d */ - 12, /* bltr_d */ - 24, /* blti_d */ - 12, /* bler_d */ - 24, /* blei_d */ - 12, /* beqr_d */ - 24, /* beqi_d */ - 12, /* bger_d */ - 24, /* bgei_d */ - 12, /* bgtr_d */ - 24, /* bgti_d */ - 12, /* bner_d */ - 24, /* bnei_d */ - 12, /* bunltr_d */ - 24, /* bunlti_d */ - 12, /* bunler_d */ - 24, /* bunlei_d */ - 12, /* buneqr_d */ - 24, /* buneqi_d */ - 12, /* bunger_d */ - 24, /* bungei_d */ - 12, /* bungtr_d */ - 24, /* bungti_d */ - 12, /* bltgtr_d */ - 24, /* bltgti_d */ - 12, /* bordr_d */ - 24, /* bordi_d */ - 12, /* bunordr_d */ - 24, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 4, /* movr_d_w */ - 12, /* movi_d_w */ -#endif /* NEW_ABI */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 32 -#if !NEW_ABI -#define JIT_INSTR_MAX 116 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 116, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 20, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 12, /* addcr */ - 20, /* addci */ - 28, /* addxr */ - 28, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 12, /* subcr */ - 20, /* subci */ - 28, /* subxr */ - 28, /* subxi */ - 16, /* rsbi */ - 8, /* mulr */ - 16, /* muli */ - 12, /* qmulr */ - 20, /* qmuli */ - 12, /* qmulr_u */ - 20, /* qmuli_u */ - 8, /* divr */ - 16, /* divi */ - 8, /* divr_u */ - 16, /* divi_u */ - 12, /* qdivr */ - 16, /* qdivi */ - 12, /* qdivr_u */ - 16, /* qdivi_u */ - 8, /* remr */ - 16, /* remi */ - 8, /* remr_u */ - 16, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 8, /* comr */ - 4, /* ltr */ - 4, /* lti */ - 4, /* ltr_u */ - 4, /* lti_u */ - 8, /* ler */ - 12, /* lei */ - 8, /* ler_u */ - 12, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 8, /* ger */ - 12, /* gei */ - 8, /* ger_u */ - 12, /* gei_u */ - 4, /* gtr */ - 8, /* gti */ - 4, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 8, /* nei */ - 4, /* movr */ - 8, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 20, /* htonr_us */ - 52, /* htonr_ui */ - 0, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 8, /* ldxr_c */ - 16, /* ldxi_c */ - 8, /* ldxr_uc */ - 16, /* ldxi_uc */ - 8, /* ldxr_s */ - 16, /* ldxi_s */ - 8, /* ldxr_us */ - 16, /* ldxi_us */ - 8, /* ldxr_i */ - 16, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 8, /* stxr_c */ - 16, /* stxi_c */ - 8, /* stxr_s */ - 16, /* stxi_s */ - 8, /* stxr_i */ - 16, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 12, /* bltr */ - 12, /* blti */ - 12, /* bltr_u */ - 12, /* blti_u */ - 12, /* bler */ - 16, /* blei */ - 12, /* bler_u */ - 16, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 12, /* bger */ - 12, /* bgei */ - 12, /* bger_u */ - 12, /* bgei_u */ - 12, /* bgtr */ - 16, /* bgti */ - 12, /* bgtr_u */ - 16, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 28, /* boaddr */ - 28, /* boaddi */ - 16, /* boaddr_u */ - 20, /* boaddi_u */ - 28, /* bxaddr */ - 28, /* bxaddi */ - 16, /* bxaddr_u */ - 20, /* bxaddi_u */ - 28, /* bosubr */ - 28, /* bosubi */ - 16, /* bosubr_u */ - 20, /* bosubi_u */ - 28, /* bxsubr */ - 28, /* bxsubi */ - 16, /* bxsubr_u */ - 20, /* bxsubi_u */ - 8, /* jmpr */ - 8, /* jmpi */ - 12, /* callr */ - 16, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 116, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 28, /* lti_f */ - 16, /* ler_f */ - 28, /* lei_f */ - 16, /* eqr_f */ - 28, /* eqi_f */ - 16, /* ger_f */ - 28, /* gei_f */ - 16, /* gtr_f */ - 28, /* gti_f */ - 16, /* ner_f */ - 28, /* nei_f */ - 16, /* unltr_f */ - 28, /* unlti_f */ - 16, /* unler_f */ - 28, /* unlei_f */ - 16, /* uneqr_f */ - 28, /* uneqi_f */ - 16, /* unger_f */ - 28, /* ungei_f */ - 16, /* ungtr_f */ - 28, /* ungti_f */ - 16, /* ltgtr_f */ - 28, /* ltgti_f */ - 16, /* ordr_f */ - 28, /* ordi_f */ - 16, /* unordr_f */ - 28, /* unordi_f */ - 8, /* truncr_f_i */ - 0, /* truncr_f_l */ - 8, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 8, /* ldxr_f */ - 16, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 8, /* stxr_f */ - 16, /* stxi_f */ - 12, /* bltr_f */ - 24, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 24, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 12, /* bgtr_f */ - 24, /* bgti_f */ - 12, /* bner_f */ - 24, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ - 12, /* bunler_f */ - 24, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_f */ - 12, /* bunger_f */ - 24, /* bungei_f */ - 12, /* bungtr_f */ - 24, /* bungti_f */ - 12, /* bltgtr_f */ - 24, /* bltgti_f */ - 12, /* bordr_f */ - 24, /* bordi_f */ - 12, /* bunordr_f */ - 24, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 20, /* addi_d */ - 4, /* subr_d */ - 20, /* subi_d */ - 20, /* rsbi_d */ - 4, /* mulr_d */ - 20, /* muli_d */ - 4, /* divr_d */ - 20, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 40, /* lti_d */ - 16, /* ler_d */ - 40, /* lei_d */ - 16, /* eqr_d */ - 40, /* eqi_d */ - 16, /* ger_d */ - 40, /* gei_d */ - 16, /* gtr_d */ - 40, /* gti_d */ - 16, /* ner_d */ - 40, /* nei_d */ - 16, /* unltr_d */ - 40, /* unlti_d */ - 16, /* unler_d */ - 40, /* unlei_d */ - 16, /* uneqr_d */ - 40, /* uneqi_d */ - 16, /* unger_d */ - 40, /* ungei_d */ - 16, /* ungtr_d */ - 40, /* ungti_d */ - 16, /* ltgtr_d */ - 40, /* ltgti_d */ - 16, /* ordr_d */ - 40, /* ordi_d */ - 16, /* unordr_d */ - 40, /* unordi_d */ - 8, /* truncr_d_i */ - 0, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 24, /* movi_d */ - 8, /* ldr_d */ - 16, /* ldi_d */ - 12, /* ldxr_d */ - 20, /* ldxi_d */ - 8, /* str_d */ - 16, /* sti_d */ - 12, /* stxr_d */ - 20, /* stxi_d */ - 12, /* bltr_d */ - 28, /* blti_d */ - 12, /* bler_d */ - 28, /* blei_d */ - 12, /* beqr_d */ - 28, /* beqi_d */ - 12, /* bger_d */ - 28, /* bgei_d */ - 12, /* bgtr_d */ - 28, /* bgti_d */ - 12, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ - 12, /* bunler_d */ - 36, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_d */ - 12, /* bunger_d */ - 36, /* bungei_d */ - 12, /* bungtr_d */ - 36, /* bungti_d */ - 12, /* bltgtr_d */ - 28, /* bltgti_d */ - 12, /* bordr_d */ - 28, /* bordi_d */ - 12, /* bunordr_d */ - 36, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 4, /* movr_w_f */ - 8, /* movr_ww_d */ - 0, /* movr_w_d */ - 4, /* movr_f_w */ - 4, /* movi_f_w */ - 8, /* movr_d_ww */ - 8, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* NEW_ABI */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 44 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 44, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 28, /* addi */ - 12, /* addcr */ - 36, /* addci */ - 28, /* addxr */ - 28, /* addxi */ - 4, /* subr */ - 28, /* subi */ - 12, /* subcr */ - 36, /* subci */ - 28, /* subxr */ - 28, /* subxi */ - 32, /* rsbi */ - 8, /* mulr */ - 32, /* muli */ - 12, /* qmulr */ - 32, /* qmuli */ - 12, /* qmulr_u */ - 32, /* qmuli_u */ - 8, /* divr */ - 32, /* divi */ - 8, /* divr_u */ - 32, /* divi_u */ - 12, /* qdivr */ - 16, /* qdivi */ - 12, /* qdivr_u */ - 16, /* qdivi_u */ - 8, /* remr */ - 32, /* remi */ - 8, /* remr_u */ - 32, /* remi_u */ - 4, /* andr */ - 28, /* andi */ - 4, /* orr */ - 28, /* ori */ - 4, /* xorr */ - 28, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 8, /* comr */ - 4, /* ltr */ - 4, /* lti */ - 4, /* ltr_u */ - 4, /* lti_u */ - 8, /* ler */ - 12, /* lei */ - 8, /* ler_u */ - 12, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 8, /* ger */ - 12, /* gei */ - 8, /* ger_u */ - 12, /* gei_u */ - 4, /* gtr */ - 8, /* gti */ - 4, /* gtr_u */ - 8, /* gti_u */ - 8, /* ner */ - 8, /* nei */ - 4, /* movr */ - 28, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 8, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 4, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 4, /* ldr_ui */ - 12, /* ldi_ui */ - 4, /* ldr_l */ - 12, /* ldi_l */ - 8, /* ldxr_c */ - 4, /* ldxi_c */ - 8, /* ldxr_uc */ - 4, /* ldxi_uc */ - 8, /* ldxr_s */ - 4, /* ldxi_s */ - 8, /* ldxr_us */ - 4, /* ldxi_us */ - 8, /* ldxr_i */ - 4, /* ldxi_i */ - 8, /* ldxr_ui */ - 4, /* ldxi_ui */ - 8, /* ldxr_l */ - 4, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 4, /* str_l */ - 12, /* sti_l */ - 8, /* stxr_c */ - 4, /* stxi_c */ - 8, /* stxr_s */ - 4, /* stxi_s */ - 8, /* stxr_i */ - 4, /* stxi_i */ - 8, /* stxr_l */ - 4, /* stxi_l */ - 12, /* bltr */ - 12, /* blti */ - 12, /* bltr_u */ - 12, /* blti_u */ - 12, /* bler */ - 16, /* blei */ - 12, /* bler_u */ - 16, /* blei_u */ - 8, /* beqr */ - 36, /* beqi */ - 12, /* bger */ - 12, /* bgei */ - 12, /* bger_u */ - 12, /* bgei_u */ - 12, /* bgtr */ - 16, /* bgti */ - 12, /* bgtr_u */ - 16, /* bgti_u */ - 8, /* bner */ - 32, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 28, /* boaddr */ - 28, /* boaddi */ - 16, /* boaddr_u */ - 20, /* boaddi_u */ - 28, /* bxaddr */ - 28, /* bxaddi */ - 16, /* bxaddr_u */ - 20, /* bxaddi_u */ - 28, /* bosubr */ - 28, /* bosubi */ - 16, /* bosubr_u */ - 20, /* bosubi_u */ - 28, /* bxsubr */ - 28, /* bxsubi */ - 16, /* bxsubr_u */ - 20, /* bxsubi_u */ - 0, /* jmpr */ - 8, /* jmpi */ - 12, /* callr */ - 32, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 44, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 28, /* lti_f */ - 16, /* ler_f */ - 28, /* lei_f */ - 16, /* eqr_f */ - 28, /* eqi_f */ - 16, /* ger_f */ - 28, /* gei_f */ - 16, /* gtr_f */ - 28, /* gti_f */ - 16, /* ner_f */ - 28, /* nei_f */ - 16, /* unltr_f */ - 28, /* unlti_f */ - 16, /* unler_f */ - 28, /* unlei_f */ - 16, /* uneqr_f */ - 28, /* uneqi_f */ - 16, /* unger_f */ - 28, /* ungei_f */ - 16, /* ungtr_f */ - 28, /* ungti_f */ - 16, /* ltgtr_f */ - 28, /* ltgti_f */ - 16, /* ordr_f */ - 28, /* ordi_f */ - 16, /* unordr_f */ - 28, /* unordi_f */ - 8, /* truncr_f_i */ - 8, /* truncr_f_l */ - 8, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 8, /* ldxr_f */ - 4, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 8, /* stxr_f */ - 4, /* stxi_f */ - 12, /* bltr_f */ - 24, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 24, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 12, /* bgtr_f */ - 24, /* bgti_f */ - 12, /* bner_f */ - 24, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ - 12, /* bunler_f */ - 24, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_f */ - 12, /* bunger_f */ - 24, /* bungei_f */ - 12, /* bungtr_f */ - 24, /* bungti_f */ - 12, /* bltgtr_f */ - 24, /* bltgti_f */ - 12, /* bordr_f */ - 24, /* bordi_f */ - 12, /* bunordr_f */ - 24, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 16, /* addi_d */ - 4, /* subr_d */ - 16, /* subi_d */ - 16, /* rsbi_d */ - 4, /* mulr_d */ - 16, /* muli_d */ - 4, /* divr_d */ - 16, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 28, /* lti_d */ - 16, /* ler_d */ - 28, /* lei_d */ - 16, /* eqr_d */ - 28, /* eqi_d */ - 16, /* ger_d */ - 28, /* gei_d */ - 16, /* gtr_d */ - 28, /* gti_d */ - 16, /* ner_d */ - 28, /* nei_d */ - 16, /* unltr_d */ - 28, /* unlti_d */ - 16, /* unler_d */ - 28, /* unlei_d */ - 16, /* uneqr_d */ - 28, /* uneqi_d */ - 16, /* unger_d */ - 28, /* ungei_d */ - 16, /* ungtr_d */ - 28, /* ungti_d */ - 16, /* ltgtr_d */ - 28, /* ltgti_d */ - 16, /* ordr_d */ - 28, /* ordi_d */ - 16, /* unordr_d */ - 28, /* unordi_d */ - 8, /* truncr_d_i */ - 8, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 12, /* movi_d */ - 4, /* ldr_d */ - 12, /* ldi_d */ - 8, /* ldxr_d */ - 4, /* ldxi_d */ - 4, /* str_d */ - 12, /* sti_d */ - 8, /* stxr_d */ - 4, /* stxi_d */ - 12, /* bltr_d */ - 24, /* blti_d */ - 12, /* bler_d */ - 24, /* blei_d */ - 12, /* beqr_d */ - 24, /* beqi_d */ - 12, /* bger_d */ - 24, /* bgei_d */ - 12, /* bgtr_d */ - 24, /* bgti_d */ - 12, /* bner_d */ - 24, /* bnei_d */ - 12, /* bunltr_d */ - 24, /* bunlti_d */ - 12, /* bunler_d */ - 24, /* bunlei_d */ - 12, /* buneqr_d */ - 24, /* buneqi_d */ - 12, /* bunger_d */ - 24, /* bungei_d */ - 12, /* bungtr_d */ - 24, /* bungti_d */ - 12, /* bltgtr_d */ - 24, /* bltgti_d */ - 12, /* bordr_d */ - 24, /* bordi_d */ - 12, /* bunordr_d */ - 24, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 4, /* movr_d_w */ - 12, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_ppc-sz.c b/jit/jit_ppc-sz.c deleted file mode 100644 index 22a6e2543..000000000 --- a/jit/jit_ppc-sz.c +++ /dev/null @@ -1,1622 +0,0 @@ - -#if __WORDSIZE == 32 -#if defined(__ppc__) -#define JIT_INSTR_MAX 44 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 44, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 0, /* va_start */ - 0, /* va_arg */ - 0, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 12, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 12, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 16, /* rsbi */ - 4, /* mulr */ - 12, /* muli */ - 12, /* qmulr */ - 16, /* qmuli */ - 12, /* qmulr_u */ - 16, /* qmuli_u */ - 4, /* divr */ - 12, /* divi */ - 4, /* divr_u */ - 12, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 20, /* remi */ - 12, /* remr_u */ - 20, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 12, /* ltr */ - 12, /* lti */ - 12, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 12, /* gtr */ - 12, /* gti */ - 12, /* gtr_u */ - 12, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 8, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 8, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 8, /* ldi_uc */ - 4, /* ldr_s */ - 8, /* ldi_s */ - 4, /* ldr_us */ - 8, /* ldi_us */ - 4, /* ldr_i */ - 8, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 8, /* ldxr_c */ - 8, /* ldxi_c */ - 4, /* ldxr_uc */ - 4, /* ldxi_uc */ - 4, /* ldxr_s */ - 4, /* ldxi_s */ - 4, /* ldxr_us */ - 4, /* ldxi_us */ - 4, /* ldxr_i */ - 4, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 8, /* sti_c */ - 4, /* str_s */ - 8, /* sti_s */ - 4, /* str_i */ - 8, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 4, /* stxr_c */ - 4, /* stxi_c */ - 4, /* stxr_s */ - 4, /* stxi_s */ - 4, /* stxr_i */ - 4, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 12, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 12, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 16, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 16, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 16, /* bosubi */ - 12, /* bosubr_u */ - 16, /* bosubi_u */ - 12, /* bxsubr */ - 16, /* bxsubi */ - 12, /* bxsubr_u */ - 16, /* bxsubi_u */ - 0, /* jmpr */ - 4, /* jmpi */ - 8, /* callr */ - 16, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 44, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 12, /* addi_f */ - 4, /* subr_f */ - 12, /* subi_f */ - 12, /* rsbi_f */ - 4, /* mulr_f */ - 12, /* muli_f */ - 4, /* divr_f */ - 12, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 12, /* ltr_f */ - 20, /* lti_f */ - 16, /* ler_f */ - 24, /* lei_f */ - 12, /* eqr_f */ - 20, /* eqi_f */ - 16, /* ger_f */ - 24, /* gei_f */ - 12, /* gtr_f */ - 20, /* gti_f */ - 16, /* ner_f */ - 24, /* nei_f */ - 16, /* unltr_f */ - 24, /* unlti_f */ - 16, /* unler_f */ - 24, /* unlei_f */ - 16, /* uneqr_f */ - 24, /* uneqi_f */ - 16, /* unger_f */ - 24, /* ungei_f */ - 16, /* ungtr_f */ - 24, /* ungti_f */ - 16, /* ltgtr_f */ - 24, /* ltgti_f */ - 16, /* ordr_f */ - 24, /* ordi_f */ - 12, /* unordr_f */ - 20, /* unordi_f */ - 12, /* truncr_f_i */ - 0, /* truncr_f_l */ - 20, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 8, /* movi_f */ - 4, /* ldr_f */ - 8, /* ldi_f */ - 4, /* ldxr_f */ - 4, /* ldxi_f */ - 4, /* str_f */ - 8, /* sti_f */ - 4, /* stxr_f */ - 4, /* stxi_f */ - 8, /* bltr_f */ - 16, /* blti_f */ - 12, /* bler_f */ - 20, /* blei_f */ - 8, /* beqr_f */ - 16, /* beqi_f */ - 12, /* bger_f */ - 20, /* bgei_f */ - 8, /* bgtr_f */ - 16, /* bgti_f */ - 8, /* bner_f */ - 16, /* bnei_f */ - 12, /* bunltr_f */ - 20, /* bunlti_f */ - 8, /* bunler_f */ - 16, /* bunlei_f */ - 12, /* buneqr_f */ - 20, /* buneqi_f */ - 8, /* bunger_f */ - 16, /* bungei_f */ - 12, /* bungtr_f */ - 20, /* bungti_f */ - 12, /* bltgtr_f */ - 20, /* bltgti_f */ - 8, /* bordr_f */ - 16, /* bordi_f */ - 8, /* bunordr_f */ - 16, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 12, /* addi_d */ - 4, /* subr_d */ - 12, /* subi_d */ - 12, /* rsbi_d */ - 4, /* mulr_d */ - 12, /* muli_d */ - 4, /* divr_d */ - 12, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 12, /* ltr_d */ - 20, /* lti_d */ - 16, /* ler_d */ - 24, /* lei_d */ - 12, /* eqr_d */ - 20, /* eqi_d */ - 16, /* ger_d */ - 24, /* gei_d */ - 12, /* gtr_d */ - 20, /* gti_d */ - 16, /* ner_d */ - 24, /* nei_d */ - 16, /* unltr_d */ - 24, /* unlti_d */ - 16, /* unler_d */ - 24, /* unlei_d */ - 16, /* uneqr_d */ - 24, /* uneqi_d */ - 16, /* unger_d */ - 24, /* ungei_d */ - 16, /* ungtr_d */ - 24, /* ungti_d */ - 16, /* ltgtr_d */ - 24, /* ltgti_d */ - 16, /* ordr_d */ - 24, /* ordi_d */ - 12, /* unordr_d */ - 20, /* unordi_d */ - 12, /* truncr_d_i */ - 0, /* truncr_d_l */ - 20, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 8, /* movi_d */ - 4, /* ldr_d */ - 8, /* ldi_d */ - 4, /* ldxr_d */ - 4, /* ldxi_d */ - 4, /* str_d */ - 8, /* sti_d */ - 4, /* stxr_d */ - 4, /* stxi_d */ - 8, /* bltr_d */ - 16, /* blti_d */ - 12, /* bler_d */ - 20, /* blei_d */ - 8, /* beqr_d */ - 16, /* beqi_d */ - 12, /* bger_d */ - 20, /* bgei_d */ - 8, /* bgtr_d */ - 16, /* bgti_d */ - 8, /* bner_d */ - 16, /* bnei_d */ - 12, /* bunltr_d */ - 20, /* bunlti_d */ - 8, /* bunler_d */ - 16, /* bunlei_d */ - 12, /* buneqr_d */ - 20, /* buneqi_d */ - 8, /* bunger_d */ - 16, /* bungei_d */ - 12, /* bungtr_d */ - 20, /* bungti_d */ - 12, /* bltgtr_d */ - 20, /* bltgti_d */ - 8, /* bordr_d */ - 16, /* bordi_d */ - 8, /* bunordr_d */ - 16, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __ppc__ */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 32 -#if defined(__powerpc__) -#if __BYTE_ORDER == __BIG_ENDIAN -#define JIT_INSTR_MAX 136 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 136, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 8, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 12, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 12, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 16, /* rsbi */ - 4, /* mulr */ - 12, /* muli */ - 12, /* qmulr */ - 16, /* qmuli */ - 12, /* qmulr_u */ - 16, /* qmuli_u */ - 4, /* divr */ - 12, /* divi */ - 4, /* divr_u */ - 12, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 20, /* remi */ - 12, /* remr_u */ - 20, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 12, /* ltr */ - 12, /* lti */ - 12, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 12, /* gtr */ - 12, /* gti */ - 12, /* gtr_u */ - 12, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 8, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 8, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 8, /* ldi_uc */ - 4, /* ldr_s */ - 8, /* ldi_s */ - 4, /* ldr_us */ - 8, /* ldi_us */ - 4, /* ldr_i */ - 8, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 8, /* ldxr_c */ - 16, /* ldxi_c */ - 4, /* ldxr_uc */ - 12, /* ldxi_uc */ - 4, /* ldxr_s */ - 12, /* ldxi_s */ - 4, /* ldxr_us */ - 12, /* ldxi_us */ - 4, /* ldxr_i */ - 12, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 8, /* sti_c */ - 4, /* str_s */ - 8, /* sti_s */ - 4, /* str_i */ - 8, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 4, /* stxr_c */ - 12, /* stxi_c */ - 4, /* stxr_s */ - 12, /* stxi_s */ - 4, /* stxr_i */ - 12, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 12, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 12, /* blei_u */ - 8, /* beqr */ - 16, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 16, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 16, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 16, /* bosubi */ - 12, /* bosubr_u */ - 16, /* bosubi_u */ - 12, /* bxsubr */ - 16, /* bxsubi */ - 12, /* bxsubr_u */ - 16, /* bxsubi_u */ - 8, /* jmpr */ - 4, /* jmpi */ - 28, /* callr */ - 40, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 124, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 12, /* ltr_f */ - 24, /* lti_f */ - 16, /* ler_f */ - 28, /* lei_f */ - 12, /* eqr_f */ - 24, /* eqi_f */ - 16, /* ger_f */ - 28, /* gei_f */ - 12, /* gtr_f */ - 24, /* gti_f */ - 16, /* ner_f */ - 28, /* nei_f */ - 16, /* unltr_f */ - 28, /* unlti_f */ - 16, /* unler_f */ - 28, /* unlei_f */ - 16, /* uneqr_f */ - 28, /* uneqi_f */ - 16, /* unger_f */ - 28, /* ungei_f */ - 16, /* ungtr_f */ - 28, /* ungti_f */ - 16, /* ltgtr_f */ - 28, /* ltgti_f */ - 16, /* ordr_f */ - 28, /* ordi_f */ - 12, /* unordr_f */ - 24, /* unordi_f */ - 12, /* truncr_f_i */ - 0, /* truncr_f_l */ - 20, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 12, /* movi_f */ - 4, /* ldr_f */ - 8, /* ldi_f */ - 4, /* ldxr_f */ - 12, /* ldxi_f */ - 4, /* str_f */ - 8, /* sti_f */ - 4, /* stxr_f */ - 12, /* stxi_f */ - 8, /* bltr_f */ - 20, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 8, /* beqr_f */ - 20, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 8, /* bgtr_f */ - 20, /* bgti_f */ - 8, /* bner_f */ - 20, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ - 8, /* bunler_f */ - 20, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_f */ - 8, /* bunger_f */ - 20, /* bungei_f */ - 12, /* bungtr_f */ - 24, /* bungti_f */ - 12, /* bltgtr_f */ - 24, /* bltgti_f */ - 8, /* bordr_f */ - 20, /* bordi_f */ - 8, /* bunordr_f */ - 20, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 24, /* addi_d */ - 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ - 4, /* mulr_d */ - 24, /* muli_d */ - 4, /* divr_d */ - 24, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 12, /* ltr_d */ - 32, /* lti_d */ - 16, /* ler_d */ - 36, /* lei_d */ - 12, /* eqr_d */ - 32, /* eqi_d */ - 16, /* ger_d */ - 36, /* gei_d */ - 12, /* gtr_d */ - 32, /* gti_d */ - 16, /* ner_d */ - 36, /* nei_d */ - 16, /* unltr_d */ - 36, /* unlti_d */ - 16, /* unler_d */ - 36, /* unlei_d */ - 16, /* uneqr_d */ - 36, /* uneqi_d */ - 16, /* unger_d */ - 36, /* ungei_d */ - 16, /* ungtr_d */ - 36, /* ungti_d */ - 16, /* ltgtr_d */ - 36, /* ltgti_d */ - 16, /* ordr_d */ - 36, /* ordi_d */ - 12, /* unordr_d */ - 32, /* unordi_d */ - 12, /* truncr_d_i */ - 0, /* truncr_d_l */ - 20, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 24, /* movi_d */ - 4, /* ldr_d */ - 8, /* ldi_d */ - 4, /* ldxr_d */ - 12, /* ldxi_d */ - 4, /* str_d */ - 8, /* sti_d */ - 4, /* stxr_d */ - 12, /* stxi_d */ - 8, /* bltr_d */ - 28, /* blti_d */ - 12, /* bler_d */ - 32, /* blei_d */ - 8, /* beqr_d */ - 32, /* beqi_d */ - 12, /* bger_d */ - 32, /* bgei_d */ - 8, /* bgtr_d */ - 28, /* bgti_d */ - 8, /* bner_d */ - 28, /* bnei_d */ - 12, /* bunltr_d */ - 32, /* bunlti_d */ - 8, /* bunler_d */ - 28, /* bunlei_d */ - 12, /* buneqr_d */ - 32, /* buneqi_d */ - 8, /* bunger_d */ - 28, /* bungei_d */ - 12, /* bungtr_d */ - 32, /* bungti_d */ - 12, /* bltgtr_d */ - 32, /* bltgti_d */ - 8, /* bordr_d */ - 28, /* bordi_d */ - 8, /* bunordr_d */ - 28, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __BYTEORDER */ -#endif /* __powerpc__ */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 64 -#if defined(__powerpc__) -#if __BYTE_ORDER == __BIG_ENDIAN -#define JIT_INSTR_MAX 148 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 148, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 8, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 28, /* addi */ - 4, /* addcr */ - 28, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 28, /* subi */ - 4, /* subcr */ - 28, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 44, /* rsbi */ - 4, /* mulr */ - 28, /* muli */ - 12, /* qmulr */ - 28, /* qmuli */ - 12, /* qmulr_u */ - 28, /* qmuli_u */ - 4, /* divr */ - 28, /* divi */ - 4, /* divr_u */ - 28, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 36, /* remi */ - 12, /* remr_u */ - 36, /* remi_u */ - 4, /* andr */ - 28, /* andi */ - 4, /* orr */ - 28, /* ori */ - 4, /* xorr */ - 28, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 12, /* ltr */ - 12, /* lti */ - 12, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 12, /* gtr */ - 12, /* gti */ - 12, /* gtr_u */ - 12, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 36, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 4, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 4, /* htonr_ul */ - 8, /* ldr_c */ - 28, /* ldi_c */ - 4, /* ldr_uc */ - 24, /* ldi_uc */ - 4, /* ldr_s */ - 24, /* ldi_s */ - 4, /* ldr_us */ - 24, /* ldi_us */ - 4, /* ldr_i */ - 24, /* ldi_i */ - 4, /* ldr_ui */ - 24, /* ldi_ui */ - 4, /* ldr_l */ - 24, /* ldi_l */ - 8, /* ldxr_c */ - 16, /* ldxi_c */ - 4, /* ldxr_uc */ - 12, /* ldxi_uc */ - 4, /* ldxr_s */ - 12, /* ldxi_s */ - 4, /* ldxr_us */ - 12, /* ldxi_us */ - 4, /* ldxr_i */ - 12, /* ldxi_i */ - 4, /* ldxr_ui */ - 12, /* ldxi_ui */ - 4, /* ldxr_l */ - 12, /* ldxi_l */ - 4, /* str_c */ - 24, /* sti_c */ - 4, /* str_s */ - 24, /* sti_s */ - 4, /* str_i */ - 24, /* sti_i */ - 4, /* str_l */ - 24, /* sti_l */ - 4, /* stxr_c */ - 12, /* stxi_c */ - 4, /* stxr_s */ - 12, /* stxi_s */ - 4, /* stxr_i */ - 12, /* stxi_i */ - 4, /* stxr_l */ - 12, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 12, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 12, /* blei_u */ - 8, /* beqr */ - 44, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 36, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 16, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 16, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 16, /* bosubi */ - 12, /* bosubr_u */ - 16, /* bosubi_u */ - 12, /* bxsubr */ - 16, /* bxsubi */ - 12, /* bxsubr_u */ - 16, /* bxsubi_u */ - 8, /* jmpr */ - 4, /* jmpi */ - 28, /* callr */ - 56, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 124, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 28, /* addi_f */ - 4, /* subr_f */ - 28, /* subi_f */ - 28, /* rsbi_f */ - 4, /* mulr_f */ - 28, /* muli_f */ - 4, /* divr_f */ - 28, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 12, /* ltr_f */ - 36, /* lti_f */ - 16, /* ler_f */ - 40, /* lei_f */ - 12, /* eqr_f */ - 36, /* eqi_f */ - 16, /* ger_f */ - 40, /* gei_f */ - 12, /* gtr_f */ - 36, /* gti_f */ - 16, /* ner_f */ - 40, /* nei_f */ - 16, /* unltr_f */ - 40, /* unlti_f */ - 16, /* unler_f */ - 40, /* unlei_f */ - 16, /* uneqr_f */ - 40, /* uneqi_f */ - 16, /* unger_f */ - 40, /* ungei_f */ - 16, /* ungtr_f */ - 40, /* ungti_f */ - 16, /* ltgtr_f */ - 40, /* ltgti_f */ - 16, /* ordr_f */ - 40, /* ordi_f */ - 12, /* unordr_f */ - 36, /* unordi_f */ - 12, /* truncr_f_i */ - 12, /* truncr_f_l */ - 12, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 24, /* movi_f */ - 4, /* ldr_f */ - 24, /* ldi_f */ - 4, /* ldxr_f */ - 12, /* ldxi_f */ - 4, /* str_f */ - 24, /* sti_f */ - 4, /* stxr_f */ - 12, /* stxi_f */ - 8, /* bltr_f */ - 32, /* blti_f */ - 12, /* bler_f */ - 36, /* blei_f */ - 8, /* beqr_f */ - 32, /* beqi_f */ - 12, /* bger_f */ - 36, /* bgei_f */ - 8, /* bgtr_f */ - 32, /* bgti_f */ - 8, /* bner_f */ - 32, /* bnei_f */ - 12, /* bunltr_f */ - 36, /* bunlti_f */ - 8, /* bunler_f */ - 32, /* bunlei_f */ - 12, /* buneqr_f */ - 36, /* buneqi_f */ - 8, /* bunger_f */ - 32, /* bungei_f */ - 12, /* bungtr_f */ - 36, /* bungti_f */ - 12, /* bltgtr_f */ - 36, /* bltgti_f */ - 8, /* bordr_f */ - 32, /* bordi_f */ - 8, /* bunordr_f */ - 32, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 28, /* addi_d */ - 4, /* subr_d */ - 28, /* subi_d */ - 32, /* rsbi_d */ - 4, /* mulr_d */ - 28, /* muli_d */ - 4, /* divr_d */ - 28, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 12, /* ltr_d */ - 40, /* lti_d */ - 16, /* ler_d */ - 44, /* lei_d */ - 12, /* eqr_d */ - 40, /* eqi_d */ - 16, /* ger_d */ - 44, /* gei_d */ - 12, /* gtr_d */ - 40, /* gti_d */ - 16, /* ner_d */ - 44, /* nei_d */ - 16, /* unltr_d */ - 44, /* unlti_d */ - 16, /* unler_d */ - 44, /* unlei_d */ - 16, /* uneqr_d */ - 44, /* uneqi_d */ - 16, /* unger_d */ - 44, /* ungei_d */ - 16, /* ungtr_d */ - 44, /* ungti_d */ - 16, /* ltgtr_d */ - 44, /* ltgti_d */ - 16, /* ordr_d */ - 44, /* ordi_d */ - 12, /* unordr_d */ - 40, /* unordi_d */ - 12, /* truncr_d_i */ - 12, /* truncr_d_l */ - 12, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 32, /* movi_d */ - 4, /* ldr_d */ - 24, /* ldi_d */ - 4, /* ldxr_d */ - 12, /* ldxi_d */ - 4, /* str_d */ - 24, /* sti_d */ - 4, /* stxr_d */ - 12, /* stxi_d */ - 8, /* bltr_d */ - 32, /* blti_d */ - 12, /* bler_d */ - 36, /* blei_d */ - 8, /* beqr_d */ - 40, /* beqi_d */ - 12, /* bger_d */ - 40, /* bgei_d */ - 8, /* bgtr_d */ - 36, /* bgti_d */ - 8, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ - 8, /* bunler_d */ - 32, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_d */ - 8, /* bunger_d */ - 36, /* bungei_d */ - 12, /* bungtr_d */ - 40, /* bungti_d */ - 12, /* bltgtr_d */ - 40, /* bltgti_d */ - 8, /* bordr_d */ - 36, /* bordi_d */ - 8, /* bunordr_d */ - 32, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __BYTEORDER */ -#endif /* __powerpc__ */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 64 -#if defined(__powerpc__) -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define JIT_INSTR_MAX 124 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 124, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 8, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 28, /* addi */ - 4, /* addcr */ - 28, /* addci */ - 4, /* addxr */ - 8, /* addxi */ - 4, /* subr */ - 28, /* subi */ - 4, /* subcr */ - 28, /* subci */ - 4, /* subxr */ - 8, /* subxi */ - 44, /* rsbi */ - 4, /* mulr */ - 28, /* muli */ - 12, /* qmulr */ - 28, /* qmuli */ - 12, /* qmulr_u */ - 28, /* qmuli_u */ - 4, /* divr */ - 28, /* divi */ - 4, /* divr_u */ - 28, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 36, /* remi */ - 12, /* remr_u */ - 36, /* remi_u */ - 4, /* andr */ - 28, /* andi */ - 4, /* orr */ - 28, /* ori */ - 4, /* xorr */ - 28, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 12, /* ltr */ - 12, /* lti */ - 12, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 12, /* gtr */ - 12, /* gti */ - 12, /* gtr_u */ - 12, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 36, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 4, /* extr_ui */ - 20, /* htonr_us */ - 16, /* htonr_ui */ - 44, /* htonr_ul */ - 8, /* ldr_c */ - 28, /* ldi_c */ - 4, /* ldr_uc */ - 24, /* ldi_uc */ - 4, /* ldr_s */ - 24, /* ldi_s */ - 4, /* ldr_us */ - 24, /* ldi_us */ - 4, /* ldr_i */ - 24, /* ldi_i */ - 4, /* ldr_ui */ - 24, /* ldi_ui */ - 4, /* ldr_l */ - 24, /* ldi_l */ - 8, /* ldxr_c */ - 16, /* ldxi_c */ - 4, /* ldxr_uc */ - 12, /* ldxi_uc */ - 4, /* ldxr_s */ - 12, /* ldxi_s */ - 4, /* ldxr_us */ - 12, /* ldxi_us */ - 4, /* ldxr_i */ - 12, /* ldxi_i */ - 4, /* ldxr_ui */ - 12, /* ldxi_ui */ - 4, /* ldxr_l */ - 12, /* ldxi_l */ - 4, /* str_c */ - 24, /* sti_c */ - 4, /* str_s */ - 24, /* sti_s */ - 4, /* str_i */ - 24, /* sti_i */ - 4, /* str_l */ - 24, /* sti_l */ - 4, /* stxr_c */ - 12, /* stxi_c */ - 4, /* stxr_s */ - 12, /* stxi_s */ - 4, /* stxr_i */ - 12, /* stxi_i */ - 4, /* stxr_l */ - 12, /* stxi_l */ - 8, /* bltr */ - 8, /* blti */ - 8, /* bltr_u */ - 12, /* blti_u */ - 8, /* bler */ - 8, /* blei */ - 8, /* bler_u */ - 12, /* blei_u */ - 8, /* beqr */ - 44, /* beqi */ - 8, /* bger */ - 8, /* bgei */ - 8, /* bger_u */ - 8, /* bgei_u */ - 8, /* bgtr */ - 8, /* bgti */ - 8, /* bgtr_u */ - 8, /* bgti_u */ - 8, /* bner */ - 36, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 16, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 16, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 16, /* bosubi */ - 12, /* bosubr_u */ - 16, /* bosubi_u */ - 12, /* bxsubr */ - 16, /* bxsubi */ - 12, /* bxsubr_u */ - 16, /* bxsubi_u */ - 8, /* jmpr */ - 4, /* jmpi */ - 12, /* callr */ - 36, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 124, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 28, /* addi_f */ - 4, /* subr_f */ - 28, /* subi_f */ - 28, /* rsbi_f */ - 4, /* mulr_f */ - 28, /* muli_f */ - 4, /* divr_f */ - 28, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 12, /* ltr_f */ - 36, /* lti_f */ - 16, /* ler_f */ - 40, /* lei_f */ - 12, /* eqr_f */ - 36, /* eqi_f */ - 16, /* ger_f */ - 40, /* gei_f */ - 12, /* gtr_f */ - 36, /* gti_f */ - 16, /* ner_f */ - 40, /* nei_f */ - 16, /* unltr_f */ - 40, /* unlti_f */ - 16, /* unler_f */ - 40, /* unlei_f */ - 16, /* uneqr_f */ - 40, /* uneqi_f */ - 16, /* unger_f */ - 40, /* ungei_f */ - 16, /* ungtr_f */ - 40, /* ungti_f */ - 16, /* ltgtr_f */ - 40, /* ltgti_f */ - 16, /* ordr_f */ - 40, /* ordi_f */ - 12, /* unordr_f */ - 36, /* unordi_f */ - 12, /* truncr_f_i */ - 12, /* truncr_f_l */ - 12, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 24, /* movi_f */ - 4, /* ldr_f */ - 24, /* ldi_f */ - 4, /* ldxr_f */ - 12, /* ldxi_f */ - 4, /* str_f */ - 24, /* sti_f */ - 4, /* stxr_f */ - 12, /* stxi_f */ - 8, /* bltr_f */ - 32, /* blti_f */ - 12, /* bler_f */ - 36, /* blei_f */ - 8, /* beqr_f */ - 32, /* beqi_f */ - 12, /* bger_f */ - 36, /* bgei_f */ - 8, /* bgtr_f */ - 32, /* bgti_f */ - 8, /* bner_f */ - 32, /* bnei_f */ - 12, /* bunltr_f */ - 36, /* bunlti_f */ - 8, /* bunler_f */ - 32, /* bunlei_f */ - 12, /* buneqr_f */ - 36, /* buneqi_f */ - 8, /* bunger_f */ - 32, /* bungei_f */ - 12, /* bungtr_f */ - 36, /* bungti_f */ - 12, /* bltgtr_f */ - 36, /* bltgti_f */ - 8, /* bordr_f */ - 32, /* bordi_f */ - 8, /* bunordr_f */ - 32, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 28, /* addi_d */ - 4, /* subr_d */ - 28, /* subi_d */ - 32, /* rsbi_d */ - 4, /* mulr_d */ - 28, /* muli_d */ - 4, /* divr_d */ - 28, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 12, /* ltr_d */ - 40, /* lti_d */ - 16, /* ler_d */ - 44, /* lei_d */ - 12, /* eqr_d */ - 40, /* eqi_d */ - 16, /* ger_d */ - 44, /* gei_d */ - 12, /* gtr_d */ - 40, /* gti_d */ - 16, /* ner_d */ - 44, /* nei_d */ - 16, /* unltr_d */ - 44, /* unlti_d */ - 16, /* unler_d */ - 44, /* unlei_d */ - 16, /* uneqr_d */ - 44, /* uneqi_d */ - 16, /* unger_d */ - 44, /* ungei_d */ - 16, /* ungtr_d */ - 44, /* ungti_d */ - 16, /* ltgtr_d */ - 44, /* ltgti_d */ - 16, /* ordr_d */ - 44, /* ordi_d */ - 12, /* unordr_d */ - 40, /* unordi_d */ - 12, /* truncr_d_i */ - 12, /* truncr_d_l */ - 12, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ - 32, /* movi_d */ - 4, /* ldr_d */ - 24, /* ldi_d */ - 4, /* ldxr_d */ - 12, /* ldxi_d */ - 4, /* str_d */ - 24, /* sti_d */ - 4, /* stxr_d */ - 12, /* stxi_d */ - 8, /* bltr_d */ - 32, /* blti_d */ - 12, /* bler_d */ - 36, /* blei_d */ - 8, /* beqr_d */ - 40, /* beqi_d */ - 12, /* bger_d */ - 40, /* bgei_d */ - 8, /* bgtr_d */ - 36, /* bgti_d */ - 8, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ - 8, /* bunler_d */ - 32, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_d */ - 8, /* bunger_d */ - 36, /* bungei_d */ - 12, /* bungtr_d */ - 40, /* bungti_d */ - 12, /* bltgtr_d */ - 40, /* bltgti_d */ - 8, /* bordr_d */ - 36, /* bordi_d */ - 8, /* bunordr_d */ - 32, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __BYTE_ORDER */ -#endif /* __powerpc__ */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_s390-sz.c b/jit/jit_s390-sz.c deleted file mode 100644 index bb8b2dc97..000000000 --- a/jit/jit_s390-sz.c +++ /dev/null @@ -1,804 +0,0 @@ - -#if __WORDSIZE == 32 -#define JIT_INSTR_MAX 104 - 0, /* data */ - 0, /* live */ - 6, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 2, /* label */ - 42, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 44, /* va_start */ - 104, /* va_arg */ - 100, /* va_arg_d */ - 0, /* va_end */ - 8, /* addr */ - 24, /* addi */ - 8, /* addcr */ - 20, /* addci */ - 8, /* addxr */ - 12, /* addxi */ - 12, /* subr */ - 24, /* subi */ - 12, /* subcr */ - 20, /* subci */ - 12, /* subxr */ - 12, /* subxi */ - 28, /* rsbi */ - 8, /* mulr */ - 24, /* muli */ - 60, /* qmulr */ - 68, /* qmuli */ - 16, /* qmulr_u */ - 32, /* qmuli_u */ - 12, /* divr */ - 28, /* divi */ - 16, /* divr_u */ - 32, /* divi_u */ - 16, /* qdivr */ - 20, /* qdivi */ - 20, /* qdivr_u */ - 24, /* qdivi_u */ - 12, /* remr */ - 28, /* remi */ - 16, /* remr_u */ - 32, /* remi_u */ - 8, /* andr */ - 20, /* andi */ - 8, /* orr */ - 20, /* ori */ - 8, /* xorr */ - 24, /* xori */ - 6, /* lshr */ - 10, /* lshi */ - 6, /* rshr */ - 10, /* rshi */ - 6, /* rshr_u */ - 10, /* rshi_u */ - 4, /* negr */ - 12, /* comr */ - 20, /* ltr */ - 24, /* lti */ - 20, /* ltr_u */ - 24, /* lti_u */ - 20, /* ler */ - 24, /* lei */ - 20, /* ler_u */ - 24, /* lei_u */ - 20, /* eqr */ - 24, /* eqi */ - 20, /* ger */ - 24, /* gei */ - 20, /* ger_u */ - 24, /* gei_u */ - 20, /* gtr */ - 24, /* gti */ - 20, /* gtr_u */ - 24, /* gti_u */ - 20, /* ner */ - 24, /* nei */ - 4, /* movr */ - 16, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 4, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 4, /* htonr_ul */ - 6, /* ldr_c */ - 18, /* ldi_c */ - 6, /* ldr_uc */ - 18, /* ldi_uc */ - 6, /* ldr_s */ - 18, /* ldi_s */ - 6, /* ldr_us */ - 18, /* ldi_us */ - 6, /* ldr_i */ - 18, /* ldi_i */ - 6, /* ldr_ui */ - 18, /* ldi_ui */ - 6, /* ldr_l */ - 18, /* ldi_l */ - 14, /* ldxr_c */ - 26, /* ldxi_c */ - 14, /* ldxr_uc */ - 26, /* ldxi_uc */ - 14, /* ldxr_s */ - 26, /* ldxi_s */ - 14, /* ldxr_us */ - 26, /* ldxi_us */ - 14, /* ldxr_i */ - 26, /* ldxi_i */ - 14, /* ldxr_ui */ - 26, /* ldxi_ui */ - 14, /* ldxr_l */ - 26, /* ldxi_l */ - 4, /* str_c */ - 16, /* sti_c */ - 4, /* str_s */ - 16, /* sti_s */ - 4, /* str_i */ - 16, /* sti_i */ - 6, /* str_l */ - 18, /* sti_l */ - 12, /* stxr_c */ - 28, /* stxi_c */ - 12, /* stxr_s */ - 28, /* stxi_s */ - 12, /* stxr_i */ - 28, /* stxi_i */ - 14, /* stxr_l */ - 30, /* stxi_l */ - 10, /* bltr */ - 14, /* blti */ - 10, /* bltr_u */ - 14, /* blti_u */ - 10, /* bler */ - 14, /* blei */ - 10, /* bler_u */ - 14, /* blei_u */ - 10, /* beqr */ - 26, /* beqi */ - 10, /* bger */ - 14, /* bgei */ - 10, /* bger_u */ - 14, /* bgei_u */ - 10, /* bgtr */ - 14, /* bgti */ - 10, /* bgtr_u */ - 14, /* bgti_u */ - 10, /* bner */ - 26, /* bnei */ - 18, /* bmsr */ - 18, /* bmsi */ - 18, /* bmcr */ - 18, /* bmci */ - 10, /* boaddr */ - 14, /* boaddi */ - 10, /* boaddr_u */ - 14, /* boaddi_u */ - 10, /* bxaddr */ - 14, /* bxaddi */ - 10, /* bxaddr_u */ - 14, /* bxaddi_u */ - 10, /* bosubr */ - 14, /* bosubi */ - 10, /* bosubr_u */ - 14, /* bosubi_u */ - 10, /* bxsubr */ - 14, /* bxsubi */ - 10, /* bxsubr_u */ - 14, /* bxsubi_u */ - 2, /* jmpr */ - 18, /* jmpi */ - 2, /* callr */ - 18, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 40, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 6, /* addr_f */ - 26, /* addi_f */ - 8, /* subr_f */ - 26, /* subi_f */ - 28, /* rsbi_f */ - 6, /* mulr_f */ - 26, /* muli_f */ - 8, /* divr_f */ - 26, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 36, /* lti_f */ - 16, /* ler_f */ - 36, /* lei_f */ - 16, /* eqr_f */ - 36, /* eqi_f */ - 16, /* ger_f */ - 36, /* gei_f */ - 16, /* gtr_f */ - 36, /* gti_f */ - 16, /* ner_f */ - 36, /* nei_f */ - 16, /* unltr_f */ - 36, /* unlti_f */ - 16, /* unler_f */ - 36, /* unlei_f */ - 20, /* uneqr_f */ - 40, /* uneqi_f */ - 16, /* unger_f */ - 36, /* ungei_f */ - 16, /* ungtr_f */ - 36, /* ungti_f */ - 20, /* ltgtr_f */ - 40, /* ltgti_f */ - 16, /* ordr_f */ - 36, /* ordi_f */ - 16, /* unordr_f */ - 36, /* unordi_f */ - 4, /* truncr_f_i */ - 4, /* truncr_f_l */ - 4, /* extr_f */ - 4, /* extr_d_f */ - 2, /* movr_f */ - 20, /* movi_f */ - 4, /* ldr_f */ - 16, /* ldi_f */ - 12, /* ldxr_f */ - 24, /* ldxi_f */ - 4, /* str_f */ - 16, /* sti_f */ - 12, /* stxr_f */ - 24, /* stxi_f */ - 10, /* bltr_f */ - 30, /* blti_f */ - 10, /* bler_f */ - 30, /* blei_f */ - 10, /* beqr_f */ - 30, /* beqi_f */ - 10, /* bger_f */ - 30, /* bgei_f */ - 10, /* bgtr_f */ - 30, /* bgti_f */ - 10, /* bner_f */ - 30, /* bnei_f */ - 10, /* bunltr_f */ - 30, /* bunlti_f */ - 10, /* bunler_f */ - 30, /* bunlei_f */ - 18, /* buneqr_f */ - 38, /* buneqi_f */ - 10, /* bunger_f */ - 30, /* bungei_f */ - 10, /* bungtr_f */ - 30, /* bungti_f */ - 18, /* bltgtr_f */ - 38, /* bltgti_f */ - 10, /* bordr_f */ - 30, /* bordi_f */ - 10, /* bunordr_f */ - 30, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 6, /* addr_d */ - 26, /* addi_d */ - 8, /* subr_d */ - 26, /* subi_d */ - 28, /* rsbi_d */ - 6, /* mulr_d */ - 26, /* muli_d */ - 8, /* divr_d */ - 26, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 36, /* lti_d */ - 16, /* ler_d */ - 36, /* lei_d */ - 16, /* eqr_d */ - 36, /* eqi_d */ - 16, /* ger_d */ - 36, /* gei_d */ - 16, /* gtr_d */ - 36, /* gti_d */ - 16, /* ner_d */ - 36, /* nei_d */ - 16, /* unltr_d */ - 36, /* unlti_d */ - 16, /* unler_d */ - 36, /* unlei_d */ - 20, /* uneqr_d */ - 40, /* uneqi_d */ - 16, /* unger_d */ - 36, /* ungei_d */ - 16, /* ungtr_d */ - 36, /* ungti_d */ - 20, /* ltgtr_d */ - 40, /* ltgti_d */ - 16, /* ordr_d */ - 36, /* ordi_d */ - 16, /* unordr_d */ - 36, /* unordi_d */ - 4, /* truncr_d_i */ - 4, /* truncr_d_l */ - 4, /* extr_d */ - 4, /* extr_f_d */ - 2, /* movr_d */ - 24, /* movi_d */ - 4, /* ldr_d */ - 16, /* ldi_d */ - 12, /* ldxr_d */ - 24, /* ldxi_d */ - 4, /* str_d */ - 16, /* sti_d */ - 12, /* stxr_d */ - 24, /* stxi_d */ - 10, /* bltr_d */ - 30, /* blti_d */ - 10, /* bler_d */ - 30, /* blei_d */ - 10, /* beqr_d */ - 34, /* beqi_d */ - 10, /* bger_d */ - 30, /* bgei_d */ - 10, /* bgtr_d */ - 30, /* bgti_d */ - 10, /* bner_d */ - 30, /* bnei_d */ - 10, /* bunltr_d */ - 30, /* bunlti_d */ - 10, /* bunler_d */ - 30, /* bunlei_d */ - 18, /* buneqr_d */ - 38, /* buneqi_d */ - 10, /* bunger_d */ - 30, /* bungei_d */ - 10, /* bungtr_d */ - 30, /* bungti_d */ - 18, /* bltgtr_d */ - 38, /* bltgti_d */ - 10, /* bordr_d */ - 30, /* bordi_d */ - 10, /* bunordr_d */ - 30, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 104 - 0, /* data */ - 0, /* live */ - 6, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 2, /* label */ - 42, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 44, /* va_start */ - 104, /* va_arg */ - 100, /* va_arg_d */ - 0, /* va_end */ - 8, /* addr */ - 24, /* addi */ - 8, /* addcr */ - 20, /* addci */ - 8, /* addxr */ - 12, /* addxi */ - 12, /* subr */ - 24, /* subi */ - 12, /* subcr */ - 20, /* subci */ - 12, /* subxr */ - 12, /* subxi */ - 28, /* rsbi */ - 8, /* mulr */ - 24, /* muli */ - 60, /* qmulr */ - 68, /* qmuli */ - 16, /* qmulr_u */ - 32, /* qmuli_u */ - 12, /* divr */ - 28, /* divi */ - 16, /* divr_u */ - 32, /* divi_u */ - 16, /* qdivr */ - 20, /* qdivi */ - 20, /* qdivr_u */ - 24, /* qdivi_u */ - 12, /* remr */ - 28, /* remi */ - 16, /* remr_u */ - 32, /* remi_u */ - 8, /* andr */ - 20, /* andi */ - 8, /* orr */ - 20, /* ori */ - 8, /* xorr */ - 24, /* xori */ - 6, /* lshr */ - 10, /* lshi */ - 6, /* rshr */ - 10, /* rshi */ - 6, /* rshr_u */ - 10, /* rshi_u */ - 4, /* negr */ - 12, /* comr */ - 20, /* ltr */ - 24, /* lti */ - 20, /* ltr_u */ - 24, /* lti_u */ - 20, /* ler */ - 24, /* lei */ - 20, /* ler_u */ - 24, /* lei_u */ - 20, /* eqr */ - 24, /* eqi */ - 20, /* ger */ - 24, /* gei */ - 20, /* ger_u */ - 24, /* gei_u */ - 20, /* gtr */ - 24, /* gti */ - 20, /* gtr_u */ - 24, /* gti_u */ - 20, /* ner */ - 24, /* nei */ - 4, /* movr */ - 16, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 4, /* extr_i */ - 4, /* extr_ui */ - 4, /* htonr_us */ - 4, /* htonr_ui */ - 4, /* htonr_ul */ - 6, /* ldr_c */ - 18, /* ldi_c */ - 6, /* ldr_uc */ - 18, /* ldi_uc */ - 6, /* ldr_s */ - 18, /* ldi_s */ - 6, /* ldr_us */ - 18, /* ldi_us */ - 6, /* ldr_i */ - 18, /* ldi_i */ - 6, /* ldr_ui */ - 18, /* ldi_ui */ - 6, /* ldr_l */ - 18, /* ldi_l */ - 14, /* ldxr_c */ - 26, /* ldxi_c */ - 14, /* ldxr_uc */ - 26, /* ldxi_uc */ - 14, /* ldxr_s */ - 26, /* ldxi_s */ - 14, /* ldxr_us */ - 26, /* ldxi_us */ - 14, /* ldxr_i */ - 26, /* ldxi_i */ - 14, /* ldxr_ui */ - 26, /* ldxi_ui */ - 14, /* ldxr_l */ - 26, /* ldxi_l */ - 4, /* str_c */ - 16, /* sti_c */ - 4, /* str_s */ - 16, /* sti_s */ - 4, /* str_i */ - 16, /* sti_i */ - 6, /* str_l */ - 18, /* sti_l */ - 12, /* stxr_c */ - 28, /* stxi_c */ - 12, /* stxr_s */ - 28, /* stxi_s */ - 12, /* stxr_i */ - 28, /* stxi_i */ - 14, /* stxr_l */ - 30, /* stxi_l */ - 10, /* bltr */ - 14, /* blti */ - 10, /* bltr_u */ - 14, /* blti_u */ - 10, /* bler */ - 14, /* blei */ - 10, /* bler_u */ - 14, /* blei_u */ - 10, /* beqr */ - 26, /* beqi */ - 10, /* bger */ - 14, /* bgei */ - 10, /* bger_u */ - 14, /* bgei_u */ - 10, /* bgtr */ - 14, /* bgti */ - 10, /* bgtr_u */ - 14, /* bgti_u */ - 10, /* bner */ - 26, /* bnei */ - 18, /* bmsr */ - 18, /* bmsi */ - 18, /* bmcr */ - 18, /* bmci */ - 10, /* boaddr */ - 14, /* boaddi */ - 10, /* boaddr_u */ - 14, /* boaddi_u */ - 10, /* bxaddr */ - 14, /* bxaddi */ - 10, /* bxaddr_u */ - 14, /* bxaddi_u */ - 10, /* bosubr */ - 14, /* bosubi */ - 10, /* bosubr_u */ - 14, /* bosubi_u */ - 10, /* bxsubr */ - 14, /* bxsubi */ - 10, /* bxsubr_u */ - 14, /* bxsubi_u */ - 2, /* jmpr */ - 18, /* jmpi */ - 2, /* callr */ - 18, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 40, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 6, /* addr_f */ - 26, /* addi_f */ - 8, /* subr_f */ - 26, /* subi_f */ - 28, /* rsbi_f */ - 6, /* mulr_f */ - 26, /* muli_f */ - 8, /* divr_f */ - 26, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 36, /* lti_f */ - 16, /* ler_f */ - 36, /* lei_f */ - 16, /* eqr_f */ - 36, /* eqi_f */ - 16, /* ger_f */ - 36, /* gei_f */ - 16, /* gtr_f */ - 36, /* gti_f */ - 16, /* ner_f */ - 36, /* nei_f */ - 16, /* unltr_f */ - 36, /* unlti_f */ - 16, /* unler_f */ - 36, /* unlei_f */ - 20, /* uneqr_f */ - 40, /* uneqi_f */ - 16, /* unger_f */ - 36, /* ungei_f */ - 16, /* ungtr_f */ - 36, /* ungti_f */ - 20, /* ltgtr_f */ - 40, /* ltgti_f */ - 16, /* ordr_f */ - 36, /* ordi_f */ - 16, /* unordr_f */ - 36, /* unordi_f */ - 4, /* truncr_f_i */ - 4, /* truncr_f_l */ - 4, /* extr_f */ - 4, /* extr_d_f */ - 2, /* movr_f */ - 20, /* movi_f */ - 4, /* ldr_f */ - 16, /* ldi_f */ - 12, /* ldxr_f */ - 24, /* ldxi_f */ - 4, /* str_f */ - 16, /* sti_f */ - 12, /* stxr_f */ - 24, /* stxi_f */ - 10, /* bltr_f */ - 30, /* blti_f */ - 10, /* bler_f */ - 30, /* blei_f */ - 10, /* beqr_f */ - 30, /* beqi_f */ - 10, /* bger_f */ - 30, /* bgei_f */ - 10, /* bgtr_f */ - 30, /* bgti_f */ - 10, /* bner_f */ - 30, /* bnei_f */ - 10, /* bunltr_f */ - 30, /* bunlti_f */ - 10, /* bunler_f */ - 30, /* bunlei_f */ - 18, /* buneqr_f */ - 38, /* buneqi_f */ - 10, /* bunger_f */ - 30, /* bungei_f */ - 10, /* bungtr_f */ - 30, /* bungti_f */ - 18, /* bltgtr_f */ - 38, /* bltgti_f */ - 10, /* bordr_f */ - 30, /* bordi_f */ - 10, /* bunordr_f */ - 30, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 6, /* addr_d */ - 26, /* addi_d */ - 8, /* subr_d */ - 26, /* subi_d */ - 28, /* rsbi_d */ - 6, /* mulr_d */ - 26, /* muli_d */ - 8, /* divr_d */ - 26, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 36, /* lti_d */ - 16, /* ler_d */ - 36, /* lei_d */ - 16, /* eqr_d */ - 36, /* eqi_d */ - 16, /* ger_d */ - 36, /* gei_d */ - 16, /* gtr_d */ - 36, /* gti_d */ - 16, /* ner_d */ - 36, /* nei_d */ - 16, /* unltr_d */ - 36, /* unlti_d */ - 16, /* unler_d */ - 36, /* unlei_d */ - 20, /* uneqr_d */ - 40, /* uneqi_d */ - 16, /* unger_d */ - 36, /* ungei_d */ - 16, /* ungtr_d */ - 36, /* ungti_d */ - 20, /* ltgtr_d */ - 40, /* ltgti_d */ - 16, /* ordr_d */ - 36, /* ordi_d */ - 16, /* unordr_d */ - 36, /* unordi_d */ - 4, /* truncr_d_i */ - 4, /* truncr_d_l */ - 4, /* extr_d */ - 4, /* extr_f_d */ - 2, /* movr_d */ - 24, /* movi_d */ - 4, /* ldr_d */ - 16, /* ldi_d */ - 12, /* ldxr_d */ - 24, /* ldxi_d */ - 4, /* str_d */ - 16, /* sti_d */ - 12, /* stxr_d */ - 24, /* stxi_d */ - 10, /* bltr_d */ - 30, /* blti_d */ - 10, /* bler_d */ - 30, /* blei_d */ - 10, /* beqr_d */ - 34, /* beqi_d */ - 10, /* bger_d */ - 30, /* bgei_d */ - 10, /* bgtr_d */ - 30, /* bgti_d */ - 10, /* bner_d */ - 30, /* bnei_d */ - 10, /* bunltr_d */ - 30, /* bunlti_d */ - 10, /* bunler_d */ - 30, /* bunlei_d */ - 18, /* buneqr_d */ - 38, /* buneqi_d */ - 10, /* bunger_d */ - 30, /* bungei_d */ - 10, /* bungtr_d */ - 30, /* bungti_d */ - 18, /* bltgtr_d */ - 38, /* bltgti_d */ - 10, /* bordr_d */ - 30, /* bordi_d */ - 10, /* bunordr_d */ - 30, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_sparc-sz.c b/jit/jit_sparc-sz.c deleted file mode 100644 index ac683b660..000000000 --- a/jit/jit_sparc-sz.c +++ /dev/null @@ -1,803 +0,0 @@ -#if __WORDSIZE == 32 -#define JIT_INSTR_MAX 44 - 0, /* data */ - 0, /* live */ - 0, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 0, /* label */ - 36, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 8, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 12, /* addi */ - 4, /* addcr */ - 12, /* addci */ - 4, /* addxr */ - 4, /* addxi */ - 4, /* subr */ - 12, /* subi */ - 4, /* subcr */ - 12, /* subci */ - 4, /* subxr */ - 4, /* subxi */ - 16, /* rsbi */ - 4, /* mulr */ - 12, /* muli */ - 8, /* qmulr */ - 16, /* qmuli */ - 8, /* qmulr_u */ - 16, /* qmuli_u */ - 12, /* divr */ - 20, /* divi */ - 8, /* divr_u */ - 16, /* divi_u */ - 28, /* qdivr */ - 24, /* qdivi */ - 24, /* qdivr_u */ - 20, /* qdivi_u */ - 20, /* remr */ - 28, /* remi */ - 16, /* remr_u */ - 24, /* remi_u */ - 4, /* andr */ - 12, /* andi */ - 4, /* orr */ - 12, /* ori */ - 4, /* xorr */ - 12, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 16, /* ltr */ - 16, /* lti */ - 16, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 16, /* eqr */ - 16, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 16, /* gtr */ - 16, /* gti */ - 16, /* gtr_u */ - 16, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 8, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 8, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 8, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 4, /* ldr_c */ - 12, /* ldi_c */ - 4, /* ldr_uc */ - 12, /* ldi_uc */ - 4, /* ldr_s */ - 12, /* ldi_s */ - 4, /* ldr_us */ - 12, /* ldi_us */ - 4, /* ldr_i */ - 12, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 4, /* ldxr_c */ - 8, /* ldxi_c */ - 4, /* ldxr_uc */ - 8, /* ldxi_uc */ - 4, /* ldxr_s */ - 8, /* ldxi_s */ - 4, /* ldxr_us */ - 8, /* ldxi_us */ - 4, /* ldxr_i */ - 8, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 4, /* str_c */ - 12, /* sti_c */ - 4, /* str_s */ - 12, /* sti_s */ - 4, /* str_i */ - 12, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 4, /* stxr_c */ - 8, /* stxi_c */ - 4, /* stxr_s */ - 8, /* stxi_s */ - 4, /* stxr_i */ - 8, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 12, /* bltr */ - 12, /* blti */ - 12, /* bltr_u */ - 12, /* blti_u */ - 12, /* bler */ - 12, /* blei */ - 12, /* bler_u */ - 12, /* blei_u */ - 12, /* beqr */ - 20, /* beqi */ - 12, /* bger */ - 12, /* bgei */ - 12, /* bger_u */ - 12, /* bgei_u */ - 12, /* bgtr */ - 12, /* bgti */ - 12, /* bgtr_u */ - 12, /* bgti_u */ - 12, /* bner */ - 20, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 12, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 12, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 12, /* bosubi */ - 12, /* bosubr_u */ - 12, /* bosubi_u */ - 12, /* bxsubr */ - 12, /* bxsubi */ - 12, /* bxsubr_u */ - 12, /* bxsubi_u */ - 8, /* jmpr */ - 16, /* jmpi */ - 8, /* callr */ - 16, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 44, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 4, /* addr_f */ - 16, /* addi_f */ - 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ - 4, /* mulr_f */ - 16, /* muli_f */ - 4, /* divr_f */ - 16, /* divi_f */ - 4, /* negr_f */ - 4, /* absr_f */ - 4, /* sqrtr_f */ - 16, /* ltr_f */ - 32, /* lti_f */ - 16, /* ler_f */ - 32, /* lei_f */ - 16, /* eqr_f */ - 32, /* eqi_f */ - 16, /* ger_f */ - 32, /* gei_f */ - 16, /* gtr_f */ - 32, /* gti_f */ - 16, /* ner_f */ - 32, /* nei_f */ - 16, /* unltr_f */ - 32, /* unlti_f */ - 16, /* unler_f */ - 32, /* unlei_f */ - 16, /* uneqr_f */ - 32, /* uneqi_f */ - 16, /* unger_f */ - 32, /* ungei_f */ - 16, /* ungtr_f */ - 32, /* ungti_f */ - 16, /* ltgtr_f */ - 32, /* ltgti_f */ - 16, /* ordr_f */ - 32, /* ordi_f */ - 16, /* unordr_f */ - 32, /* unordi_f */ - 12, /* truncr_f_i */ - 0, /* truncr_f_l */ - 12, /* extr_f */ - 4, /* extr_d_f */ - 4, /* movr_f */ - 16, /* movi_f */ - 4, /* ldr_f */ - 12, /* ldi_f */ - 4, /* ldxr_f */ - 8, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ - 4, /* stxr_f */ - 8, /* stxi_f */ - 12, /* bltr_f */ - 24, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 24, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ - 12, /* bgtr_f */ - 24, /* bgti_f */ - 12, /* bner_f */ - 28, /* bnei_f */ - 12, /* bunltr_f */ - 28, /* bunlti_f */ - 12, /* bunler_f */ - 28, /* bunlei_f */ - 12, /* buneqr_f */ - 28, /* buneqi_f */ - 12, /* bunger_f */ - 28, /* bungei_f */ - 12, /* bungtr_f */ - 28, /* bungti_f */ - 12, /* bltgtr_f */ - 24, /* bltgti_f */ - 12, /* bordr_f */ - 24, /* bordi_f */ - 12, /* bunordr_f */ - 28, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 24, /* addi_d */ - 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ - 4, /* mulr_d */ - 24, /* muli_d */ - 4, /* divr_d */ - 24, /* divi_d */ - 8, /* negr_d */ - 8, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 40, /* lti_d */ - 16, /* ler_d */ - 40, /* lei_d */ - 16, /* eqr_d */ - 40, /* eqi_d */ - 16, /* ger_d */ - 40, /* gei_d */ - 16, /* gtr_d */ - 40, /* gti_d */ - 16, /* ner_d */ - 40, /* nei_d */ - 16, /* unltr_d */ - 40, /* unlti_d */ - 16, /* unler_d */ - 40, /* unlei_d */ - 16, /* uneqr_d */ - 40, /* uneqi_d */ - 16, /* unger_d */ - 40, /* ungei_d */ - 16, /* ungtr_d */ - 40, /* ungti_d */ - 16, /* ltgtr_d */ - 40, /* ltgti_d */ - 16, /* ordr_d */ - 40, /* ordi_d */ - 16, /* unordr_d */ - 40, /* unordi_d */ - 12, /* truncr_d_i */ - 0, /* truncr_d_l */ - 16, /* extr_d */ - 4, /* extr_f_d */ - 8, /* movr_d */ - 24, /* movi_d */ - 4, /* ldr_d */ - 12, /* ldi_d */ - 4, /* ldxr_d */ - 8, /* ldxi_d */ - 4, /* str_d */ - 12, /* sti_d */ - 4, /* stxr_d */ - 8, /* stxi_d */ - 12, /* bltr_d */ - 32, /* blti_d */ - 12, /* bler_d */ - 32, /* blei_d */ - 12, /* beqr_d */ - 32, /* beqi_d */ - 12, /* bger_d */ - 32, /* bgei_d */ - 12, /* bgtr_d */ - 32, /* bgti_d */ - 12, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ - 12, /* bunler_d */ - 36, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_d */ - 12, /* bunger_d */ - 36, /* bungei_d */ - 12, /* bungtr_d */ - 36, /* bungti_d */ - 12, /* bltgtr_d */ - 32, /* bltgti_d */ - 12, /* bordr_d */ - 32, /* bordi_d */ - 12, /* bunordr_d */ - 36, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ - -#if __WORDSIZE == 64 -#define JIT_INSTR_MAX 64 - 0, /* data */ - 0, /* live */ - 4, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 4, /* label */ - 36, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 4, /* va_start */ - 8, /* va_arg */ - 8, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 28, /* addi */ - 24, /* addcr */ - 48, /* addci */ - 52, /* addxr */ - 52, /* addxi */ - 4, /* subr */ - 28, /* subi */ - 24, /* subcr */ - 48, /* subci */ - 52, /* subxr */ - 52, /* subxi */ - 32, /* rsbi */ - 4, /* mulr */ - 28, /* muli */ - 48, /* qmulr */ - 64, /* qmuli */ - 48, /* qmulr_u */ - 64, /* qmuli_u */ - 4, /* divr */ - 28, /* divi */ - 4, /* divr_u */ - 28, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ - 12, /* remr */ - 36, /* remi */ - 12, /* remr_u */ - 36, /* remi_u */ - 4, /* andr */ - 28, /* andi */ - 4, /* orr */ - 28, /* ori */ - 4, /* xorr */ - 28, /* xori */ - 4, /* lshr */ - 4, /* lshi */ - 4, /* rshr */ - 4, /* rshi */ - 4, /* rshr_u */ - 4, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 16, /* ltr */ - 16, /* lti */ - 16, /* ltr_u */ - 16, /* lti_u */ - 16, /* ler */ - 16, /* lei */ - 16, /* ler_u */ - 16, /* lei_u */ - 16, /* eqr */ - 16, /* eqi */ - 16, /* ger */ - 16, /* gei */ - 16, /* ger_u */ - 16, /* gei_u */ - 16, /* gtr */ - 16, /* gti */ - 16, /* gtr_u */ - 16, /* gti_u */ - 16, /* ner */ - 16, /* nei */ - 4, /* movr */ - 24, /* movi */ - 8, /* extr_c */ - 4, /* extr_uc */ - 8, /* extr_s */ - 8, /* extr_us */ - 8, /* extr_i */ - 8, /* extr_ui */ - 8, /* htonr_us */ - 8, /* htonr_ui */ - 4, /* htonr_ul */ - 4, /* ldr_c */ - 28, /* ldi_c */ - 4, /* ldr_uc */ - 28, /* ldi_uc */ - 4, /* ldr_s */ - 28, /* ldi_s */ - 4, /* ldr_us */ - 28, /* ldi_us */ - 4, /* ldr_i */ - 28, /* ldi_i */ - 4, /* ldr_ui */ - 28, /* ldi_ui */ - 4, /* ldr_l */ - 28, /* ldi_l */ - 4, /* ldxr_c */ - 24, /* ldxi_c */ - 4, /* ldxr_uc */ - 24, /* ldxi_uc */ - 4, /* ldxr_s */ - 24, /* ldxi_s */ - 4, /* ldxr_us */ - 24, /* ldxi_us */ - 4, /* ldxr_i */ - 24, /* ldxi_i */ - 4, /* ldxr_ui */ - 24, /* ldxi_ui */ - 4, /* ldxr_l */ - 24, /* ldxi_l */ - 4, /* str_c */ - 28, /* sti_c */ - 4, /* str_s */ - 28, /* sti_s */ - 4, /* str_i */ - 28, /* sti_i */ - 4, /* str_l */ - 28, /* sti_l */ - 4, /* stxr_c */ - 24, /* stxi_c */ - 4, /* stxr_s */ - 24, /* stxi_s */ - 4, /* stxr_i */ - 24, /* stxi_i */ - 4, /* stxr_l */ - 24, /* stxi_l */ - 12, /* bltr */ - 12, /* blti */ - 12, /* bltr_u */ - 12, /* blti_u */ - 12, /* bler */ - 12, /* blei */ - 12, /* bler_u */ - 12, /* blei_u */ - 12, /* beqr */ - 36, /* beqi */ - 12, /* bger */ - 12, /* bgei */ - 12, /* bger_u */ - 12, /* bgei_u */ - 12, /* bgtr */ - 12, /* bgti */ - 12, /* bgtr_u */ - 12, /* bgti_u */ - 12, /* bner */ - 36, /* bnei */ - 12, /* bmsr */ - 12, /* bmsi */ - 12, /* bmcr */ - 12, /* bmci */ - 12, /* boaddr */ - 12, /* boaddi */ - 12, /* boaddr_u */ - 12, /* boaddi_u */ - 12, /* bxaddr */ - 12, /* bxaddi */ - 12, /* bxaddr_u */ - 12, /* bxaddi_u */ - 12, /* bosubr */ - 12, /* bosubi */ - 12, /* bosubr_u */ - 12, /* bosubi_u */ - 12, /* bxsubr */ - 12, /* bxsubi */ - 12, /* bxsubr_u */ - 12, /* bxsubi_u */ - 8, /* jmpr */ - 32, /* jmpi */ - 8, /* callr */ - 32, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 44, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 16, /* addr_f */ - 40, /* addi_f */ - 24, /* subr_f */ - 40, /* subi_f */ - 40, /* rsbi_f */ - 16, /* mulr_f */ - 40, /* muli_f */ - 16, /* divr_f */ - 40, /* divi_f */ - 12, /* negr_f */ - 12, /* absr_f */ - 12, /* sqrtr_f */ - 24, /* ltr_f */ - 48, /* lti_f */ - 24, /* ler_f */ - 48, /* lei_f */ - 24, /* eqr_f */ - 48, /* eqi_f */ - 24, /* ger_f */ - 48, /* gei_f */ - 24, /* gtr_f */ - 48, /* gti_f */ - 24, /* ner_f */ - 48, /* nei_f */ - 24, /* unltr_f */ - 48, /* unlti_f */ - 24, /* unler_f */ - 48, /* unlei_f */ - 24, /* uneqr_f */ - 48, /* uneqi_f */ - 24, /* unger_f */ - 48, /* ungei_f */ - 24, /* ungtr_f */ - 48, /* ungti_f */ - 24, /* ltgtr_f */ - 48, /* ltgti_f */ - 24, /* ordr_f */ - 48, /* ordi_f */ - 24, /* unordr_f */ - 48, /* unordi_f */ - 16, /* truncr_f_i */ - 16, /* truncr_f_l */ - 20, /* extr_f */ - 12, /* extr_d_f */ - 16, /* movr_f */ - 32, /* movi_f */ - 8, /* ldr_f */ - 32, /* ldi_f */ - 8, /* ldxr_f */ - 28, /* ldxi_f */ - 8, /* str_f */ - 32, /* sti_f */ - 8, /* stxr_f */ - 28, /* stxi_f */ - 20, /* bltr_f */ - 44, /* blti_f */ - 20, /* bler_f */ - 44, /* blei_f */ - 28, /* beqr_f */ - 60, /* beqi_f */ - 20, /* bger_f */ - 44, /* bgei_f */ - 20, /* bgtr_f */ - 44, /* bgti_f */ - 20, /* bner_f */ - 44, /* bnei_f */ - 20, /* bunltr_f */ - 44, /* bunlti_f */ - 20, /* bunler_f */ - 44, /* bunlei_f */ - 20, /* buneqr_f */ - 44, /* buneqi_f */ - 20, /* bunger_f */ - 44, /* bungei_f */ - 20, /* bungtr_f */ - 44, /* bungti_f */ - 20, /* bltgtr_f */ - 44, /* bltgti_f */ - 20, /* bordr_f */ - 44, /* bordi_f */ - 20, /* bunordr_f */ - 44, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 4, /* addr_d */ - 32, /* addi_d */ - 4, /* subr_d */ - 32, /* subi_d */ - 32, /* rsbi_d */ - 4, /* mulr_d */ - 32, /* muli_d */ - 4, /* divr_d */ - 32, /* divi_d */ - 4, /* negr_d */ - 4, /* absr_d */ - 4, /* sqrtr_d */ - 16, /* ltr_d */ - 48, /* lti_d */ - 16, /* ler_d */ - 48, /* lei_d */ - 16, /* eqr_d */ - 48, /* eqi_d */ - 16, /* ger_d */ - 48, /* gei_d */ - 16, /* gtr_d */ - 48, /* gti_d */ - 16, /* ner_d */ - 48, /* nei_d */ - 16, /* unltr_d */ - 48, /* unlti_d */ - 16, /* unler_d */ - 48, /* unlei_d */ - 16, /* uneqr_d */ - 48, /* uneqi_d */ - 16, /* unger_d */ - 48, /* ungei_d */ - 16, /* ungtr_d */ - 48, /* ungti_d */ - 16, /* ltgtr_d */ - 48, /* ltgti_d */ - 16, /* ordr_d */ - 48, /* ordi_d */ - 16, /* unordr_d */ - 48, /* unordi_d */ - 16, /* truncr_d_i */ - 12, /* truncr_d_l */ - 12, /* extr_d */ - 8, /* extr_f_d */ - 4, /* movr_d */ - 32, /* movi_d */ - 4, /* ldr_d */ - 28, /* ldi_d */ - 4, /* ldxr_d */ - 24, /* ldxi_d */ - 4, /* str_d */ - 28, /* sti_d */ - 4, /* stxr_d */ - 24, /* stxi_d */ - 12, /* bltr_d */ - 40, /* blti_d */ - 12, /* bler_d */ - 40, /* blei_d */ - 12, /* beqr_d */ - 40, /* beqi_d */ - 12, /* bger_d */ - 40, /* bgei_d */ - 12, /* bgtr_d */ - 40, /* bgti_d */ - 12, /* bner_d */ - 44, /* bnei_d */ - 12, /* bunltr_d */ - 44, /* bunlti_d */ - 12, /* bunler_d */ - 44, /* bunlei_d */ - 12, /* buneqr_d */ - 44, /* buneqi_d */ - 12, /* bunger_d */ - 44, /* bungei_d */ - 12, /* bungtr_d */ - 44, /* bungti_d */ - 12, /* bltgtr_d */ - 40, /* bltgti_d */ - 12, /* bordr_d */ - 40, /* bordi_d */ - 12, /* bunordr_d */ - 44, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __WORDSIZE */ diff --git a/jit/jit_x86-sz.c b/jit/jit_x86-sz.c deleted file mode 100644 index 7183e6de4..000000000 --- a/jit/jit_x86-sz.c +++ /dev/null @@ -1,1610 +0,0 @@ - -#if __X32 -#define JIT_INSTR_MAX 42 - 0, /* data */ - 0, /* live */ - 3, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 3, /* label */ - 34, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 3, /* va_start */ - 5, /* va_arg */ - 7, /* va_arg_d */ - 0, /* va_end */ - 3, /* addr */ - 6, /* addi */ - 4, /* addcr */ - 6, /* addci */ - 4, /* addxr */ - 5, /* addxi */ - 4, /* subr */ - 6, /* subi */ - 6, /* subcr */ - 6, /* subci */ - 6, /* subxr */ - 5, /* subxi */ - 8, /* rsbi */ - 5, /* mulr */ - 7, /* muli */ - 20, /* qmulr */ - 25, /* qmuli */ - 20, /* qmulr_u */ - 25, /* qmuli_u */ - 21, /* divr */ - 24, /* divi */ - 22, /* divr_u */ - 25, /* divi_u */ - 23, /* qdivr */ - 26, /* qdivi */ - 24, /* qdivr_u */ - 27, /* qdivi_u */ - 21, /* remr */ - 24, /* remi */ - 22, /* remr_u */ - 25, /* remi_u */ - 4, /* andr */ - 7, /* andi */ - 4, /* orr */ - 8, /* ori */ - 4, /* xorr */ - 8, /* xori */ - 16, /* lshr */ - 7, /* lshi */ - 16, /* rshr */ - 5, /* rshi */ - 16, /* rshr_u */ - 5, /* rshi_u */ - 4, /* negr */ - 4, /* comr */ - 15, /* ltr */ - 16, /* lti */ - 15, /* ltr_u */ - 16, /* lti_u */ - 15, /* ler */ - 16, /* lei */ - 15, /* ler_u */ - 16, /* lei_u */ - 15, /* eqr */ - 16, /* eqi */ - 15, /* ger */ - 16, /* gei */ - 15, /* ger_u */ - 16, /* gei_u */ - 15, /* gtr */ - 16, /* gti */ - 15, /* gtr_u */ - 16, /* gti_u */ - 15, /* ner */ - 16, /* nei */ - 2, /* movr */ - 5, /* movi */ - 11, /* extr_c */ - 11, /* extr_uc */ - 3, /* extr_s */ - 3, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 7, /* htonr_us */ - 4, /* htonr_ui */ - 0, /* htonr_ul */ - 3, /* ldr_c */ - 7, /* ldi_c */ - 3, /* ldr_uc */ - 7, /* ldi_uc */ - 3, /* ldr_s */ - 7, /* ldi_s */ - 3, /* ldr_us */ - 7, /* ldi_us */ - 2, /* ldr_i */ - 6, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 4, /* ldxr_c */ - 7, /* ldxi_c */ - 4, /* ldxr_uc */ - 7, /* ldxi_uc */ - 4, /* ldxr_s */ - 7, /* ldxi_s */ - 4, /* ldxr_us */ - 7, /* ldxi_us */ - 3, /* ldxr_i */ - 6, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 10, /* str_c */ - 14, /* sti_c */ - 3, /* str_s */ - 7, /* sti_s */ - 2, /* str_i */ - 6, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 11, /* stxr_c */ - 11, /* stxi_c */ - 4, /* stxr_s */ - 7, /* stxi_s */ - 3, /* stxr_i */ - 6, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 8, /* bltr */ - 9, /* blti */ - 8, /* bltr_u */ - 9, /* blti_u */ - 8, /* bler */ - 12, /* blei */ - 8, /* bler_u */ - 9, /* blei_u */ - 8, /* beqr */ - 12, /* beqi */ - 8, /* bger */ - 9, /* bgei */ - 8, /* bger_u */ - 9, /* bgei_u */ - 8, /* bgtr */ - 9, /* bgti */ - 8, /* bgtr_u */ - 9, /* bgti_u */ - 8, /* bner */ - 12, /* bnei */ - 8, /* bmsr */ - 12, /* bmsi */ - 8, /* bmcr */ - 12, /* bmci */ - 8, /* boaddr */ - 9, /* boaddi */ - 8, /* boaddr_u */ - 9, /* boaddi_u */ - 8, /* bxaddr */ - 9, /* bxaddi */ - 8, /* bxaddr_u */ - 9, /* bxaddi_u */ - 8, /* bosubr */ - 9, /* bosubi */ - 8, /* bosubr_u */ - 9, /* bosubi_u */ - 8, /* bxsubr */ - 9, /* bxsubi */ - 8, /* bxsubr_u */ - 9, /* bxsubi_u */ - 2, /* jmpr */ - 5, /* jmpi */ - 2, /* callr */ - 5, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 24, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 8, /* addr_f */ - 19, /* addi_f */ - 12, /* subr_f */ - 19, /* subi_f */ - 21, /* rsbi_f */ - 8, /* mulr_f */ - 19, /* muli_f */ - 12, /* divr_f */ - 19, /* divi_f */ - 12, /* negr_f */ - 12, /* absr_f */ - 6, /* sqrtr_f */ - 13, /* ltr_f */ - 27, /* lti_f */ - 13, /* ler_f */ - 27, /* lei_f */ - 15, /* eqr_f */ - 29, /* eqi_f */ - 13, /* ger_f */ - 27, /* gei_f */ - 13, /* gtr_f */ - 27, /* gti_f */ - 18, /* ner_f */ - 32, /* nei_f */ - 13, /* unltr_f */ - 27, /* unlti_f */ - 13, /* unler_f */ - 27, /* unlei_f */ - 13, /* uneqr_f */ - 27, /* uneqi_f */ - 13, /* unger_f */ - 27, /* ungei_f */ - 13, /* ungtr_f */ - 27, /* ungti_f */ - 13, /* ltgtr_f */ - 27, /* ltgti_f */ - 13, /* ordr_f */ - 27, /* ordi_f */ - 13, /* unordr_f */ - 27, /* unordi_f */ - 8, /* truncr_f_i */ - 0, /* truncr_f_l */ - 8, /* extr_f */ - 4, /* extr_d_f */ - 10, /* movr_f */ - 19, /* movi_f */ - 4, /* ldr_f */ - 8, /* ldi_f */ - 5, /* ldxr_f */ - 8, /* ldxi_f */ - 6, /* str_f */ - 10, /* sti_f */ - 7, /* stxr_f */ - 8, /* stxi_f */ - 10, /* bltr_f */ - 23, /* blti_f */ - 10, /* bler_f */ - 23, /* blei_f */ - 12, /* beqr_f */ - 25, /* beqi_f */ - 10, /* bger_f */ - 23, /* bgei_f */ - 10, /* bgtr_f */ - 23, /* bgti_f */ - 13, /* bner_f */ - 26, /* bnei_f */ - 10, /* bunltr_f */ - 23, /* bunlti_f */ - 10, /* bunler_f */ - 23, /* bunlei_f */ - 10, /* buneqr_f */ - 23, /* buneqi_f */ - 10, /* bunger_f */ - 23, /* bungei_f */ - 10, /* bungtr_f */ - 23, /* bungti_f */ - 10, /* bltgtr_f */ - 23, /* bltgti_f */ - 10, /* bordr_f */ - 23, /* bordi_f */ - 10, /* bunordr_f */ - 23, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 10, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 8, /* addr_d */ - 26, /* addi_d */ - 12, /* subr_d */ - 26, /* subi_d */ - 30, /* rsbi_d */ - 8, /* mulr_d */ - 26, /* muli_d */ - 12, /* divr_d */ - 26, /* divi_d */ - 18, /* negr_d */ - 13, /* absr_d */ - 6, /* sqrtr_d */ - 13, /* ltr_d */ - 37, /* lti_d */ - 13, /* ler_d */ - 37, /* lei_d */ - 15, /* eqr_d */ - 39, /* eqi_d */ - 13, /* ger_d */ - 37, /* gei_d */ - 13, /* gtr_d */ - 37, /* gti_d */ - 18, /* ner_d */ - 42, /* nei_d */ - 13, /* unltr_d */ - 37, /* unlti_d */ - 13, /* unler_d */ - 37, /* unlei_d */ - 13, /* uneqr_d */ - 37, /* uneqi_d */ - 13, /* unger_d */ - 37, /* ungei_d */ - 13, /* ungtr_d */ - 37, /* ungti_d */ - 13, /* ltgtr_d */ - 37, /* ltgti_d */ - 13, /* ordr_d */ - 37, /* ordi_d */ - 13, /* unordr_d */ - 37, /* unordi_d */ - 8, /* truncr_d_i */ - 0, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 10, /* movr_d */ - 24, /* movi_d */ - 4, /* ldr_d */ - 8, /* ldi_d */ - 5, /* ldxr_d */ - 8, /* ldxi_d */ - 6, /* str_d */ - 10, /* sti_d */ - 7, /* stxr_d */ - 8, /* stxi_d */ - 10, /* bltr_d */ - 28, /* blti_d */ - 10, /* bler_d */ - 28, /* blei_d */ - 12, /* beqr_d */ - 30, /* beqi_d */ - 10, /* bger_d */ - 28, /* bgei_d */ - 10, /* bgtr_d */ - 28, /* bgti_d */ - 13, /* bner_d */ - 31, /* bnei_d */ - 10, /* bunltr_d */ - 28, /* bunlti_d */ - 10, /* bunler_d */ - 28, /* bunlei_d */ - 10, /* buneqr_d */ - 28, /* buneqi_d */ - 10, /* bunger_d */ - 28, /* bungei_d */ - 10, /* bungtr_d */ - 28, /* bungti_d */ - 10, /* bltgtr_d */ - 28, /* bltgti_d */ - 10, /* bordr_d */ - 28, /* bordi_d */ - 10, /* bunordr_d */ - 28, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 10, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif - -#if __X64 -#if __CYGWIN__ -#define JIT_INSTR_MAX 130 - 0, /* data */ - 0, /* live */ - 6, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 7, /* label */ - 130, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 7, /* va_start */ - 7, /* va_arg */ - 9, /* va_arg_d */ - 0, /* va_end */ - 4, /* addr */ - 13, /* addi */ - 6, /* addcr */ - 13, /* addci */ - 6, /* addxr */ - 7, /* addxi */ - 6, /* subr */ - 13, /* subi */ - 9, /* subcr */ - 13, /* subci */ - 9, /* subxr */ - 7, /* subxi */ - 16, /* rsbi */ - 7, /* mulr */ - 14, /* muli */ - 20, /* qmulr */ - 30, /* qmuli */ - 20, /* qmulr_u */ - 30, /* qmuli_u */ - 22, /* divr */ - 29, /* divi */ - 23, /* divr_u */ - 30, /* divi_u */ - 25, /* qdivr */ - 32, /* qdivi */ - 26, /* qdivr_u */ - 33, /* qdivi_u */ - 22, /* remr */ - 29, /* remi */ - 23, /* remr_u */ - 30, /* remi_u */ - 6, /* andr */ - 13, /* andi */ - 6, /* orr */ - 13, /* ori */ - 6, /* xorr */ - 13, /* xori */ - 9, /* lshr */ - 8, /* lshi */ - 9, /* rshr */ - 7, /* rshi */ - 9, /* rshr_u */ - 7, /* rshi_u */ - 6, /* negr */ - 6, /* comr */ - 13, /* ltr */ - 14, /* lti */ - 13, /* ltr_u */ - 14, /* lti_u */ - 13, /* ler */ - 14, /* lei */ - 13, /* ler_u */ - 14, /* lei_u */ - 13, /* eqr */ - 14, /* eqi */ - 13, /* ger */ - 14, /* gei */ - 13, /* ger_u */ - 14, /* gei_u */ - 13, /* gtr */ - 14, /* gti */ - 13, /* gtr_u */ - 14, /* gti_u */ - 13, /* ner */ - 14, /* nei */ - 3, /* movr */ - 10, /* movi */ - 7, /* extr_c */ - 7, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 3, /* extr_i */ - 3, /* extr_ui */ - 9, /* htonr_us */ - 6, /* htonr_ui */ - 6, /* htonr_ul */ - 4, /* ldr_c */ - 15, /* ldi_c */ - 4, /* ldr_uc */ - 15, /* ldi_uc */ - 4, /* ldr_s */ - 15, /* ldi_s */ - 4, /* ldr_us */ - 15, /* ldi_us */ - 3, /* ldr_i */ - 14, /* ldi_i */ - 3, /* ldr_ui */ - 14, /* ldi_ui */ - 3, /* ldr_l */ - 14, /* ldi_l */ - 5, /* ldxr_c */ - 8, /* ldxi_c */ - 5, /* ldxr_uc */ - 8, /* ldxi_uc */ - 5, /* ldxr_s */ - 8, /* ldxi_s */ - 5, /* ldxr_us */ - 8, /* ldxi_us */ - 4, /* ldxr_i */ - 7, /* ldxi_i */ - 4, /* ldxr_ui */ - 6, /* ldxi_ui */ - 4, /* ldxr_l */ - 7, /* ldxi_l */ - 6, /* str_c */ - 17, /* sti_c */ - 4, /* str_s */ - 15, /* sti_s */ - 3, /* str_i */ - 14, /* sti_i */ - 3, /* str_l */ - 14, /* sti_l */ - 7, /* stxr_c */ - 7, /* stxi_c */ - 5, /* stxr_s */ - 7, /* stxi_s */ - 4, /* stxr_i */ - 6, /* stxi_i */ - 4, /* stxr_l */ - 8, /* stxi_l */ - 9, /* bltr */ - 10, /* blti */ - 9, /* bltr_u */ - 10, /* blti_u */ - 9, /* bler */ - 13, /* blei */ - 9, /* bler_u */ - 10, /* blei_u */ - 9, /* beqr */ - 19, /* beqi */ - 9, /* bger */ - 10, /* bgei */ - 9, /* bger_u */ - 10, /* bgei_u */ - 9, /* bgtr */ - 10, /* bgti */ - 9, /* bgtr_u */ - 10, /* bgti_u */ - 9, /* bner */ - 19, /* bnei */ - 9, /* bmsr */ - 13, /* bmsi */ - 9, /* bmcr */ - 13, /* bmci */ - 9, /* boaddr */ - 10, /* boaddi */ - 9, /* boaddr_u */ - 10, /* boaddi_u */ - 9, /* bxaddr */ - 10, /* bxaddi */ - 9, /* bxaddr_u */ - 10, /* bxaddi_u */ - 9, /* bosubr */ - 10, /* bosubi */ - 9, /* bosubr_u */ - 10, /* bosubi_u */ - 9, /* bxsubr */ - 10, /* bxsubi */ - 9, /* bxsubr_u */ - 10, /* bxsubi_u */ - 3, /* jmpr */ - 5, /* jmpi */ - 3, /* callr */ - 13, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 124, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 10, /* addr_f */ - 21, /* addi_f */ - 15, /* subr_f */ - 21, /* subi_f */ - 27, /* rsbi_f */ - 10, /* mulr_f */ - 21, /* muli_f */ - 15, /* divr_f */ - 21, /* divi_f */ - 15, /* negr_f */ - 15, /* absr_f */ - 5, /* sqrtr_f */ - 16, /* ltr_f */ - 31, /* lti_f */ - 16, /* ler_f */ - 31, /* lei_f */ - 18, /* eqr_f */ - 33, /* eqi_f */ - 16, /* ger_f */ - 31, /* gei_f */ - 16, /* gtr_f */ - 31, /* gti_f */ - 20, /* ner_f */ - 35, /* nei_f */ - 16, /* unltr_f */ - 31, /* unlti_f */ - 16, /* unler_f */ - 31, /* unlei_f */ - 16, /* uneqr_f */ - 31, /* uneqi_f */ - 16, /* unger_f */ - 31, /* ungei_f */ - 16, /* ungtr_f */ - 31, /* ungti_f */ - 16, /* ltgtr_f */ - 31, /* ltgti_f */ - 16, /* ordr_f */ - 31, /* ordi_f */ - 16, /* unordr_f */ - 31, /* unordi_f */ - 5, /* truncr_f_i */ - 5, /* truncr_f_l */ - 5, /* extr_f */ - 5, /* extr_d_f */ - 5, /* movr_f */ - 15, /* movi_f */ - 5, /* ldr_f */ - 16, /* ldi_f */ - 6, /* ldxr_f */ - 8, /* ldxi_f */ - 5, /* str_f */ - 16, /* sti_f */ - 6, /* stxr_f */ - 9, /* stxi_f */ - 10, /* bltr_f */ - 21, /* blti_f */ - 10, /* bler_f */ - 24, /* blei_f */ - 12, /* beqr_f */ - 27, /* beqi_f */ - 10, /* bger_f */ - 25, /* bgei_f */ - 10, /* bgtr_f */ - 25, /* bgti_f */ - 13, /* bner_f */ - 28, /* bnei_f */ - 10, /* bunltr_f */ - 25, /* bunlti_f */ - 10, /* bunler_f */ - 25, /* bunlei_f */ - 10, /* buneqr_f */ - 25, /* buneqi_f */ - 10, /* bunger_f */ - 25, /* bungei_f */ - 10, /* bungtr_f */ - 25, /* bungti_f */ - 10, /* bltgtr_f */ - 25, /* bltgti_f */ - 10, /* bordr_f */ - 25, /* bordi_f */ - 10, /* bunordr_f */ - 25, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 10, /* addr_d */ - 25, /* addi_d */ - 15, /* subr_d */ - 25, /* subi_d */ - 27, /* rsbi_d */ - 10, /* mulr_d */ - 25, /* muli_d */ - 15, /* divr_d */ - 25, /* divi_d */ - 22, /* negr_d */ - 16, /* absr_d */ - 5, /* sqrtr_d */ - 17, /* ltr_d */ - 32, /* lti_d */ - 17, /* ler_d */ - 32, /* lei_d */ - 19, /* eqr_d */ - 34, /* eqi_d */ - 17, /* ger_d */ - 32, /* gei_d */ - 17, /* gtr_d */ - 32, /* gti_d */ - 21, /* ner_d */ - 36, /* nei_d */ - 17, /* unltr_d */ - 32, /* unlti_d */ - 17, /* unler_d */ - 32, /* unlei_d */ - 17, /* uneqr_d */ - 32, /* uneqi_d */ - 17, /* unger_d */ - 32, /* ungei_d */ - 17, /* ungtr_d */ - 32, /* ungti_d */ - 17, /* ltgtr_d */ - 32, /* ltgti_d */ - 17, /* ordr_d */ - 32, /* ordi_d */ - 17, /* unordr_d */ - 32, /* unordi_d */ - 5, /* truncr_d_i */ - 5, /* truncr_d_l */ - 5, /* extr_d */ - 5, /* extr_f_d */ - 5, /* movr_d */ - 15, /* movi_d */ - 5, /* ldr_d */ - 16, /* ldi_d */ - 6, /* ldxr_d */ - 8, /* ldxi_d */ - 5, /* str_d */ - 16, /* sti_d */ - 6, /* stxr_d */ - 9, /* stxi_d */ - 11, /* bltr_d */ - 26, /* blti_d */ - 11, /* bler_d */ - 26, /* blei_d */ - 13, /* beqr_d */ - 28, /* beqi_d */ - 11, /* bger_d */ - 26, /* bgei_d */ - 11, /* bgtr_d */ - 26, /* bgti_d */ - 14, /* bner_d */ - 29, /* bnei_d */ - 11, /* bunltr_d */ - 26, /* bunlti_d */ - 11, /* bunler_d */ - 26, /* bunlei_d */ - 11, /* buneqr_d */ - 26, /* buneqi_d */ - 11, /* bunger_d */ - 26, /* bungei_d */ - 11, /* bungtr_d */ - 26, /* bungti_d */ - 11, /* bltgtr_d */ - 26, /* bltgti_d */ - 11, /* bordr_d */ - 26, /* bordi_d */ - 11, /* bunordr_d */ - 26, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#else - -# if __X64_32 -#define JIT_INSTR_MAX 108 - 0, /* data */ - 0, /* live */ - 3, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 3, /* label */ - 108, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 41, /* va_start */ - 45, /* va_arg */ - 54, /* va_arg_d */ - 0, /* va_end */ - 5, /* addr */ - 7, /* addi */ - 6, /* addcr */ - 7, /* addci */ - 6, /* addxr */ - 7, /* addxi */ - 6, /* subr */ - 7, /* subi */ - 9, /* subcr */ - 7, /* subci */ - 9, /* subxr */ - 7, /* subxi */ - 10, /* rsbi */ - 7, /* mulr */ - 8, /* muli */ - 18, /* qmulr */ - 24, /* qmuli */ - 18, /* qmulr_u */ - 24, /* qmuli_u */ - 19, /* divr */ - 22, /* divi */ - 20, /* divr_u */ - 23, /* divi_u */ - 22, /* qdivr */ - 25, /* qdivi */ - 23, /* qdivr_u */ - 26, /* qdivi_u */ - 19, /* remr */ - 22, /* remi */ - 20, /* remr_u */ - 23, /* remi_u */ - 6, /* andr */ - 9, /* andi */ - 6, /* orr */ - 10, /* ori */ - 6, /* xorr */ - 10, /* xori */ - 9, /* lshr */ - 8, /* lshi */ - 9, /* rshr */ - 7, /* rshi */ - 9, /* rshr_u */ - 7, /* rshi_u */ - 6, /* negr */ - 6, /* comr */ - 13, /* ltr */ - 14, /* lti */ - 13, /* ltr_u */ - 14, /* lti_u */ - 13, /* ler */ - 14, /* lei */ - 13, /* ler_u */ - 14, /* lei_u */ - 13, /* eqr */ - 14, /* eqi */ - 13, /* ger */ - 14, /* gei */ - 13, /* ger_u */ - 14, /* gei_u */ - 13, /* gtr */ - 14, /* gti */ - 13, /* gtr_u */ - 14, /* gti_u */ - 13, /* ner */ - 14, /* nei */ - 3, /* movr */ - 6, /* movi */ - 7, /* extr_c */ - 7, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 0, /* extr_i */ - 0, /* extr_ui */ - 9, /* htonr_us */ - 6, /* htonr_ui */ - 0, /* htonr_ul */ - 5, /* ldr_c */ - 9, /* ldi_c */ - 5, /* ldr_uc */ - 9, /* ldi_uc */ - 5, /* ldr_s */ - 9, /* ldi_s */ - 5, /* ldr_us */ - 9, /* ldi_us */ - 4, /* ldr_i */ - 8, /* ldi_i */ - 0, /* ldr_ui */ - 0, /* ldi_ui */ - 0, /* ldr_l */ - 0, /* ldi_l */ - 9, /* ldxr_c */ - 7, /* ldxi_c */ - 9, /* ldxr_uc */ - 7, /* ldxi_uc */ - 9, /* ldxr_s */ - 7, /* ldxi_s */ - 9, /* ldxr_us */ - 7, /* ldxi_us */ - 8, /* ldxr_i */ - 7, /* ldxi_i */ - 0, /* ldxr_ui */ - 0, /* ldxi_ui */ - 0, /* ldxr_l */ - 0, /* ldxi_l */ - 7, /* str_c */ - 11, /* sti_c */ - 5, /* str_s */ - 9, /* sti_s */ - 4, /* str_i */ - 8, /* sti_i */ - 0, /* str_l */ - 0, /* sti_l */ - 12, /* stxr_c */ - 7, /* stxi_c */ - 10, /* stxr_s */ - 7, /* stxi_s */ - 9, /* stxr_i */ - 6, /* stxi_i */ - 0, /* stxr_l */ - 0, /* stxi_l */ - 9, /* bltr */ - 10, /* blti */ - 9, /* bltr_u */ - 10, /* blti_u */ - 9, /* bler */ - 12, /* blei */ - 9, /* bler_u */ - 10, /* blei_u */ - 9, /* beqr */ - 13, /* beqi */ - 9, /* bger */ - 10, /* bgei */ - 9, /* bger_u */ - 10, /* bgei_u */ - 9, /* bgtr */ - 10, /* bgti */ - 9, /* bgtr_u */ - 10, /* bgti_u */ - 9, /* bner */ - 13, /* bnei */ - 9, /* bmsr */ - 13, /* bmsi */ - 9, /* bmcr */ - 13, /* bmci */ - 9, /* boaddr */ - 10, /* boaddi */ - 9, /* boaddr_u */ - 10, /* boaddi_u */ - 9, /* bxaddr */ - 10, /* bxaddi */ - 9, /* bxaddr_u */ - 10, /* bxaddi_u */ - 9, /* bosubr */ - 10, /* bosubi */ - 9, /* bosubr_u */ - 10, /* bosubi_u */ - 9, /* bxsubr */ - 10, /* bxsubi */ - 9, /* bxsubr_u */ - 10, /* bxsubi_u */ - 2, /* jmpr */ - 5, /* jmpi */ - 3, /* callr */ - 9, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 34, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 10, /* addr_f */ - 21, /* addi_f */ - 15, /* subr_f */ - 21, /* subi_f */ - 26, /* rsbi_f */ - 10, /* mulr_f */ - 21, /* muli_f */ - 15, /* divr_f */ - 21, /* divi_f */ - 15, /* negr_f */ - 15, /* absr_f */ - 5, /* sqrtr_f */ - 15, /* ltr_f */ - 26, /* lti_f */ - 15, /* ler_f */ - 26, /* lei_f */ - 17, /* eqr_f */ - 28, /* eqi_f */ - 15, /* ger_f */ - 26, /* gei_f */ - 15, /* gtr_f */ - 26, /* gti_f */ - 20, /* ner_f */ - 31, /* nei_f */ - 15, /* unltr_f */ - 26, /* unlti_f */ - 15, /* unler_f */ - 26, /* unlei_f */ - 15, /* uneqr_f */ - 26, /* uneqi_f */ - 15, /* unger_f */ - 26, /* ungei_f */ - 15, /* ungtr_f */ - 26, /* ungti_f */ - 15, /* ltgtr_f */ - 26, /* ltgti_f */ - 15, /* ordr_f */ - 26, /* ordi_f */ - 15, /* unordr_f */ - 26, /* unordi_f */ - 5, /* truncr_f_i */ - 0, /* truncr_f_l */ - 5, /* extr_f */ - 5, /* extr_d_f */ - 5, /* movr_f */ - 11, /* movi_f */ - 6, /* ldr_f */ - 10, /* ldi_f */ - 11, /* ldxr_f */ - 9, /* ldxi_f */ - 6, /* str_f */ - 10, /* sti_f */ - 11, /* stxr_f */ - 9, /* stxi_f */ - 10, /* bltr_f */ - 21, /* blti_f */ - 10, /* bler_f */ - 21, /* blei_f */ - 12, /* beqr_f */ - 23, /* beqi_f */ - 10, /* bger_f */ - 21, /* bgei_f */ - 10, /* bgtr_f */ - 21, /* bgti_f */ - 13, /* bner_f */ - 24, /* bnei_f */ - 10, /* bunltr_f */ - 21, /* bunlti_f */ - 10, /* bunler_f */ - 21, /* bunlei_f */ - 10, /* buneqr_f */ - 21, /* buneqi_f */ - 10, /* bunger_f */ - 21, /* bungei_f */ - 10, /* bungtr_f */ - 21, /* bungti_f */ - 10, /* bltgtr_f */ - 21, /* bltgti_f */ - 10, /* bordr_f */ - 21, /* bordi_f */ - 10, /* bunordr_f */ - 21, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 10, /* addr_d */ - 33, /* addi_d */ - 15, /* subr_d */ - 33, /* subi_d */ - 38, /* rsbi_d */ - 10, /* mulr_d */ - 33, /* muli_d */ - 15, /* divr_d */ - 33, /* divi_d */ - 22, /* negr_d */ - 16, /* absr_d */ - 5, /* sqrtr_d */ - 16, /* ltr_d */ - 39, /* lti_d */ - 16, /* ler_d */ - 39, /* lei_d */ - 18, /* eqr_d */ - 41, /* eqi_d */ - 16, /* ger_d */ - 39, /* gei_d */ - 16, /* gtr_d */ - 39, /* gti_d */ - 21, /* ner_d */ - 44, /* nei_d */ - 16, /* unltr_d */ - 39, /* unlti_d */ - 16, /* unler_d */ - 39, /* unlei_d */ - 16, /* uneqr_d */ - 39, /* uneqi_d */ - 16, /* unger_d */ - 39, /* ungei_d */ - 16, /* ungtr_d */ - 39, /* ungti_d */ - 16, /* ltgtr_d */ - 39, /* ltgti_d */ - 16, /* ordr_d */ - 39, /* ordi_d */ - 16, /* unordr_d */ - 39, /* unordi_d */ - 5, /* truncr_d_i */ - 0, /* truncr_d_l */ - 5, /* extr_d */ - 5, /* extr_f_d */ - 5, /* movr_d */ - 23, /* movi_d */ - 6, /* ldr_d */ - 10, /* ldi_d */ - 11, /* ldxr_d */ - 9, /* ldxi_d */ - 6, /* str_d */ - 10, /* sti_d */ - 11, /* stxr_d */ - 9, /* stxi_d */ - 11, /* bltr_d */ - 34, /* blti_d */ - 11, /* bler_d */ - 34, /* blei_d */ - 13, /* beqr_d */ - 36, /* beqi_d */ - 11, /* bger_d */ - 34, /* bgei_d */ - 11, /* bgtr_d */ - 34, /* bgti_d */ - 14, /* bner_d */ - 37, /* bnei_d */ - 11, /* bunltr_d */ - 34, /* bunlti_d */ - 11, /* bunler_d */ - 34, /* bunlei_d */ - 11, /* buneqr_d */ - 34, /* buneqi_d */ - 11, /* bunger_d */ - 34, /* bungei_d */ - 11, /* bungtr_d */ - 34, /* bungti_d */ - 11, /* bltgtr_d */ - 34, /* bltgti_d */ - 11, /* bordr_d */ - 34, /* bordi_d */ - 11, /* bunordr_d */ - 34, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ - -# else -#define JIT_INSTR_MAX 115 - 0, /* data */ - 0, /* live */ - 6, /* align */ - 0, /* save */ - 0, /* load */ - 0, /* #name */ - 0, /* #note */ - 7, /* label */ - 115, /* prolog */ - 0, /* ellipsis */ - 0, /* va_push */ - 0, /* allocai */ - 0, /* allocar */ - 0, /* arg */ - 0, /* getarg_c */ - 0, /* getarg_uc */ - 0, /* getarg_s */ - 0, /* getarg_us */ - 0, /* getarg_i */ - 0, /* getarg_ui */ - 0, /* getarg_l */ - 0, /* putargr */ - 0, /* putargi */ - 42, /* va_start */ - 41, /* va_arg */ - 50, /* va_arg_d */ - 0, /* va_end */ - 5, /* addr */ - 13, /* addi */ - 6, /* addcr */ - 13, /* addci */ - 6, /* addxr */ - 7, /* addxi */ - 6, /* subr */ - 13, /* subi */ - 9, /* subcr */ - 13, /* subci */ - 9, /* subxr */ - 7, /* subxi */ - 16, /* rsbi */ - 7, /* mulr */ - 14, /* muli */ - 20, /* qmulr */ - 30, /* qmuli */ - 20, /* qmulr_u */ - 30, /* qmuli_u */ - 22, /* divr */ - 29, /* divi */ - 23, /* divr_u */ - 30, /* divi_u */ - 25, /* qdivr */ - 32, /* qdivi */ - 26, /* qdivr_u */ - 33, /* qdivi_u */ - 22, /* remr */ - 29, /* remi */ - 23, /* remr_u */ - 30, /* remi_u */ - 6, /* andr */ - 13, /* andi */ - 6, /* orr */ - 13, /* ori */ - 6, /* xorr */ - 13, /* xori */ - 9, /* lshr */ - 8, /* lshi */ - 9, /* rshr */ - 7, /* rshi */ - 9, /* rshr_u */ - 7, /* rshi_u */ - 6, /* negr */ - 6, /* comr */ - 13, /* ltr */ - 14, /* lti */ - 13, /* ltr_u */ - 14, /* lti_u */ - 13, /* ler */ - 14, /* lei */ - 13, /* ler_u */ - 14, /* lei_u */ - 13, /* eqr */ - 14, /* eqi */ - 13, /* ger */ - 14, /* gei */ - 13, /* ger_u */ - 14, /* gei_u */ - 13, /* gtr */ - 14, /* gti */ - 13, /* gtr_u */ - 14, /* gti_u */ - 13, /* ner */ - 14, /* nei */ - 3, /* movr */ - 10, /* movi */ - 4, /* extr_c */ - 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ - 3, /* extr_i */ - 3, /* extr_ui */ - 9, /* htonr_us */ - 6, /* htonr_ui */ - 6, /* htonr_ul */ - 5, /* ldr_c */ - 9, /* ldi_c */ - 5, /* ldr_uc */ - 9, /* ldi_uc */ - 5, /* ldr_s */ - 9, /* ldi_s */ - 5, /* ldr_us */ - 9, /* ldi_us */ - 4, /* ldr_i */ - 8, /* ldi_i */ - 4, /* ldr_ui */ - 8, /* ldi_ui */ - 4, /* ldr_l */ - 8, /* ldi_l */ - 6, /* ldxr_c */ - 8, /* ldxi_c */ - 6, /* ldxr_uc */ - 8, /* ldxi_uc */ - 6, /* ldxr_s */ - 8, /* ldxi_s */ - 6, /* ldxr_us */ - 8, /* ldxi_us */ - 5, /* ldxr_i */ - 7, /* ldxi_i */ - 5, /* ldxr_ui */ - 6, /* ldxi_ui */ - 5, /* ldxr_l */ - 7, /* ldxi_l */ - 4, /* str_c */ - 8, /* sti_c */ - 5, /* str_s */ - 9, /* sti_s */ - 4, /* str_i */ - 8, /* sti_i */ - 4, /* str_l */ - 8, /* sti_l */ - 5, /* stxr_c */ - 6, /* stxi_c */ - 6, /* stxr_s */ - 7, /* stxi_s */ - 5, /* stxr_i */ - 6, /* stxi_i */ - 5, /* stxr_l */ - 7, /* stxi_l */ - 9, /* bltr */ - 10, /* blti */ - 9, /* bltr_u */ - 10, /* blti_u */ - 9, /* bler */ - 13, /* blei */ - 9, /* bler_u */ - 10, /* blei_u */ - 9, /* beqr */ - 19, /* beqi */ - 9, /* bger */ - 10, /* bgei */ - 9, /* bger_u */ - 10, /* bgei_u */ - 9, /* bgtr */ - 10, /* bgti */ - 9, /* bgtr_u */ - 10, /* bgti_u */ - 9, /* bner */ - 19, /* bnei */ - 9, /* bmsr */ - 13, /* bmsi */ - 9, /* bmcr */ - 13, /* bmci */ - 9, /* boaddr */ - 10, /* boaddi */ - 9, /* boaddr_u */ - 10, /* boaddi_u */ - 9, /* bxaddr */ - 10, /* bxaddi */ - 9, /* bxaddr_u */ - 10, /* bxaddi_u */ - 9, /* bosubr */ - 10, /* bosubi */ - 9, /* bosubr_u */ - 10, /* bosubi_u */ - 9, /* bxsubr */ - 10, /* bxsubi */ - 9, /* bxsubr_u */ - 10, /* bxsubi_u */ - 3, /* jmpr */ - 5, /* jmpi */ - 3, /* callr */ - 13, /* calli */ - 0, /* prepare */ - 0, /* pushargr */ - 0, /* pushargi */ - 0, /* finishr */ - 0, /* finishi */ - 0, /* ret */ - 0, /* retr */ - 0, /* reti */ - 0, /* retval_c */ - 0, /* retval_uc */ - 0, /* retval_s */ - 0, /* retval_us */ - 0, /* retval_i */ - 0, /* retval_ui */ - 0, /* retval_l */ - 37, /* epilog */ - 0, /* arg_f */ - 0, /* getarg_f */ - 0, /* putargr_f */ - 0, /* putargi_f */ - 10, /* addr_f */ - 21, /* addi_f */ - 15, /* subr_f */ - 21, /* subi_f */ - 30, /* rsbi_f */ - 10, /* mulr_f */ - 21, /* muli_f */ - 15, /* divr_f */ - 21, /* divi_f */ - 15, /* negr_f */ - 15, /* absr_f */ - 5, /* sqrtr_f */ - 11, /* ltr_f */ - 26, /* lti_f */ - 11, /* ler_f */ - 26, /* lei_f */ - 13, /* eqr_f */ - 28, /* eqi_f */ - 11, /* ger_f */ - 26, /* gei_f */ - 11, /* gtr_f */ - 26, /* gti_f */ - 16, /* ner_f */ - 31, /* nei_f */ - 11, /* unltr_f */ - 26, /* unlti_f */ - 11, /* unler_f */ - 26, /* unlei_f */ - 11, /* uneqr_f */ - 26, /* uneqi_f */ - 11, /* unger_f */ - 26, /* ungei_f */ - 11, /* ungtr_f */ - 26, /* ungti_f */ - 11, /* ltgtr_f */ - 26, /* ltgti_f */ - 11, /* ordr_f */ - 26, /* ordi_f */ - 11, /* unordr_f */ - 26, /* unordi_f */ - 5, /* truncr_f_i */ - 5, /* truncr_f_l */ - 5, /* extr_f */ - 5, /* extr_d_f */ - 5, /* movr_f */ - 15, /* movi_f */ - 6, /* ldr_f */ - 10, /* ldi_f */ - 7, /* ldxr_f */ - 9, /* ldxi_f */ - 6, /* str_f */ - 10, /* sti_f */ - 7, /* stxr_f */ - 9, /* stxi_f */ - 10, /* bltr_f */ - 21, /* blti_f */ - 10, /* bler_f */ - 25, /* blei_f */ - 12, /* beqr_f */ - 27, /* beqi_f */ - 10, /* bger_f */ - 25, /* bgei_f */ - 10, /* bgtr_f */ - 25, /* bgti_f */ - 13, /* bner_f */ - 28, /* bnei_f */ - 10, /* bunltr_f */ - 25, /* bunlti_f */ - 10, /* bunler_f */ - 25, /* bunlei_f */ - 10, /* buneqr_f */ - 25, /* buneqi_f */ - 10, /* bunger_f */ - 25, /* bungei_f */ - 10, /* bungtr_f */ - 25, /* bungti_f */ - 10, /* bltgtr_f */ - 25, /* bltgti_f */ - 10, /* bordr_f */ - 25, /* bordi_f */ - 10, /* bunordr_f */ - 25, /* bunordi_f */ - 0, /* pushargr_f */ - 0, /* pushargi_f */ - 0, /* retr_f */ - 0, /* reti_f */ - 0, /* retval_f */ - 0, /* arg_d */ - 0, /* getarg_d */ - 0, /* putargr_d */ - 0, /* putargi_d */ - 10, /* addr_d */ - 25, /* addi_d */ - 15, /* subr_d */ - 25, /* subi_d */ - 30, /* rsbi_d */ - 10, /* mulr_d */ - 25, /* muli_d */ - 15, /* divr_d */ - 25, /* divi_d */ - 22, /* negr_d */ - 16, /* absr_d */ - 5, /* sqrtr_d */ - 12, /* ltr_d */ - 27, /* lti_d */ - 12, /* ler_d */ - 27, /* lei_d */ - 14, /* eqr_d */ - 29, /* eqi_d */ - 12, /* ger_d */ - 27, /* gei_d */ - 12, /* gtr_d */ - 27, /* gti_d */ - 17, /* ner_d */ - 32, /* nei_d */ - 12, /* unltr_d */ - 27, /* unlti_d */ - 12, /* unler_d */ - 27, /* unlei_d */ - 12, /* uneqr_d */ - 27, /* uneqi_d */ - 12, /* unger_d */ - 27, /* ungei_d */ - 12, /* ungtr_d */ - 27, /* ungti_d */ - 12, /* ltgtr_d */ - 27, /* ltgti_d */ - 12, /* ordr_d */ - 27, /* ordi_d */ - 12, /* unordr_d */ - 27, /* unordi_d */ - 5, /* truncr_d_i */ - 5, /* truncr_d_l */ - 5, /* extr_d */ - 5, /* extr_f_d */ - 5, /* movr_d */ - 15, /* movi_d */ - 6, /* ldr_d */ - 10, /* ldi_d */ - 7, /* ldxr_d */ - 9, /* ldxi_d */ - 6, /* str_d */ - 10, /* sti_d */ - 7, /* stxr_d */ - 9, /* stxi_d */ - 11, /* bltr_d */ - 26, /* blti_d */ - 11, /* bler_d */ - 26, /* blei_d */ - 13, /* beqr_d */ - 28, /* beqi_d */ - 11, /* bger_d */ - 26, /* bgei_d */ - 11, /* bgtr_d */ - 26, /* bgti_d */ - 14, /* bner_d */ - 29, /* bnei_d */ - 11, /* bunltr_d */ - 26, /* bunlti_d */ - 11, /* bunler_d */ - 26, /* bunlei_d */ - 11, /* buneqr_d */ - 26, /* buneqi_d */ - 11, /* bunger_d */ - 26, /* bungei_d */ - 11, /* bungtr_d */ - 26, /* bungti_d */ - 11, /* bltgtr_d */ - 26, /* bltgti_d */ - 11, /* bordr_d */ - 26, /* bordi_d */ - 11, /* bunordr_d */ - 26, /* bunordi_d */ - 0, /* pushargr_d */ - 0, /* pushargi_d */ - 0, /* retr_d */ - 0, /* reti_d */ - 0, /* retval_d */ - 0, /* movr_w_f */ - 0, /* movr_ww_d */ - 0, /* movr_w_d */ - 0, /* movr_f_w */ - 0, /* movi_f_w */ - 0, /* movr_d_ww */ - 0, /* movi_d_ww */ - 0, /* movr_d_w */ - 0, /* movi_d_w */ -#endif /* __CYGWIN__ */ -# endif /* __X64_32 */ -#endif /* __X64 */ From 9c1b01fba502833d3294b4d870240581f551a567 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 12:29:18 +0100 Subject: [PATCH 14/78] Simplify file names --- jit.h | 20 ++++++++++---------- jit/{jit_aarch64-cpu.c => aarch64-cpu.c} | 0 jit/{jit_aarch64-fpu.c => aarch64-fpu.c} | 0 jit/{jit_aarch64.c => aarch64.c} | 8 ++++---- jit/{jit_aarch64.h => aarch64.h} | 0 jit/{jit_alpha-cpu.c => alpha-cpu.c} | 0 jit/{jit_alpha-fpu.c => alpha-fpu.c} | 0 jit/{jit_alpha.c => alpha.c} | 8 ++++---- jit/{jit_alpha.h => alpha.h} | 0 jit/{jit_arm-cpu.c => arm-cpu.c} | 0 jit/{jit_arm-swf.c => arm-swf.c} | 0 jit/{jit_arm-vfp.c => arm-vfp.c} | 0 jit/{jit_arm.c => arm.c} | 16 ++++++++-------- jit/{jit_arm.h => arm.h} | 0 jit/{jit_disasm.c => disasm.c} | 0 jit/{jit_hppa-cpu.c => hppa-cpu.c} | 0 jit/{jit_hppa-fpu.c => hppa-fpu.c} | 0 jit/{jit_hppa.c => hppa.c} | 8 ++++---- jit/{jit_hppa.h => hppa.h} | 0 jit/{jit_ia64-cpu.c => ia64-cpu.c} | 0 jit/{jit_ia64-fpu.c => ia64-fpu.c} | 0 jit/{jit_ia64.c => ia64.c} | 8 ++++---- jit/{jit_ia64.h => ia64.h} | 0 jit/jit.c | 20 ++++++++++---------- jit/{jit_memory.c => memory.c} | 0 jit/{jit_mips-cpu.c => mips-cpu.c} | 0 jit/{jit_mips-fpu.c => mips-fpu.c} | 0 jit/{jit_mips.c => mips.c} | 12 ++++++------ jit/{jit_mips.h => mips.h} | 0 jit/{jit_names.c => names.c} | 0 jit/{jit_note.c => note.c} | 0 jit/{jit_ppc-cpu.c => ppc-cpu.c} | 0 jit/{jit_ppc-fpu.c => ppc-fpu.c} | 0 jit/{jit_ppc.c => ppc.c} | 8 ++++---- jit/{jit_ppc.h => ppc.h} | 0 jit/{jit_print.c => print.c} | 2 +- jit/{jit_private.h => private.h} | 0 jit/{jit_rewind.c => rewind.c} | 0 jit/{jit_s390-cpu.c => s390-cpu.c} | 0 jit/{jit_s390-fpu.c => s390-fpu.c} | 0 jit/{jit_s390.c => s390.c} | 8 ++++---- jit/{jit_s390.h => s390.h} | 0 jit/{jit_size.c => size.c} | 20 ++++++++++---------- jit/{jit_sparc-cpu.c => sparc-cpu.c} | 0 jit/{jit_sparc-fpu.c => sparc-fpu.c} | 0 jit/{jit_sparc.c => sparc.c} | 8 ++++---- jit/{jit_sparc.h => sparc.h} | 0 jit/{jit_x86-cpu.c => x86-cpu.c} | 0 jit/{jit_x86-sse.c => x86-sse.c} | 0 jit/{jit_x86-x87.c => x86-x87.c} | 0 jit/{jit_x86.c => x86.c} | 12 ++++++------ jit/{jit_x86.h => x86.h} | 0 52 files changed, 79 insertions(+), 79 deletions(-) rename jit/{jit_aarch64-cpu.c => aarch64-cpu.c} (100%) rename jit/{jit_aarch64-fpu.c => aarch64-fpu.c} (100%) rename jit/{jit_aarch64.c => aarch64.c} (99%) rename jit/{jit_aarch64.h => aarch64.h} (100%) rename jit/{jit_alpha-cpu.c => alpha-cpu.c} (100%) rename jit/{jit_alpha-fpu.c => alpha-fpu.c} (100%) rename jit/{jit_alpha.c => alpha.c} (99%) rename jit/{jit_alpha.h => alpha.h} (100%) rename jit/{jit_arm-cpu.c => arm-cpu.c} (100%) rename jit/{jit_arm-swf.c => arm-swf.c} (100%) rename jit/{jit_arm-vfp.c => arm-vfp.c} (100%) rename jit/{jit_arm.c => arm.c} (99%) rename jit/{jit_arm.h => arm.h} (100%) rename jit/{jit_disasm.c => disasm.c} (100%) rename jit/{jit_hppa-cpu.c => hppa-cpu.c} (100%) rename jit/{jit_hppa-fpu.c => hppa-fpu.c} (100%) rename jit/{jit_hppa.c => hppa.c} (99%) rename jit/{jit_hppa.h => hppa.h} (100%) rename jit/{jit_ia64-cpu.c => ia64-cpu.c} (100%) rename jit/{jit_ia64-fpu.c => ia64-fpu.c} (100%) rename jit/{jit_ia64.c => ia64.c} (99%) rename jit/{jit_ia64.h => ia64.h} (100%) rename jit/{jit_memory.c => memory.c} (100%) rename jit/{jit_mips-cpu.c => mips-cpu.c} (100%) rename jit/{jit_mips-fpu.c => mips-fpu.c} (100%) rename jit/{jit_mips.c => mips.c} (99%) rename jit/{jit_mips.h => mips.h} (100%) rename jit/{jit_names.c => names.c} (100%) rename jit/{jit_note.c => note.c} (100%) rename jit/{jit_ppc-cpu.c => ppc-cpu.c} (100%) rename jit/{jit_ppc-fpu.c => ppc-fpu.c} (100%) rename jit/{jit_ppc.c => ppc.c} (99%) rename jit/{jit_ppc.h => ppc.h} (100%) rename jit/{jit_print.c => print.c} (99%) rename jit/{jit_private.h => private.h} (100%) rename jit/{jit_rewind.c => rewind.c} (100%) rename jit/{jit_s390-cpu.c => s390-cpu.c} (100%) rename jit/{jit_s390-fpu.c => s390-fpu.c} (100%) rename jit/{jit_s390.c => s390.c} (99%) rename jit/{jit_s390.h => s390.h} (100%) rename jit/{jit_size.c => size.c} (89%) rename jit/{jit_sparc-cpu.c => sparc-cpu.c} (100%) rename jit/{jit_sparc-fpu.c => sparc-fpu.c} (100%) rename jit/{jit_sparc.c => sparc.c} (99%) rename jit/{jit_sparc.h => sparc.h} (100%) rename jit/{jit_x86-cpu.c => x86-cpu.c} (100%) rename jit/{jit_x86-sse.c => x86-sse.c} (100%) rename jit/{jit_x86-x87.c => x86-x87.c} (100%) rename jit/{jit_x86.c => x86.c} (99%) rename jit/{jit_x86.h => x86.h} (100%) diff --git a/jit.h b/jit.h index 0b5c6cef1..f46ebbe50 100644 --- a/jit.h +++ b/jit.h @@ -133,25 +133,25 @@ typedef jit_int32_t jit_gpr_t; typedef jit_int32_t jit_fpr_t; #if defined(__i386__) || defined(__x86_64__) -# include +# include "jit/x86.h" #elif defined(__mips__) -# include +# include "jit/mips.h" #elif defined(__arm__) -# include +# include "jit/arm.h" #elif defined(__ppc__) || defined(__powerpc__) -# include +# include "jit/ppc.h" #elif defined(__sparc__) -# include +# include "jit/sparc.h" #elif defined(__ia64__) -# include +# include "jit/ia64.h" #elif defined(__hppa__) -# include +# include "jit/hppa.h" #elif defined(__aarch64__) -# include +# include "jit/aarch64.h" #elif defined(__s390__) || defined(__s390x__) -# include +# include "jit/s390.h" #elif defined(__alpha__) -# include +# include "jit/alpha.h" #endif #define jit_flag_node 0x0001 /* patch node not absolute */ diff --git a/jit/jit_aarch64-cpu.c b/jit/aarch64-cpu.c similarity index 100% rename from jit/jit_aarch64-cpu.c rename to jit/aarch64-cpu.c diff --git a/jit/jit_aarch64-fpu.c b/jit/aarch64-fpu.c similarity index 100% rename from jit/jit_aarch64-fpu.c rename to jit/aarch64-fpu.c diff --git a/jit/jit_aarch64.c b/jit/aarch64.c similarity index 99% rename from jit/jit_aarch64.c rename to jit/aarch64.c index 2d0f2b4c7..dea4c20df 100644 --- a/jit/jit_aarch64.c +++ b/jit/aarch64.c @@ -63,8 +63,8 @@ static void _patch(jit_state_t*,jit_word_t,jit_node_t*); extern void __clear_cache(void *, void *); #define PROTO 1 -# include "jit_aarch64-cpu.c" -# include "jit_aarch64-fpu.c" +# include "aarch64-cpu.c" +# include "aarch64-fpu.c" #undef PROTO /* @@ -1518,8 +1518,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_aarch64-cpu.c" -# include "jit_aarch64-fpu.c" +# include "aarch64-cpu.c" +# include ", 2018aarch64-fpu.c" #undef CODE void diff --git a/jit/jit_aarch64.h b/jit/aarch64.h similarity index 100% rename from jit/jit_aarch64.h rename to jit/aarch64.h diff --git a/jit/jit_alpha-cpu.c b/jit/alpha-cpu.c similarity index 100% rename from jit/jit_alpha-cpu.c rename to jit/alpha-cpu.c diff --git a/jit/jit_alpha-fpu.c b/jit/alpha-fpu.c similarity index 100% rename from jit/jit_alpha-fpu.c rename to jit/alpha-fpu.c diff --git a/jit/jit_alpha.c b/jit/alpha.c similarity index 99% rename from jit/jit_alpha.c rename to jit/alpha.c index a950a33d4..4d49fb9cc 100644 --- a/jit/jit_alpha.c +++ b/jit/alpha.c @@ -62,8 +62,8 @@ typedef struct jit_va_list { static void _patch(jit_state_t*,jit_word_t,jit_node_t*); #define PROTO 1 -# include "jit_alpha-cpu.c" -# include "jit_alpha-fpu.c" +# include "alpha-cpu.c" +# include "alpha-fpu.c" #undef PROTO /* @@ -1495,8 +1495,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_alpha-cpu.c" -# include "jit_alpha-fpu.c" +# include "alpha-cpu.c" +# include ", 2018alpha-fpu.c" #undef CODE void diff --git a/jit/jit_alpha.h b/jit/alpha.h similarity index 100% rename from jit/jit_alpha.h rename to jit/alpha.h diff --git a/jit/jit_arm-cpu.c b/jit/arm-cpu.c similarity index 100% rename from jit/jit_arm-cpu.c rename to jit/arm-cpu.c diff --git a/jit/jit_arm-swf.c b/jit/arm-swf.c similarity index 100% rename from jit/jit_arm-swf.c rename to jit/arm-swf.c diff --git a/jit/jit_arm-vfp.c b/jit/arm-vfp.c similarity index 100% rename from jit/jit_arm-vfp.c rename to jit/arm-vfp.c diff --git a/jit/jit_arm.c b/jit/arm.c similarity index 99% rename from jit/jit_arm.c rename to jit/arm.c index 7578865ab..ee98c4749 100644 --- a/jit/jit_arm.c +++ b/jit/arm.c @@ -86,10 +86,10 @@ extern void __clear_cache(void *, void *); #endif #define PROTO 1 -# include "jit_rewind.c" -# include "jit_arm-cpu.c" -# include "jit_arm-swf.c" -# include "jit_arm-vfp.c" +# include "rewind.c" +# include "arm-cpu.c" +# include "arm-swf.c" +# include "arm-vfp.c" #undef PROTO /* @@ -1995,10 +1995,10 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_rewind.c" -# include "jit_arm-cpu.c" -# include "jit_arm-swf.c" -# include "jit_arm-vfp.c" +# include "rewind.c" +# include "arm-cpu.c" +# include "arm-swf.c" +# include ", 2018arm-vfp.c" #undef CODE void diff --git a/jit/jit_arm.h b/jit/arm.h similarity index 100% rename from jit/jit_arm.h rename to jit/arm.h diff --git a/jit/jit_disasm.c b/jit/disasm.c similarity index 100% rename from jit/jit_disasm.c rename to jit/disasm.c diff --git a/jit/jit_hppa-cpu.c b/jit/hppa-cpu.c similarity index 100% rename from jit/jit_hppa-cpu.c rename to jit/hppa-cpu.c diff --git a/jit/jit_hppa-fpu.c b/jit/hppa-fpu.c similarity index 100% rename from jit/jit_hppa-fpu.c rename to jit/hppa-fpu.c diff --git a/jit/jit_hppa.c b/jit/hppa.c similarity index 99% rename from jit/jit_hppa.c rename to jit/hppa.c index 38bd22ed9..6b9ef3fe7 100644 --- a/jit/jit_hppa.c +++ b/jit/hppa.c @@ -23,8 +23,8 @@ #define jit_arg_reg_p(i) (i >= 0 && i < 4) #define PROTO 1 -# include "jit_hppa-cpu.c" -# include "jit_hppa-fpu.c" +# include "hppa-cpu.c" +# include "hppa-fpu.c" #undef PROTO /* @@ -1453,8 +1453,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_hppa-cpu.c" -# include "jit_hppa-fpu.c" +# include "hppa-cpu.c" +# include "hppa-fpu.c" #undef CODE void diff --git a/jit/jit_hppa.h b/jit/hppa.h similarity index 100% rename from jit/jit_hppa.h rename to jit/hppa.h diff --git a/jit/jit_ia64-cpu.c b/jit/ia64-cpu.c similarity index 100% rename from jit/jit_ia64-cpu.c rename to jit/ia64-cpu.c diff --git a/jit/jit_ia64-fpu.c b/jit/ia64-fpu.c similarity index 100% rename from jit/jit_ia64-fpu.c rename to jit/ia64-fpu.c diff --git a/jit/jit_ia64.c b/jit/ia64.c similarity index 99% rename from jit/jit_ia64.c rename to jit/ia64.c index 99e2b71fc..96f1b5933 100644 --- a/jit/jit_ia64.c +++ b/jit/ia64.c @@ -50,8 +50,8 @@ extern void __clear_cache(void *, void *); #endif #define PROTO 1 -# include "jit_ia64-cpu.c" -# include "jit_ia64-fpu.c" +# include "ia64-cpu.c" +# include "ia64-fpu.c" #undef PROTO /* @@ -1688,8 +1688,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_ia64-cpu.c" -# include "jit_ia64-fpu.c" +# include "ia64-cpu.c" +# include "ia64-fpu.c" #undef CODE void diff --git a/jit/jit_ia64.h b/jit/ia64.h similarity index 100% rename from jit/jit_ia64.h rename to jit/ia64.h diff --git a/jit/jit.c b/jit/jit.c index c2cb75f76..f906899e0 100644 --- a/jit/jit.c +++ b/jit/jit.c @@ -3402,23 +3402,23 @@ _patch_register(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, } #if defined(__i386__) || defined(__x86_64__) -# include "jit_x86.c" +# include "x86.c" #elif defined(__mips__) -# include "jit_mips.c" +# include "mips.c" #elif defined(__arm__) -# include "jit_arm.c" +# include "arm.c" #elif defined(__ppc__) || defined(__powerpc__) -# include "jit_ppc.c" +# include "ppc.c" #elif defined(__sparc__) -# include "jit_sparc.c" +# include "sparc.c" #elif defined(__ia64__) -# include "jit_ia64.c" +# include "ia64.c" #elif defined(__hppa__) -# include "jit_hppa.c" +# include "hppa.c" #elif defined(__aarch64__) -# include "jit_aarch64.c" +# include "aarch64.c" #elif defined(__s390__) || defined(__s390x__) -# include "jit_s390.c" +# include "s390.c" #elif defined(__alpha__) -# include "jit_alpha.c" +# include "alpha.c" #endif diff --git a/jit/jit_memory.c b/jit/memory.c similarity index 100% rename from jit/jit_memory.c rename to jit/memory.c diff --git a/jit/jit_mips-cpu.c b/jit/mips-cpu.c similarity index 100% rename from jit/jit_mips-cpu.c rename to jit/mips-cpu.c diff --git a/jit/jit_mips-fpu.c b/jit/mips-fpu.c similarity index 100% rename from jit/jit_mips-fpu.c rename to jit/mips-fpu.c diff --git a/jit/jit_mips.c b/jit/mips.c similarity index 99% rename from jit/jit_mips.c rename to jit/mips.c index cca3d76d9..be878f5e6 100644 --- a/jit/jit_mips.c +++ b/jit/mips.c @@ -64,9 +64,9 @@ static jit_node_t *_jit_make_arg_d(jit_state_t*,jit_node_t*); static void _patch(jit_state_t*,jit_word_t,jit_node_t*); #define PROTO 1 -# include "jit_rewind.c" -# include "jit_mips-cpu.c" -# include "jit_mips-fpu.c" +# include "rewind.c" +# include "mips-cpu.c" +# include "mips-fpu.c" #undef PROTO /* @@ -1864,9 +1864,9 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_rewind.c" -# include "jit_mips-cpu.c" -# include "jit_mips-fpu.c" +# include "rewind.c" +# include "mips-cpu.c" +# include ", 2018mips-fpu.c" #undef CODE void diff --git a/jit/jit_mips.h b/jit/mips.h similarity index 100% rename from jit/jit_mips.h rename to jit/mips.h diff --git a/jit/jit_names.c b/jit/names.c similarity index 100% rename from jit/jit_names.c rename to jit/names.c diff --git a/jit/jit_note.c b/jit/note.c similarity index 100% rename from jit/jit_note.c rename to jit/note.c diff --git a/jit/jit_ppc-cpu.c b/jit/ppc-cpu.c similarity index 100% rename from jit/jit_ppc-cpu.c rename to jit/ppc-cpu.c diff --git a/jit/jit_ppc-fpu.c b/jit/ppc-fpu.c similarity index 100% rename from jit/jit_ppc-fpu.c rename to jit/ppc-fpu.c diff --git a/jit/jit_ppc.c b/jit/ppc.c similarity index 99% rename from jit/jit_ppc.c rename to jit/ppc.c index 68db716aa..c43b074d4 100644 --- a/jit/jit_ppc.c +++ b/jit/ppc.c @@ -46,8 +46,8 @@ static void _patch(jit_state_t*,jit_word_t,jit_node_t*); extern void __clear_cache(void *, void *); #define PROTO 1 -# include "jit_ppc-cpu.c" -# include "jit_ppc-fpu.c" +# include "ppc-cpu.c" +# include "ppc-fpu.c" #undef PROTO /* @@ -1673,8 +1673,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_ppc-cpu.c" -# include "jit_ppc-fpu.c" +# include "ppc-cpu.c" +# include ", 2018ppc-fpu.c" #undef CODE void diff --git a/jit/jit_ppc.h b/jit/ppc.h similarity index 100% rename from jit/jit_ppc.h rename to jit/ppc.h diff --git a/jit/jit_print.c b/jit/print.c similarity index 99% rename from jit/jit_print.c rename to jit/print.c index 57eb4d1a9..d1800bab5 100644 --- a/jit/jit_print.c +++ b/jit/print.c @@ -44,7 +44,7 @@ /* * Initialization */ -#include "jit_names.c" +#include "names.c" /* * Implementation diff --git a/jit/jit_private.h b/jit/private.h similarity index 100% rename from jit/jit_private.h rename to jit/private.h diff --git a/jit/jit_rewind.c b/jit/rewind.c similarity index 100% rename from jit/jit_rewind.c rename to jit/rewind.c diff --git a/jit/jit_s390-cpu.c b/jit/s390-cpu.c similarity index 100% rename from jit/jit_s390-cpu.c rename to jit/s390-cpu.c diff --git a/jit/jit_s390-fpu.c b/jit/s390-fpu.c similarity index 100% rename from jit/jit_s390-fpu.c rename to jit/s390-fpu.c diff --git a/jit/jit_s390.c b/jit/s390.c similarity index 99% rename from jit/jit_s390.c rename to jit/s390.c index b7e9bce6c..56aa1b9be 100644 --- a/jit/jit_s390.c +++ b/jit/s390.c @@ -86,8 +86,8 @@ static void _patch(jit_state_t*,jit_word_t,jit_node_t*); extern void __clear_cache(void *, void *); #define PROTO 1 -# include "jit_s390-cpu.c" -# include "jit_s390-fpu.c" +# include "s390-cpu.c" +# include "s390-fpu.c" #undef PROTO /* @@ -1549,8 +1549,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_s390-cpu.c" -# include "jit_s390-fpu.c" +# include "s390-cpu.c" +# include "s390-fpu.c" #undef CODE void diff --git a/jit/jit_s390.h b/jit/s390.h similarity index 100% rename from jit/jit_s390.h rename to jit/s390.h diff --git a/jit/jit_size.c b/jit/size.c similarity index 89% rename from jit/jit_size.c rename to jit/size.c index 47b41dfd1..5a7f291af 100644 --- a/jit/jit_size.c +++ b/jit/size.c @@ -31,25 +31,25 @@ static jit_int16_t _szs[jit_code_last_code] = { # define JIT_INSTR_MAX 256 #else # if defined(__i386__) || defined(__x86_64__) -# include "jit_x86-sz.c" +# include "x86-sz.c" # elif defined(__mips__) -# include "jit_mips-sz.c" +# include "mips-sz.c" # elif defined(__arm__) -# include "jit_arm-sz.c" +# include "arm-sz.c" # elif defined(__ppc__) || defined(__powerpc__) -# include "jit_ppc-sz.c" +# include "ppc-sz.c" # elif defined(__sparc__) -# include "jit_sparc-sz.c" +# include "sparc-sz.c" # elif defined(__ia64__) -# include "jit_ia64-sz.c" +# include "ia64-sz.c" # elif defined(__hppa__) -# include "jit_hppa-sz.c" +# include "hppa-sz.c" # elif defined(__aarch64__) -# include "jit_aarch64-sz.c" +# include "aarch64-sz.c" # elif defined(__s390__) || defined(__s390x__) -# include "jit_s390-sz.c" +# include "s390-sz.c" # elif defined(__alpha__) -# include "jit_alpha-sz.c" +# include "alpha-sz.c" # endif #endif }; diff --git a/jit/jit_sparc-cpu.c b/jit/sparc-cpu.c similarity index 100% rename from jit/jit_sparc-cpu.c rename to jit/sparc-cpu.c diff --git a/jit/jit_sparc-fpu.c b/jit/sparc-fpu.c similarity index 100% rename from jit/jit_sparc-fpu.c rename to jit/sparc-fpu.c diff --git a/jit/jit_sparc.c b/jit/sparc.c similarity index 99% rename from jit/jit_sparc.c rename to jit/sparc.c index 3ac80d489..a318bff8c 100644 --- a/jit/jit_sparc.c +++ b/jit/sparc.c @@ -38,8 +38,8 @@ typedef jit_pointer_t jit_va_list_t; static void _patch(jit_state_t*,jit_word_t,jit_node_t*); #define PROTO 1 -# include "jit_sparc-cpu.c" -# include "jit_sparc-fpu.c" +# include "sparc-cpu.c" +# include "sparc-fpu.c" #undef PROTO /* @@ -1868,8 +1868,8 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_sparc-cpu.c" -# include "jit_sparc-fpu.c" +# include "sparc-cpu.c" +# include ", 2018sparc-fpu.c" #undef CODE void diff --git a/jit/jit_sparc.h b/jit/sparc.h similarity index 100% rename from jit/jit_sparc.h rename to jit/sparc.h diff --git a/jit/jit_x86-cpu.c b/jit/x86-cpu.c similarity index 100% rename from jit/jit_x86-cpu.c rename to jit/x86-cpu.c diff --git a/jit/jit_x86-sse.c b/jit/x86-sse.c similarity index 100% rename from jit/jit_x86-sse.c rename to jit/x86-sse.c diff --git a/jit/jit_x86-x87.c b/jit/x86-x87.c similarity index 100% rename from jit/jit_x86-x87.c rename to jit/x86-x87.c diff --git a/jit/jit_x86.c b/jit/x86.c similarity index 99% rename from jit/jit_x86.c rename to jit/x86.c index 40f667403..7905c5b97 100644 --- a/jit/jit_x86.c +++ b/jit/x86.c @@ -111,9 +111,9 @@ static void _x87_from_sse_f(jit_state_t*,jit_int32_t,jit_int32_t); static void _x87_from_sse_d(jit_state_t*,jit_int32_t,jit_int32_t); #define PROTO 1 -# include "jit_x86-cpu.c" -# include "jit_x86-sse.c" -# include "jit_x86-x87.c" +# include "x86-cpu.c" +# include "x86-sse.c" +# include "x86-x87.c" #undef PROTO /* @@ -2173,9 +2173,9 @@ _emit_code(jit_state_t *_jit) } #define CODE 1 -# include "jit_x86-cpu.c" -# include "jit_x86-sse.c" -# include "jit_x86-x87.c" +# include "x86-cpu.c" +# include "x86-sse.c" +# include "x86-x87.c" #undef CODE void diff --git a/jit/jit_x86.h b/jit/x86.h similarity index 100% rename from jit/jit_x86.h rename to jit/x86.h From 90ebba864a090c9901723e4ce739cfc698294672 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 12:32:26 +0100 Subject: [PATCH 15/78] Remove unneeded bits of lightning --- jit/disasm.c | 415 --------------------------------------------------- jit/memory.c | 124 --------------- jit/names.c | 230 ---------------------------- jit/note.c | 414 -------------------------------------------------- jit/print.c | 367 --------------------------------------------- jit/rewind.c | 192 ------------------------ jit/size.c | 130 ---------------- 7 files changed, 1872 deletions(-) delete mode 100644 jit/disasm.c delete mode 100644 jit/memory.c delete mode 100644 jit/names.c delete mode 100644 jit/note.c delete mode 100644 jit/print.c delete mode 100644 jit/rewind.c delete mode 100644 jit/size.c diff --git a/jit/disasm.c b/jit/disasm.c deleted file mode 100644 index fa3377285..000000000 --- a/jit/disasm.c +++ /dev/null @@ -1,415 +0,0 @@ -/* - * Copyright (C) 2012-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include "jit.h" -#include "jit/jit_private.h" -#if DISASSEMBLER -# include -#endif - -/* - * Prototypes - */ -#if DISASSEMBLER -static int -disasm_compare_symbols(const void *ap, const void *bp); - -static void -disasm_print_address(bfd_vma addr, struct disassemble_info *info); - -#define disassemble(u, v) _disassemble(_jit, u, v) -static void -_disassemble(jit_state_t *_jit, jit_pointer_t code, jit_int32_t length); -#endif - -/* - * Initialization - */ -#if DISASSEMBLER -static bfd *disasm_bfd; -static disassemble_info disasm_info; -static disassembler_ftype disasm_print; -static asymbol **disasm_symbols; -static asymbol *disasm_synthetic; -static long disasm_num_symbols; -static long disasm_num_synthetic; -static jit_state_t *disasm_jit; -#define disasm_stream stdout -#endif - -/* - * Implementation - */ -void -jit_init_debug(const char *progname) -{ -#if DISASSEMBLER - bfd_init(); - - if (progname) - disasm_bfd = bfd_openr(progname, NULL); - if (disasm_bfd == NULL) { -#if defined(__linux__) - disasm_bfd = bfd_openr("/proc/self/exe", NULL); - if (disasm_bfd == NULL) -#endif - return; - } - bfd_check_format(disasm_bfd, bfd_object); - bfd_check_format(disasm_bfd, bfd_archive); - INIT_DISASSEMBLE_INFO(disasm_info, disasm_stream, fprintf); -# if defined(__i386__) || defined(__x86_64__) - disasm_info.arch = bfd_arch_i386; -# if defined(__x86_64__) -# if __WORDSIZE == 32 - disasm_info.mach = bfd_mach_x64_32; -# else - disasm_info.mach = bfd_mach_x86_64; -# endif -# else - disasm_info.mach = bfd_mach_i386_i386; -# endif -# endif -# if defined(__powerpc__) - disasm_info.arch = bfd_arch_powerpc; - disasm_info.mach = bfd_mach_ppc64; -# if HAVE_DISASSEMBLE_INIT_FOR_TARGET - disassemble_init_for_target(&disasm_info); -# elif HAVE_DISASSEMBLE_INIT_POWERPC - disassemble_init_powerpc(&disasm_info); -# endif -# if defined(__powerpc64__) - disasm_info.disassembler_options = "64"; -# endif -# if HAVE_DISASSEMBLE_INIT_FOR_TARGET - disassemble_init_for_target(&disasm_info); -# elif HAVE_DISASSEMBLE_INIT_POWERPC - disassemble_init_powerpc(&disasm_info); -# endif -# endif -# if defined(__sparc__) - disasm_info.endian = disasm_info.display_endian = BFD_ENDIAN_BIG; -# endif -# if defined(__s390__) || defined(__s390x__) - disasm_info.arch = bfd_arch_s390; -# if __WORDSIZE == 32 - disasm_info.mach = bfd_mach_s390_31; -# else - disasm_info.mach = bfd_mach_s390_64; -# endif - disasm_info.endian = disasm_info.display_endian = BFD_ENDIAN_BIG; - disasm_info.disassembler_options = "zarch"; -# endif -# if defined(__alpha__) - disasm_info.arch = bfd_arch_alpha; - disasm_info.mach = bfd_mach_alpha_ev6; -# endif - disasm_info.print_address_func = disasm_print_address; - -# if BINUTILS_2_29 - disasm_print = disassembler(disasm_info.arch, __BYTE_ORDER == __BIG_ENDIAN, - disasm_info.mach, disasm_bfd); -# else - disasm_print = disassembler(disasm_bfd); -# endif - assert(disasm_print); - - if (bfd_get_file_flags(disasm_bfd) & HAS_SYMS) { - asymbol **in; - asymbol **out; - asymbol *symbol; - long offset; - long sym_count; - long dyn_count; - long sym_storage; - long dyn_storage; - - if ((sym_storage = bfd_get_symtab_upper_bound(disasm_bfd)) >= 0) { - - if (bfd_get_file_flags(disasm_bfd) & DYNAMIC) { - dyn_storage = bfd_get_dynamic_symtab_upper_bound(disasm_bfd); -# if defined(__alpha__) - /* XXX */ - if (dyn_storage < 0) - dyn_storage = 0; -# else - assert(dyn_storage >= 0); -# endif - } - else - dyn_storage = 0; - - jit_alloc((jit_pointer_t *)&disasm_symbols, - (sym_storage + dyn_storage) * sizeof(asymbol *)); - sym_count = bfd_canonicalize_symtab(disasm_bfd, disasm_symbols); - assert(sym_count >= 0); - if (dyn_storage) { - dyn_count = bfd_canonicalize_dynamic_symtab(disasm_bfd, - disasm_symbols + - sym_count); - assert(dyn_count >= 0); - } - else - dyn_count = 0; - disasm_num_symbols = sym_count + dyn_count; - - disasm_num_synthetic = bfd_get_synthetic_symtab(disasm_bfd, - sym_count, - disasm_symbols, - dyn_count, - disasm_symbols + - sym_count, - &disasm_synthetic); - if (disasm_num_synthetic > 0) { - jit_realloc((jit_pointer_t *)&disasm_symbols, - (sym_storage + dyn_storage) * sizeof(asymbol *), - (sym_storage + dyn_storage + disasm_num_synthetic) * - sizeof(asymbol *)); - for (offset = 0; offset < disasm_num_synthetic; offset++) - disasm_symbols[disasm_num_symbols++] = - disasm_synthetic + offset; - } - - /* remove symbols not useful for disassemble */ - in = out = disasm_symbols; - for (offset = 0; offset < disasm_num_symbols; offset++) { - symbol = *in++; - if (symbol->name && - symbol->name[0] != '\0' && - !(symbol->flags & (BSF_DEBUGGING | BSF_SECTION_SYM)) && - !bfd_is_und_section(symbol->section) && - !bfd_is_com_section(symbol->section)) - *out++ = symbol; - } - disasm_num_symbols = out - disasm_symbols; - qsort(disasm_symbols, disasm_num_symbols, - sizeof(asymbol *), disasm_compare_symbols); - } - } -#endif -} - -void -jit_finish_debug(void) -{ -#if DISASSEMBLER - if (disasm_synthetic) - jit_free((jit_pointer_t *)&disasm_synthetic); - if (disasm_symbols) - jit_free((jit_pointer_t *)&disasm_symbols); -#endif -} - -void -_jit_disassemble(jit_state_t *_jit) -{ -#if DISASSEMBLER - if (disasm_bfd) { -# if defined(__arm__) - /* FIXME add mapping for prolog switching to arm and possible jump - * before first prolog also in arm mode */ - disasm_info.disassembler_options = jit_cpu.thumb ? "force-thumb" : ""; -# endif - - disassemble(_jit->code.ptr, _jit->pc.uc - _jit->code.ptr); - } -#endif -} - -#if DISASSEMBLER -/* Based on objdump source */ -static int -disasm_compare_symbols(const void *ap, const void *bp) -{ - const asymbol *a = *(const asymbol **)ap; - const asymbol *b = *(const asymbol **)bp; - - if (bfd_asymbol_value(a) > bfd_asymbol_value(b)) - return (1); - if (bfd_asymbol_value(a) < bfd_asymbol_value(b)) - return (-1); - return (0); -} - -#if __WORDSIZE == 32 -# define address_buffer_length 16 -# define address_buffer_format "%llx" -#else -# define address_buffer_length 32 -# define address_buffer_format "%lx" -#endif -static void -disasm_print_address(bfd_vma addr, struct disassemble_info *info) -{ - char *name; - char *file; - int line; - char buffer[address_buffer_length]; - - sprintf(buffer, address_buffer_format, (long long)addr); - (*info->fprintf_func)(info->stream, "0x%s", buffer); - -# define _jit disasm_jit -# undef jit_pointer_p -# define jit_pointer_p(u) \ - ((u) >= _jit->code.ptr && (u) < _jit->pc.uc) - if (jit_pointer_p((jit_uint8_t *)(jit_word_t)addr)) { - if (jit_get_note((jit_uint8_t *)(jit_word_t)addr, &name, &file, &line)) - (*info->fprintf_func)(info->stream, " %s:%s:%d", - name ? name : "", - file ? file : "", - line); - } -# undef jit_pointer_p -# undef _jit - else if (disasm_num_symbols) { - long low; - long high; - long offset; - asymbol *symbol; - - low = 0; - high = disasm_num_symbols; - do { - offset = (low + high) >> 1; - symbol = disasm_symbols[offset]; - if (bfd_asymbol_value(symbol) > addr) - high = offset - 1; - else if (bfd_asymbol_value(symbol) < addr) - low = offset + 1; - else - break; - } while (low < high); - - if (offset >= 0 && offset < disasm_num_symbols) { - if (bfd_asymbol_value(symbol) < addr) { - while (++offset < disasm_num_symbols) { - symbol = disasm_symbols[offset]; - if (bfd_asymbol_value(symbol) >= addr) - break; - } - } - else if (bfd_asymbol_value(symbol) > addr) { - while (offset--) { - if (bfd_asymbol_value(disasm_symbols[offset]) < addr) - break; - symbol = disasm_symbols[offset]; - } - } - if (bfd_asymbol_value(symbol) == addr) - (*info->fprintf_func)(info->stream, " # %s", symbol->name); - } - } -} - -static void -_disassemble(jit_state_t *_jit, jit_pointer_t code, jit_int32_t length) -{ - int bytes; - char *name, *old_name; - char *file, *old_file; - int line, old_line; -#if __arm__ - jit_int32_t offset; - jit_bool_t data_info; - jit_int32_t data_offset; -#endif - bfd_vma pc = (jit_uword_t)code; - bfd_vma end = (jit_uword_t)code + length; - char buffer[address_buffer_length]; -#if DEVEL_DISASSEMBLER - jit_node_t *node; - jit_uword_t prevw; -#endif - -#if __arm__ - data_info = _jitc && _jitc->data_info.ptr; - data_offset = 0; -#endif - disasm_info.buffer = code; - disasm_info.buffer_vma = (jit_uword_t)code; - disasm_info.buffer_length = length; - old_file = old_name = NULL; - old_line = 0; - disasm_jit = _jit; -#if DEVEL_DISASSEMBLER - node = _jitc->head; - prevw = pc; -#endif - while (pc < end) { -#if DEVEL_DISASSEMBLER - while (node && (jit_uword_t)(prevw + node->offset) < (jit_uword_t)pc) { - prevw += node->offset; - node = node->next; - } - while (node && (jit_uword_t)(prevw + node->offset) == (jit_uword_t)pc) { - jit_print_node(node); - fputc('\n', stdout); - prevw += node->offset; - node = node->next; - } -#endif -#if __arm__ - again: - if (data_info) { - while (_jitc->data_info.ptr[data_offset].code < pc) { - if (++data_offset >= _jitc->data_info.length) { - data_info = 0; - goto again; - } - } - if (pc == _jitc->data_info.ptr[data_offset].code) { - offset = _jitc->data_info.ptr[data_offset].length; - for (; offset >= 4; offset -= 4, pc += 4) { - bytes = sprintf(buffer, address_buffer_format, pc); - (*disasm_info.fprintf_func)(disasm_stream, - "%*c0x%s\t.data\t0x%08x\n", - 16 - bytes, ' ', buffer, - *(jit_uint32_t *) - (jit_uint32_t)pc); - } - /* reset disassemble information instead of attempting - * to hack the arm specific backend data structures to - * tell it to forward the required number of bytes. */ - disasm_info.buffer = (jit_pointer_t)(jit_uint32_t)pc; - disasm_info.buffer_vma = (jit_uword_t)pc; - if ((disasm_info.buffer_length = end - pc) <= 0) - break; - } - } -#endif - if (jit_get_note((jit_uint8_t *)(jit_word_t)pc, &name, &file, &line) && - (name != old_name || file != old_file || line != old_line)) { - (*disasm_info.fprintf_func)(disasm_stream, "# %s:%s:%d\n", - name ? name : "", - file ? file : "", - line); - old_name = name; - old_file = file; - old_line = line; - } - - bytes = sprintf(buffer, address_buffer_format, (long long)pc); - (*disasm_info.fprintf_func)(disasm_stream, "%*c0x%s\t", - 16 - bytes, ' ', buffer); - pc += (*disasm_print)(pc, &disasm_info); - putc('\n', disasm_stream); - } -} -#endif diff --git a/jit/memory.c b/jit/memory.c deleted file mode 100644 index b2a90ef20..000000000 --- a/jit/memory.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2013-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include - -#include "jit.h" -#include "jit/jit_private.h" - -/* - * Prototypes - */ -static void *jit_default_alloc_func(size_t); -static void *jit_default_realloc_func(void*, size_t); -static void jit_default_free_func(void *); - -/* - * Initialization - */ -static jit_alloc_func_ptr jit_alloc_ptr = jit_default_alloc_func; -static jit_realloc_func_ptr jit_realloc_ptr = jit_default_realloc_func; -static jit_free_func_ptr jit_free_ptr = jit_default_free_func; - -/* - * Implementation - */ -jit_pointer_t -jit_memcpy(jit_pointer_t dst, const void * src, jit_word_t size) -{ - if (size) - return (memcpy(dst, src, size)); - return (dst); -} - -jit_pointer_t -jit_memmove(jit_pointer_t dst, const void *src , jit_word_t size) -{ - if (size) - return (memmove(dst, src, size)); - return (dst); -} - -void -jit_set_memory_functions(jit_alloc_func_ptr alloc_ptr, - jit_realloc_func_ptr realloc_ptr, - jit_free_func_ptr free_ptr) -{ - if (alloc_ptr == NULL) - alloc_ptr = jit_default_alloc_func; - if (realloc_ptr == NULL) - realloc_ptr = jit_default_realloc_func; - if (free_ptr == NULL) - free_ptr = jit_default_free_func; - jit_alloc_ptr = alloc_ptr; - jit_realloc_ptr = realloc_ptr; - jit_free_ptr = free_ptr; -} - -void -jit_get_memory_functions(jit_alloc_func_ptr *alloc_ptr, - jit_realloc_func_ptr *realloc_ptr, - jit_free_func_ptr *free_ptr) -{ - *alloc_ptr = jit_alloc_ptr; - *realloc_ptr = jit_realloc_ptr; - *free_ptr = jit_free_ptr; -} - -void -jit_alloc(jit_pointer_t *ptr, jit_word_t size) -{ - *ptr = (*jit_alloc_ptr)(size); - memset(*ptr, 0, size); -} - -void -jit_realloc(jit_pointer_t *ptr, jit_word_t old_size, jit_word_t new_size) -{ - *ptr = (*jit_realloc_ptr)(*ptr, new_size); - if (old_size < new_size) - memset((jit_int8_t*)*ptr + old_size, 0, new_size - old_size); -} - -void -jit_free(jit_pointer_t *ptr) -{ - if (*ptr) { - (*jit_free_ptr)(*ptr); - *ptr = NULL; - } -} - -static void * -jit_default_alloc_func(size_t size) -{ - return (malloc(size)); -} - -static void * -jit_default_realloc_func(void *ptr, size_t size) -{ - return (realloc(ptr, size)); -} - -static void -jit_default_free_func(void *ptr) -{ - free(ptr); -} diff --git a/jit/names.c b/jit/names.c deleted file mode 100644 index ba09a6a47..000000000 --- a/jit/names.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (C) 2014-2017 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -static char *code_name[] = { - "data", - "live", "align", - "save", "load", - "#name", "#note", - "label", - "prolog", - "ellipsis", "va_push", - "allocai", "allocar", - "arg", - "getarg_c", "getarg_uc", - "getarg_s", "getarg_us", - "getarg_i", "getarg_ui", - "getarg_l", - "putargr", "putargi", - "va_start", - "va_arg", "va_arg_d", - "va_end", - "addr", "addi", - "addcr", "addci", - "addxr", "addxi", - "subr", "subi", - "subcr", "subci", - "subxr", "subxi", - "rsbi", - "mulr", "muli", - "qmulr", "qmuli", - "qmulr_u", "qmuli_u", - "divr", "divi", - "divr_u", "divi_u", - "qdivr", "qdivi", - "qdivr_u", "qdivi_u", - "remr", "remi", - "remr_u", "remi_u", - "andr", "andi", - "orr", "ori", - "xorr", "xori", - "lshr", "lshi", - "rshr", "rshi", - "rshr_u", "rshi_u", - "negr", "comr", - "ltr", "lti", - "ltr_u", "lti_u", - "ler", "lei", - "ler_u", "lei_u", - "eqr", "eqi", - "ger", "gei", - "ger_u", "gei_u", - "gtr", "gti", - "gtr_u", "gti_u", - "ner", "nei", - "movr", "movi", - "extr_c", "extr_uc", - "extr_s", "extr_us", - "extr_i", "extr_ui", - "htonr_us", - "htonr_ui", "htonr_ul", - "ldr_c", "ldi_c", - "ldr_uc", "ldi_uc", - "ldr_s", "ldi_s", - "ldr_us", "ldi_us", - "ldr_i", "ldi_i", - "ldr_ui", "ldi_ui", - "ldr_l", "ldi_l", - "ldxr_c", "ldxi_c", - "ldxr_uc", "ldxi_uc", - "ldxr_s", "ldxi_s", - "ldxr_us", "ldxi_us", - "ldxr_i", "ldxi_i", - "ldxr_ui", "ldxi_ui", - "ldxr_l", "ldxi_l", - "str_c", "sti_c", - "str_s", "sti_s", - "str_i", "sti_i", - "str_l", "sti_l", - "stxr_c", "stxi_c", - "stxr_s", "stxi_s", - "stxr_i", "stxi_i", - "stxr_l", "stxi_l", - "bltr", "blti", - "bltr_u", "blti_u", - "bler", "blei", - "bler_u", "blei_u", - "beqr", "beqi", - "bger", "bgei", - "bger_u", "bgei_u", - "bgtr", "bgti", - "bgtr_u", "bgti_u", - "bner", "bnei", - "bmsr", "bmsi", - "bmcr", "bmci", - "boaddr", "boaddi", - "boaddr_u", "boaddi_u", - "bxaddr", "bxaddi", - "bxaddr_u", "bxaddi_u", - "bosubr", "bosubi", - "bosubr_u", "bosubi_u", - "bxsubr", "bxsubi", - "bxsubr_u", "bxsubi_u", - "jmpr", "jmpi", - "callr", "calli", - "prepare", - "pushargr", "pushargi", - "finishr", "finishi", - "ret", - "retr", "reti", - "retval_c", "retval_uc", - "retval_s", "retval_us", - "retval_i", "retval_ui", - "retval_l", - "epilog", - "arg_f", "getarg_f", - "putargr_f", "putargi_f", - "addr_f", "addi_f", - "subr_f", "subi_f", - "rsbi_f", - "mulr_f", "muli_f", - "divr_f", "divi_f", - "negr_f", "absr_f", - "sqrtr_f", - "ltr_f", "lti_f", - "ler_f", "lei_f", - "eqr_f", "eqi_f", - "ger_f", "gei_f", - "gtr_f", "gti_f", - "ner_f", "nei_f", - "unltr_f", "unlti_f", - "unler_f", "unlei_f", - "uneqr_f", "uneqi_f", - "unger_f", "ungei_f", - "ungtr_f", "ungti_f", - "ltgtr_f", "ltgti_f", - "ordr_f", "ordi_f", - "unordr_f", "unordi_f", - "truncr_f_i", "truncr_f_l", - "extr_f", "extr_d_f", - "movr_f", "movi_f", - "ldr_f", "ldi_f", - "ldxr_f", "ldxi_f", - "str_f", "sti_f", - "stxr_f", "stxi_f", - "bltr_f", "blti_f", - "bler_f", "blei_f", - "beqr_f", "beqi_f", - "bger_f", "bgei_f", - "bgtr_f", "bgti_f", - "bner_f", "bnei_f", - "bunltr_f", "bunlti_f", - "bunler_f", "bunlei_f", - "buneqr_f", "buneqi_f", - "bunger_f", "bungei_f", - "bungtr_f", "bungti_f", - "bltgtr_f", "bltgti_f", - "bordr_f", "bordi_f", - "bunordr_f", "bunordi_f", - "pushargr_f", "pushargi_f", - "retr_f", "reti_f", - "retval_f", - "arg_d", "getarg_d", - "putargr_d", "putargi_d", - "addr_d", "addi_d", - "subr_d", "subi_d", - "rsbi_d", - "mulr_d", "muli_d", - "divr_d", "divi_d", - "negr_d", "absr_d", - "sqrtr_d", - "ltr_d", "lti_d", - "ler_d", "lei_d", - "eqr_d", "eqi_d", - "ger_d", "gei_d", - "gtr_d", "gti_d", - "ner_d", "nei_d", - "unltr_d", "unlti_d", - "unler_d", "unlei_d", - "uneqr_d", "uneqi_d", - "unger_d", "ungei_d", - "ungtr_d", "ungti_d", - "ltgtr_d", "ltgti_d", - "ordr_d", "ordi_d", - "unordr_d", "unordi_d", - "truncr_d_i", "truncr_d_l", - "extr_d", "extr_f_d", - "movr_d", "movi_d", - "ldr_d", "ldi_d", - "ldxr_d", "ldxi_d", - "str_d", "sti_d", - "stxr_d", "stxi_d", - "bltr_d", "blti_d", - "bler_d", "blei_d", - "beqr_d", "beqi_d", - "bger_d", "bgei_d", - "bgtr_d", "bgti_d", - "bner_d", "bnei_d", - "bunltr_d", "bunlti_d", - "bunler_d", "bunlei_d", - "buneqr_d", "buneqi_d", - "bunger_d", "bungei_d", - "bungtr_d", "bungti_d", - "bltgtr_d", "bltgti_d", - "bordr_d", "bordi_d", - "bunordr_d", "bunordi_d", - "pushargr_d", "pushargi_d", - "retr_d", "reti_d", - "retval_d", - "movr_w_f", "movr_ww_d", - "movr_w_d", - "movr_f_w", "movi_f_w", - "movr_d_ww", "movi_d_ww", - "movr_d_w", "movi_d_w", -}; diff --git a/jit/note.c b/jit/note.c deleted file mode 100644 index ced35061e..000000000 --- a/jit/note.c +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Copyright (C) 2013-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include "jit.h" -#include "jit/jit_private.h" - -/* - * Prototypes - */ -#define new_note(u, v) _new_note(_jit, u, v) -static jit_note_t *_new_note(jit_state_t *, jit_uint8_t*, char*); -static void new_line(jit_int32_t,jit_note_t*,char*,jit_int32_t,jit_int32_t); -#define note_search_index(u) _note_search_index(_jit, u) -static jit_int32_t _note_search_index(jit_state_t*, jit_uint8_t*); -static jit_int32_t line_insert_index(jit_note_t*,jit_int32_t); -static jit_int32_t line_search_index(jit_note_t*,jit_int32_t); -static jit_int32_t offset_insert_index(jit_line_t*,jit_int32_t); -static jit_int32_t offset_search_index(jit_line_t*,jit_int32_t); - -/* - * Implementation - */ -void -jit_init_note(void) -{ -} - -void -jit_finish_note(void) -{ -} - -jit_node_t * -_jit_name(jit_state_t *_jit, const char *name) -{ - jit_node_t *node; - - node = jit_new_node(jit_code_name); - if (name) - node->v.n = jit_data(name, strlen(name) + 1, 1); - else - node->v.p = NULL; - if (_jitc->note.head == NULL) - _jitc->note.head = _jitc->note.tail = node; - else { - _jitc->note.tail->link = node; - _jitc->note.tail = node; - } - ++_jit->note.length; - _jitc->note.size += sizeof(jit_note_t); - /* remember previous note is invalid due to name change */ - _jitc->note.note = NULL; - return (_jitc->note.name = node); -} - -jit_node_t * -_jit_note(jit_state_t *_jit, const char *name, int line) -{ - jit_node_t *node; - - node = jit_new_node(jit_code_note); - if (name) - node->v.n = jit_data(name, strlen(name) + 1, 1); - else - node->v.p = NULL; - node->w.w = line; - if (_jitc->note.head == NULL) - _jitc->note.head = _jitc->note.tail = node; - else { - _jitc->note.tail->link = node; - _jitc->note.tail = node; - } - if (_jitc->note.note == NULL || - (name == NULL && _jitc->note.note != NULL) || - (name != NULL && _jitc->note.note == NULL) || - (name != NULL && _jitc->note.note != NULL && - strcmp(name, (char *)_jitc->data.ptr + _jitc->note.note->v.n->u.w))) - _jitc->note.size += sizeof(jit_line_t); - _jitc->note.size += sizeof(jit_int32_t) * 2; - return (_jitc->note.note = node); -} - -void -_jit_annotate(jit_state_t *_jit) -{ - jit_node_t *node; - jit_note_t *note; - jit_line_t *line; - jit_word_t length; - jit_word_t note_offset; - jit_word_t line_offset; - - /* initialize pointers in mmaped data area */ - _jit->note.ptr = (jit_note_t *)_jitc->note.base; - _jit->note.length = 0; - - note = NULL; - for (node = _jitc->note.head; node; node = node->link) { - if (node->code == jit_code_name) - note = new_note(node->u.p, node->v.p ? node->v.n->u.p : NULL); - else if (node->v.p) { - if (note == NULL) - note = new_note(node->u.p, NULL); - jit_set_note(note, node->v.n->u.p, node->w.w, - (jit_uint8_t *)node->u.p - note->code); - } - } - /* last note */ - if (note) - note->size = _jit->pc.uc - note->code; - - /* annotations may be very complex with conditions to extend - * or ignore redundant notes, as well as add entries to earlier - * notes, so, relocate the information to the data buffer, - * with likely over allocated reserved space */ - - /* relocate jit_line_t objects */ - for (note_offset = 0; note_offset < _jit->note.length; note_offset++) { - note = _jit->note.ptr + note_offset; - if ((length = sizeof(jit_line_t) * note->length) == 0) - continue; - assert(_jitc->note.base + length < _jit->data.ptr + _jit->data.length); - jit_memcpy(_jitc->note.base, note->lines, length); - jit_free((jit_pointer_t *)¬e->lines); - note->lines = (jit_line_t *)_jitc->note.base; - _jitc->note.base += length; - } - - /* relocate offset and line number information */ - for (note_offset = 0; note_offset < _jit->note.length; note_offset++) { - note = _jit->note.ptr + note_offset; - for (line_offset = 0; line_offset < note->length; line_offset++) { - line = note->lines + line_offset; - length = sizeof(jit_int32_t) * line->length; - assert(_jitc->note.base + length < - _jit->data.ptr + _jit->data.length); - jit_memcpy(_jitc->note.base, line->linenos, length); - jit_free((jit_pointer_t *)&line->linenos); - line->linenos = (jit_int32_t *)_jitc->note.base; - _jitc->note.base += length; - assert(_jitc->note.base + length < - _jit->data.ptr + _jit->data.length); - jit_memcpy(_jitc->note.base, line->offsets, length); - jit_free((jit_pointer_t *)&line->offsets); - line->offsets = (jit_int32_t *)_jitc->note.base; - _jitc->note.base += length; - } - } -} - -void -_jit_set_note(jit_state_t *_jit, jit_note_t *note, - char *file, int lineno, jit_int32_t offset) -{ - jit_line_t *line; - jit_int32_t index; - - index = line_insert_index(note, offset); - if (note->length && index == note->length && - note->lines[index - 1].file == file) - --index; - if (index >= note->length || note->lines[index].file != file) - new_line(index, note, file, lineno, offset); - else { - line = note->lines + index; - index = offset_insert_index(line, offset); - if (index < line->length && line->offsets[index] == offset) { - /* common case if no code was generated for several source lines */ - if (line->linenos[index] < lineno) - line->linenos[index] = lineno; - } - else if (index < line->length && line->linenos[index] == lineno) { - /* common case of extending entry */ - if (line->offsets[index] > offset) - line->offsets[index] = offset; - } - else { - /* line or offset changed */ - if ((line->length & 15) == 0) { - jit_realloc((jit_pointer_t *)&line->linenos, - line->length * sizeof(jit_int32_t), - (line->length + 17) * sizeof(jit_int32_t)); - jit_realloc((jit_pointer_t *)&line->offsets, - line->length * sizeof(jit_int32_t), - (line->length + 17) * sizeof(jit_int32_t)); - } - if (index < note->length) { - jit_memmove(line->linenos + index + 1, line->linenos + index, - sizeof(jit_int32_t) * (line->length - index)); - jit_memmove(line->offsets + index + 1, line->offsets + index, - sizeof(jit_int32_t) * (line->length - index)); - } - line->linenos[index] = lineno; - line->offsets[index] = offset; - ++line->length; - } - } -} - -jit_bool_t -_jit_get_note(jit_state_t *_jit, jit_pointer_t code, - char **name, char **file, jit_int32_t *lineno) -{ - jit_note_t *note; - jit_line_t *line; - jit_int32_t index; - jit_int32_t offset; - - if ((index = note_search_index((jit_uint8_t *)code)) >= _jit->note.length) - return (0); - note = _jit->note.ptr + index; - if ((jit_uint8_t *)code < note->code || - (jit_uint8_t *)code >= note->code + note->size) - return (0); - offset = (jit_uint8_t *)code - note->code; - if ((index = line_search_index(note, offset)) >= note->length) - return (0); - if (index == 0 && offset < note->lines[0].offsets[0]) - return (0); - line = note->lines + index; - if ((index = offset_search_index(line, offset)) >= line->length) - return (0); - - if (name) - *name = note->name; - if (file) - *file = line->file; - if (lineno) - *lineno = line->linenos[index]; - - return (1); -} - -static jit_note_t * -_new_note(jit_state_t *_jit, jit_uint8_t *code, char *name) -{ - jit_note_t *note; - jit_note_t *prev; - - if (_jit->note.length) { - prev = _jit->note.ptr + _jit->note.length - 1; - assert(code >= prev->code); - prev->size = code - prev->code; - } - note = (jit_note_t *)_jitc->note.base; - _jitc->note.base += sizeof(jit_note_t); - ++_jit->note.length; - note->code = code; - note->name = name; - - return (note); -} - -static void -new_line(jit_int32_t index, jit_note_t *note, - char *file, jit_int32_t lineno, jit_int32_t offset) -{ - jit_line_t *line; - - if (note->lines == NULL) - jit_alloc((jit_pointer_t *)¬e->lines, 16 * sizeof(jit_line_t)); - else if ((note->length & 15) == 15) - jit_realloc((jit_pointer_t *)¬e->lines, - note->length * sizeof(jit_line_t), - (note->length + 17) * sizeof(jit_line_t)); - - if (index < note->length) - jit_memmove(note->lines + index + 1, note->lines + index, - sizeof(jit_line_t) * (note->length - index)); - line = note->lines + index; - ++note->length; - - line->file = file; - line->length = 1; - jit_alloc((jit_pointer_t *)&line->linenos, 16 * sizeof(jit_int32_t)); - line->linenos[0] = lineno; - jit_alloc((jit_pointer_t *)&line->offsets, 16 * sizeof(jit_int32_t)); - line->offsets[0] = offset; -} - -static jit_int32_t -_note_search_index(jit_state_t *_jit, jit_uint8_t *code) -{ - jit_int32_t bot; - jit_int32_t top; - jit_int32_t index; - jit_note_t *notes; - - bot = 0; - top = _jit->note.length; - notes = _jit->note.ptr; - for (index = (bot + top) >> 1; bot < top; index = (bot + top) >> 1) { - if (code < notes[index].code) - top = index; - else if (code >= notes[index].code && - code - notes[index].code < notes[index].size) - break; - else - bot = index + 1; - } - - return (index); -} - -static jit_int32_t -line_insert_index(jit_note_t *note, jit_int32_t offset) -{ - jit_int32_t bot; - jit_int32_t top; - jit_int32_t index; - jit_line_t *lines; - - bot = 0; - top = note->length; - if ((lines = note->lines) == NULL) - return (0); - for (index = (bot + top) >> 1; bot < top; index = (bot + top) >> 1) { - if (offset < *lines[index].offsets) - top = index; - else - bot = index + 1; - } - - return ((bot + top) >> 1); -} - -static jit_int32_t -line_search_index(jit_note_t *note, jit_int32_t offset) -{ - jit_int32_t bot; - jit_int32_t top; - jit_int32_t index; - jit_line_t *lines; - - bot = 0; - top = note->length; - if ((lines = note->lines) == NULL) - return (0); - for (index = (bot + top) >> 1; bot < top; index = (bot + top) >> 1) { - if (offset < *lines[index].offsets) - top = index; - /* offset should be already verified to be in range */ - else if (index == note->length - 1 || - (offset >= *lines[index].offsets && - offset < *lines[index + 1].offsets)) - break; - else - bot = index + 1; - } - - return (index); -} - -static jit_int32_t -offset_insert_index(jit_line_t *line, jit_int32_t offset) -{ - jit_int32_t bot; - jit_int32_t top; - jit_int32_t index; - jit_int32_t *offsets; - - bot = 0; - top = line->length; - offsets = line->offsets; - for (index = (bot + top) >> 1; bot < top; index = (bot + top) >> 1) { - if (offset < offsets[index]) - top = index; - else - bot = index + 1; - } - - return ((bot + top) >> 1); -} - -static jit_int32_t -offset_search_index(jit_line_t *line, jit_int32_t offset) -{ - jit_int32_t bot; - jit_int32_t top; - jit_int32_t index; - jit_int32_t *offsets; - - bot = 0; - top = line->length; - offsets = line->offsets; - for (index = (bot + top) >> 1; bot < top; index = (bot + top) >> 1) { - if (offset < offsets[index]) - top = index; - /* offset should be already verified to be in range */ - else if (index == line->length - 1 || - (offset >= offsets[index] && offset < offsets[index + 1])) - break; - else - bot = index + 1; - } - - return (index); -} diff --git a/jit/print.c b/jit/print.c deleted file mode 100644 index d1800bab5..000000000 --- a/jit/print.c +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright (C) 2012-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include "jit.h" -#include "jit/jit_private.h" - -#define print_chr(value) fputc(value, stdout) -#define print_hex(value) fprintf(stdout, "0x%lx", value) -#define print_dec(value) fprintf(stdout, "%ld", value) -#define print_flt(value) fprintf(stdout, "%g", value) -#define print_str(value) fprintf(stdout, "%s", value) -#define print_ptr(value) fprintf(stdout, "%p", value) -#define print_reg(value) \ - do { \ - if ((value) & jit_regno_patch) \ - print_chr('?'); \ - print_str(_rvs[jit_regno(value)].name); \ - } while (0) -#define print_arg(value) \ - do { \ - print_chr('#'); \ - if (value) \ - print_dec((value)->v.w); \ - else \ - print_chr('?'); \ - } while (0) - -/* - * Initialization - */ -#include "names.c" - -/* - * Implementation - */ -void -_jit_print(jit_state_t *_jit) -{ - jit_node_t *node; - - if ((node = _jitc->head)) { - jit_print_node(node); - for (node = node->next; node; node = node->next) { - print_chr('\n'); - jit_print_node(node); - } - print_chr('\n'); - } -} - -void -_jit_print_node(jit_state_t *_jit, jit_node_t *node) -{ - jit_block_t *block; - jit_int32_t value; - jit_int32_t offset; - - if (node->code == jit_code_label || - node->code == jit_code_prolog || node->code == jit_code_epilog) { - print_chr('L'); - print_dec(node->v.w); - print_chr(':'); - block = _jitc->blocks.ptr + node->v.w; - for (offset = 0; offset < _jitc->reglen; offset++) { - if (jit_regset_tstbit(&block->reglive, offset)) { - print_chr(' '); - print_reg(offset); - } - } - if (node->code == jit_code_prolog || - node->code == jit_code_epilog) { - print_str(" /* "); - print_str(code_name[node->code]); - print_str(" */"); - } - return; - } - value = jit_classify(node->code) & - (jit_cc_a0_int|jit_cc_a0_flt|jit_cc_a0_dbl|jit_cc_a0_jmp| - jit_cc_a0_reg|jit_cc_a0_rlh|jit_cc_a0_arg| - jit_cc_a1_reg|jit_cc_a1_int|jit_cc_a1_flt|jit_cc_a1_dbl|jit_cc_a1_arg| - jit_cc_a2_reg|jit_cc_a2_int|jit_cc_a2_flt|jit_cc_a2_dbl); - if (!(node->flag & jit_flag_synth) && ((value & jit_cc_a0_jmp) || - node->code == jit_code_finishr || - node->code == jit_code_finishi)) - print_str(" "); - else - print_chr('\t'); - if (node->flag & jit_flag_synth) - print_str(" \\__ "); - print_str(code_name[node->code]); - switch (node->code) { - r: - print_chr(' '); print_reg(node->u.w); return; - w: - print_chr(' '); print_hex(node->u.w); return; - f: - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float32_t *)node->u.n->u.w); - else - print_flt(node->u.f); - return; - d: - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float64_t *)node->u.n->u.w); - else - print_flt(node->u.d); - return; - n: - print_chr(' '); - if (!(node->flag & jit_flag_node)) - print_ptr(node->u.p); - else { - print_chr('L'); - print_dec(node->u.n->v.w); - } - return; - a: - print_chr(' '); print_arg(node); return; - r_r: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_reg(node->v.w); return; - r_w: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_hex(node->v.w); return; - r_f: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float32_t *)node->v.n->u.w); - else - print_flt(node->v.f); - return; - r_d: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float64_t *)node->v.n->u.w); - else - print_flt(node->v.d); - return; - r_a: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_arg(node->v.n); - return; - w_r: - print_chr(' '); print_hex(node->u.w); - print_chr(' '); print_reg(node->v.w); return; - w_w: - print_chr(' '); print_hex(node->u.w); - print_chr(' '); print_hex(node->v.w); return; - w_a: - print_chr(' '); print_hex(node->u.w); - print_chr(' '); print_arg(node->v.n); - return; - f_a: - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float32_t *)node->u.n->u.w); - else - print_flt(node->u.f); - print_chr(' '); print_arg(node->v.n); - return; - d_a: - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float64_t *)node->u.n->u.w); - else - print_flt(node->u.d); - print_chr(' '); print_arg(node->v.n); - return; - r_r_r: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_reg(node->v.w); - print_chr(' '); print_reg(node->w.w); return; - r_r_w: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_reg(node->v.w); - print_chr(' '); print_hex(node->w.w); return; - q_r_r: - print_str(" ("); print_reg(node->u.q.l); - print_chr(' '); print_reg(node->u.q.h); - print_str(") "); print_reg(node->v.w); - print_chr(' '); print_reg(node->w.w); return; - q_r_w: - print_str(" ("); print_reg(node->u.q.l); - print_chr(' '); print_reg(node->u.q.h); - print_str(") "); print_reg(node->v.w); - print_chr(' '); print_hex(node->w.w); return; - r_r_f: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_reg(node->v.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float32_t *)node->w.n->u.w); - else - print_flt(node->w.f); - return; - r_r_d: - print_chr(' '); print_reg(node->u.w); - print_chr(' '); print_reg(node->v.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float64_t *)node->w.n->u.w); - else - print_flt(node->w.d); - return; - w_r_r: - print_chr(' '); print_hex(node->u.w); - print_chr(' '); print_reg(node->v.w); - print_chr(' '); print_reg(node->w.w); return; - n_r_r: - print_chr(' '); - if (!(node->flag & jit_flag_node)) - print_ptr(node->u.p); - else { - print_chr('L'); - print_dec(node->u.n->v.w); - } - print_chr(' '); print_reg(node->v.w); - print_chr(' '); print_reg(node->w.w); return; - n_r_w: - print_chr(' '); - if (!(node->flag & jit_flag_node)) - print_ptr(node->u.p); - else { - print_chr('L'); - print_dec(node->u.n->v.w); - } - print_chr(' '); print_reg(node->v.w); - print_chr(' '); print_hex(node->w.w); return; - n_r_f: - print_chr(' '); - if (!(node->flag & jit_flag_node)) - print_ptr(node->u.p); - else{ - print_chr('L'); - print_dec(node->u.n->v.w); - } - print_chr(' '); print_reg(node->v.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float32_t *)node->w.n->u.w); - else - print_flt(node->w.f); - return; - n_r_d: - print_chr(' '); - if (!(node->flag & jit_flag_node)) - print_ptr(node->u.p); - else { - print_chr('L'); - print_dec(node->u.n->v.w); - } - print_chr(' '); print_reg(node->v.w); - print_chr(' '); - if (node->flag & jit_flag_data) - print_flt(*(jit_float64_t *)node->w.n->u.w); - else - print_flt(node->w.d); - return; - case jit_code_name: - print_chr(' '); - if (node->v.p && _jitc->emit) - print_str(node->v.n->u.p); - break; - case jit_code_note: - print_chr(' '); - if (node->v.p && _jitc->emit) - print_str(node->v.n->u.p); - if (node->v.p && _jitc->emit && node->w.w) - print_chr(':'); - if (node->w.w) - print_dec(node->w.w); - break; - case jit_code_data: - case jit_code_label: - case jit_code_ellipsis: - case jit_code_prolog: case jit_code_epilog: - case jit_code_ret: case jit_code_prepare: - break; - case jit_code_save: case jit_code_load: - goto r; - default: - switch (value) { - case jit_cc_a0_reg: - case jit_cc_a0_reg|jit_cc_a0_chg: - case jit_cc_a0_reg|jit_cc_a0_jmp: - goto r; - case jit_cc_a0_int: - goto w; - case jit_cc_a0_flt: - goto f; - case jit_cc_a0_dbl: - goto d; - case jit_cc_a0_jmp: - goto n; - case jit_cc_a0_int|jit_cc_a0_arg: - goto a; - case jit_cc_a0_reg|jit_cc_a1_reg: - goto r_r; - case jit_cc_a0_reg|jit_cc_a1_int: - goto r_w; - case jit_cc_a0_reg|jit_cc_a1_flt: - goto r_f; - case jit_cc_a0_reg|jit_cc_a1_dbl: - goto r_d; - case jit_cc_a0_reg|jit_cc_a1_arg: - goto r_a; - case jit_cc_a0_int|jit_cc_a1_reg: - goto w_r; - case jit_cc_a0_int|jit_cc_a1_int: - goto w_w; - case jit_cc_a0_int|jit_cc_a1_arg: - goto w_a; - case jit_cc_a0_flt|jit_cc_a1_arg: - goto f_a; - case jit_cc_a0_dbl|jit_cc_a1_arg: - goto d_a; - case jit_cc_a0_reg|jit_cc_a1_reg|jit_cc_a2_reg: - goto r_r_r; - case jit_cc_a0_reg|jit_cc_a1_reg|jit_cc_a2_int: - goto r_r_w; - case jit_cc_a0_reg|jit_cc_a0_rlh| - jit_cc_a1_reg|jit_cc_a2_reg: - goto q_r_r; - case jit_cc_a0_reg|jit_cc_a0_rlh| - jit_cc_a1_reg|jit_cc_a2_int: - goto q_r_w; - case jit_cc_a0_reg|jit_cc_a1_reg|jit_cc_a2_flt: - goto r_r_f; - case jit_cc_a0_reg|jit_cc_a1_reg|jit_cc_a2_dbl: - goto r_r_d; - case jit_cc_a0_int|jit_cc_a1_reg|jit_cc_a2_reg: - goto w_r_r; - case jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_reg: - goto n_r_r; - case jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_int: - goto n_r_w; - case jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_flt: - goto n_r_f; - case jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_dbl: - goto n_r_d; - default: - abort(); - } - break; - } -} diff --git a/jit/rewind.c b/jit/rewind.c deleted file mode 100644 index 29f09aa44..000000000 --- a/jit/rewind.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (C) 2015-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include "jit.h" -#include "jit/jit_private.h" - -#if PROTO -# define free_synth_list(node) _free_synth_list(_jit,node) -static jit_node_t *_free_synth_list(jit_state_t*,jit_node_t*); -#define rewind_prolog() _rewind_prolog(_jit) -static void _rewind_prolog(jit_state_t*); -#define rewind_prepare() _rewind_prepare(_jit) -static void _rewind_prepare(jit_state_t*); -#endif - -#if CODE -/* - * Implementation - */ -static jit_node_t * -_free_synth_list(jit_state_t *_jit, jit_node_t *node) -{ - jit_node_t *next; - next = node->next; - free_node(node); - for (node = next; node && (node->flag & jit_flag_synth); node = next) { - next = node->next; - free_node(node); - } - return (next); -} - -static void -_rewind_prolog(jit_state_t *_jit) -{ - jit_node_t *node; - jit_node_t *next; - _jitc->function->self.size = stack_framesize; -#if __arm__ - assert(jit_cpu.abi); - _jitc->function->self.size += 64; -#endif -#if __mips__ && NEW_ABI - /* Only add extra stack space if there are varargs - * arguments in registers. */ - assert(jit_arg_reg_p(_jitc->function->self.argi)); - _jitc->function->self.size += 64; -#endif - _jitc->function->self.argi = - _jitc->function->self.argf = _jitc->function->self.argn = 0; - _jitc->tail = _jitc->function->prolog; - node = _jitc->tail->next; - _jitc->tail->next = (jit_node_t *)0; - _jitc->tail->link = (jit_node_t *)0; - for (; node; node = next) { - next = node->next; - switch (node->code) { - case jit_code_arg: - node->next = (jit_node_t *)0; - jit_make_arg(node); - break; - case jit_code_arg_f: - node->next = (jit_node_t *)0; - jit_make_arg_f(node); - break; - case jit_code_arg_d: - node->next = (jit_node_t *)0; - jit_make_arg_d(node); - break; - case jit_code_getarg_c: - jit_getarg_c(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_uc: - jit_getarg_uc(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_s: - jit_getarg_s(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_us: - jit_getarg_us(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_i: - jit_getarg_i(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_f: - jit_getarg_f(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_getarg_d: - jit_getarg_d(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargr: - jit_putargr(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargi: - jit_putargi(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargr_f: - jit_putargr_f(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargi_f: - jit_putargi_f(node->u.f, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargr_d: - jit_putargr_d(node->u.w, node->v.n); - next = free_synth_list(node); - break; - case jit_code_putargi_d: - jit_putargi_d(node->u.d, node->v.n); - next = free_synth_list(node); - break; - default: - node->next = (jit_node_t *)0; - link_node(node); - break; - } - } -} - -static void -_rewind_prepare(jit_state_t *_jit) -{ - jit_node_t *node; - jit_node_t *next; - _jitc->function->call.argi = - _jitc->function->call.argf = - _jitc->function->call.size = 0; - _jitc->tail = _jitc->prepare; - node = _jitc->tail->next; - _jitc->tail->next = (jit_node_t *)0; - _jitc->tail->link = (jit_node_t *)0; - for (; node; node = next) { - next = node->next; - switch (node->code) { - case jit_code_pushargr: - jit_pushargr(node->u.w); - next = free_synth_list(node); - break; - case jit_code_pushargi: - jit_pushargi(node->u.w); - next = free_synth_list(node); - break; - case jit_code_pushargr_f: - jit_pushargr_f(node->u.w); - next = free_synth_list(node); - break; - case jit_code_pushargi_f: - jit_pushargi_f(node->u.f); - next = free_synth_list(node); - break; - case jit_code_pushargr_d: - jit_pushargr_d(node->u.w); - next = free_synth_list(node); - break; - case jit_code_pushargi_d: - jit_pushargi_d(node->u.d); - next = free_synth_list(node); - break; - default: - node->next = (jit_node_t *)0; - link_node(node); - break; - } - } -} -#endif diff --git a/jit/size.c b/jit/size.c deleted file mode 100644 index 5a7f291af..000000000 --- a/jit/size.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (C) 2013-2018 Free Software Foundation, Inc. - * - * This file is part of GNU lightning. - * - * GNU lightning is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU lightning is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * Authors: - * Paulo Cesar Pereira de Andrade - */ - -#include "jit.h" -#include "jit/jit_private.h" -#if GET_JIT_SIZE -# include -#endif - -/* - * Initialization - */ -static jit_int16_t _szs[jit_code_last_code] = { -#if GET_JIT_SIZE -# define JIT_INSTR_MAX 256 -#else -# if defined(__i386__) || defined(__x86_64__) -# include "x86-sz.c" -# elif defined(__mips__) -# include "mips-sz.c" -# elif defined(__arm__) -# include "arm-sz.c" -# elif defined(__ppc__) || defined(__powerpc__) -# include "ppc-sz.c" -# elif defined(__sparc__) -# include "sparc-sz.c" -# elif defined(__ia64__) -# include "ia64-sz.c" -# elif defined(__hppa__) -# include "hppa-sz.c" -# elif defined(__aarch64__) -# include "aarch64-sz.c" -# elif defined(__s390__) || defined(__s390x__) -# include "s390-sz.c" -# elif defined(__alpha__) -# include "alpha-sz.c" -# endif -#endif -}; - -/* - * Implementation - */ -void -jit_init_size(void) -{ -#if DEBUG -# if !GET_JIT_SIZE - jit_word_t offset; - - for (offset = 0; offset < jit_size(_szs); offset++) - if (_szs[offset] != 0) - return; - /* Ensure data was collected */ - abort(); -# endif -#endif -} - -#if GET_JIT_SIZE -void -_jit_size_prepare(jit_state_t *_jit) -{ - _jitc->cptr = _jit->code.ptr; - _jitc->size = _jit->pc.w; -} - -void -_jit_size_collect(jit_state_t *_jit, jit_node_t *node) -{ - jit_word_t length; - - if (_jitc->cptr == _jit->code.ptr) { - length = _jit->pc.w - _jitc->size; - if (_szs[node->code] < length) - _szs[node->code] = length; - } -} - -#else -jit_word_t -_jit_get_size(jit_state_t *_jit) -{ - jit_word_t size; - jit_node_t *node; - - for (size = JIT_INSTR_MAX, node = _jitc->head; node; node = node->next) - size += _szs[node->code]; - - return ((size + 4095) & -4096); -} -#endif - -jit_word_t -jit_get_max_instr(void) -{ - return (JIT_INSTR_MAX >= 144 ? JIT_INSTR_MAX : 144); -} - -void -jit_finish_size(void) -{ -#if GET_JIT_SIZE - FILE *fp; - jit_word_t offset; - - /* Define a single path */ - fp = fopen(JIT_SIZE_PATH, "a"); - assert(fp); - for (offset = 0; offset < jit_size(_szs); offset++) - fprintf(fp, "%d %d\n", offset, _szs[offset]); - fclose(fp); -#endif -} From d567faf657f51bf5a9849fd1eae597874e5b3185 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 13:34:55 +0100 Subject: [PATCH 16/78] Create beginning of stripped-down lightning interface This file is the beginning of a lightened lightning. --- jit.h | 1356 ++++++++++++++++----------------------------------------- 1 file changed, 373 insertions(+), 983 deletions(-) diff --git a/jit.h b/jit.h index f46ebbe50..ca8f05d53 100644 --- a/jit.h +++ b/jit.h @@ -15,122 +15,36 @@ * * Authors: * Paulo Cesar Pereira de Andrade + * Andy Wingo */ #ifndef _jit_h #define _jit_h -#if HAVE_CONFIG_H -# include "config.h" -#endif - #include #include -#if HAVE_STDINT_H -# include -#endif +#include #include +#include -#if defined(__hpux) && defined(__hppa__) -# include -#endif -#if defined(__alpha__) && defined(__osf__) -# include -#endif +#include "jit/endian.h" -#ifdef STDC_HEADERS -# include -#else -# if !defined(offsetof) -# define offsetof(type, field) ((char *)&((type *)0)->field - (char *)0) -# endif -#endif +CHOOSE_32_64(typedef int32_t jit_word_t, + typedef int64_t jit_word_t); +CHOOSE_32_64(typedef uint32_t jit_uword_t, + typedef uint64_t jit_uword_t); +typedef float jit_float32_t; +typedef double jit_float64_t; +typedef void* jit_pointer_t; +typedef int jit_bool_t; +/* FIXME: Make the compiler warn when confusing GPR/FPR/immediate. */ +typedef int jit_gpr_t; +typedef int jit_fpr_t; -#ifndef __WORDSIZE -# if defined(WORDSIZE) /* ppc darwin */ -# define __WORDSIZE WORDSIZE -# elif defined(__SIZEOF_POINTER__) /* ppc aix */ -# define __WORDSIZE (__SIZEOF_POINTER__ << 3) -# elif defined(_ILP32) /* hppa hp-ux */ -# define __WORDSIZE 32 -# elif defined(_LP64) /* ia64 hp-ux (with cc +DD64) */ -# define __WORDSIZE 64 -# elif defined(_MIPS_SZPTR) /* mips irix */ -# if _MIPS_SZPTR == 32 -# define __WORDSIZE 32 -# else -# define __WORDSIZE 64 -# endif -# else /* From FreeBSD 9.1 stdint.h */ -# if defined(UINTPTR_MAX) && defined(UINT64_MAX) && \ - (UINTPTR_MAX == UINT64_MAX) -# define __WORDSIZE 64 -# else -# define __WORDSIZE 32 -# endif -# endif -#endif -#ifndef __LITTLE_ENDIAN -# if defined(LITTLE_ENDIAN) /* ppc darwin */ -# define __LITTLE_ENDIAN LITTLE_ENDIAN -# elif defined(__ORDER_LITTLE_ENDIAN__) /* ppc aix */ -# define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ -# else -# define __LITTLE_ENDIAN 1234 -# endif -#endif -#ifndef __BIG_ENDIAN -# if defined(BIG_ENDIAN) /* ppc darwin */ -# define __BIG_ENDIAN BIG_ENDIAN -# elif defined(__ORDER_BIG_ENDIAN__) /* ppc aix */ -# define __BIG_ENDIAN __ORDER_BIG_ENDIAN__ -# else -# define __BIG_ENDIAN 4321 -# endif -#endif -#ifndef __BYTE_ORDER -# if defined(BYTE_ORDER) /* ppc darwin */ -# define __BYTE_ORDER BYTE_ORDER -# elif defined(__BYTE_ORDER__) /* ppc aix */ -# define __BYTE_ORDER __BYTE_ORDER__ -# elif defined(_BIG_ENDIAN) /* hppa hp-ux */ -# define __BYTE_ORDER __BIG_ENDIAN -# elif defined(__BIG_ENDIAN__) /* ia64 hp-ux */ -# define __BYTE_ORDER __BIG_ENDIAN -# elif defined(__i386__) /* 32 bit x86 solaris */ -# define __BYTE_ORDER __LITTLE_ENDIAN -# elif defined(__x86_64__) /* 64 bit x86 solaris */ -# define __BYTE_ORDER __LITTLE_ENDIAN -# elif defined(__MIPSEB) /* mips irix */ -# define __BYTE_ORDER __BIG_ENDIAN -# else -# error cannot figure __BYTE_ORDER -# endif -#endif - -typedef signed char jit_int8_t; -typedef unsigned char jit_uint8_t; -typedef signed short jit_int16_t; -typedef unsigned short jit_uint16_t; -typedef signed int jit_int32_t; -typedef unsigned int jit_uint32_t; -#if __WORDSIZE == 32 -typedef signed long long jit_int64_t; -typedef unsigned long long jit_uint64_t; -typedef jit_int32_t jit_word_t; -typedef jit_uint32_t jit_uword_t; -#else -typedef signed long jit_int64_t; -typedef unsigned long jit_uint64_t; -typedef jit_int64_t jit_word_t; -typedef jit_uint64_t jit_uword_t; -#endif -typedef float jit_float32_t; -typedef double jit_float64_t; -typedef void* jit_pointer_t; -typedef jit_int32_t jit_bool_t; -typedef jit_int32_t jit_gpr_t; -typedef jit_int32_t jit_fpr_t; +typedef void* jit_addr_t; +typedef ptrdiff_t jit_off_t; +typedef intptr_t jit_imm_t; +typedef uintptr_t jit_uimm_t; #if defined(__i386__) || defined(__x86_64__) # include "jit/x86.h" @@ -154,13 +68,6 @@ typedef jit_int32_t jit_fpr_t; # include "jit/alpha.h" #endif -#define jit_flag_node 0x0001 /* patch node not absolute */ -#define jit_flag_patch 0x0002 /* jump already patched */ -#define jit_flag_data 0x0004 /* data in the constant pool */ -#define jit_flag_use 0x0008 /* do not remove marker label */ -#define jit_flag_synth 0x0010 /* synthesized instruction */ -#define jit_flag_head 0x1000 /* label reached by normal flow */ - #define JIT_R(index) jit_r(index) #define JIT_V(index) jit_v(index) #define JIT_F(index) jit_f(index) @@ -168,9 +75,6 @@ typedef jit_int32_t jit_fpr_t; #define JIT_V_NUM jit_v_num() #define JIT_F_NUM jit_f_num() -#define JIT_DISABLE_DATA 1 /* force synthesize of constants */ -#define JIT_DISABLE_NOTE 2 /* disable debug info generation */ - #define jit_class_chk 0x02000000 /* just checking */ #define jit_class_arg 0x08000000 /* argument register */ #define jit_class_sav 0x10000000 /* callee save */ @@ -182,917 +86,403 @@ typedef jit_int32_t jit_fpr_t; typedef struct jit_node jit_node_t; typedef struct jit_state jit_state_t; -typedef enum { - jit_code_data, -#define jit_live(u) jit_new_node_w(jit_code_live, u) -#define jit_align(u) jit_new_node_w(jit_code_align, u) - jit_code_live, jit_code_align, - jit_code_save, jit_code_load, -#define jit_name(u) _jit_name(_jit,u) - jit_code_name, -#define jit_note(u, v) _jit_note(_jit, u, v) -#define jit_label() _jit_label(_jit) -#define jit_forward() _jit_forward(_jit) -#define jit_indirect() _jit_indirect(_jit) -#define jit_link(u) _jit_link(_jit,u) - jit_code_note, jit_code_label, -#define jit_prolog() _jit_prolog(_jit) - jit_code_prolog, - -#define jit_ellipsis() _jit_ellipsis(_jit) - jit_code_ellipsis, -#define jit_va_push(u) _jit_va_push(_jit,u) - jit_code_va_push, -#define jit_allocai(u) _jit_allocai(_jit,u) -#define jit_allocar(u, v) _jit_allocar(_jit,u,v) - jit_code_allocai, jit_code_allocar, - -#define jit_arg() _jit_arg(_jit) - jit_code_arg, -#define jit_getarg_c(u,v) _jit_getarg_c(_jit,u,v) -#define jit_getarg_uc(u,v) _jit_getarg_uc(_jit,u,v) - jit_code_getarg_c, jit_code_getarg_uc, -#define jit_getarg_s(u,v) _jit_getarg_s(_jit,u,v) -#define jit_getarg_us(u,v) _jit_getarg_us(_jit,u,v) - jit_code_getarg_s, jit_code_getarg_us, -#define jit_getarg_i(u,v) _jit_getarg_i(_jit,u,v) -#if __WORDSIZE == 32 -# define jit_getarg(u,v) jit_getarg_i(u,v) -#else -# define jit_getarg(u,v) jit_getarg_l(u,v) -# define jit_getarg_ui(u,v) _jit_getarg_ui(_jit,u,v) -# define jit_getarg_l(u,v) _jit_getarg_l(_jit,u,v) -#endif - jit_code_getarg_i, jit_code_getarg_ui, - jit_code_getarg_l, -# define jit_putargr(u,v) _jit_putargr(_jit,u,v) -# define jit_putargi(u,v) _jit_putargi(_jit,u,v) - jit_code_putargr, jit_code_putargi, - -#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, -#define jit_addcr(u,v,w) jit_new_node_www(jit_code_addcr,u,v,w) -#define jit_addci(u,v,w) jit_new_node_www(jit_code_addci,u,v,w) - jit_code_addcr, jit_code_addci, -#define jit_addxr(u,v,w) jit_new_node_www(jit_code_addxr,u,v,w) -#define jit_addxi(u,v,w) jit_new_node_www(jit_code_addxi,u,v,w) - jit_code_addxr, jit_code_addxi, -#define jit_subr(u,v,w) jit_new_node_www(jit_code_subr,u,v,w) -#define jit_subi(u,v,w) jit_new_node_www(jit_code_subi,u,v,w) - jit_code_subr, jit_code_subi, -#define jit_subcr(u,v,w) jit_new_node_www(jit_code_subcr,u,v,w) -#define jit_subci(u,v,w) jit_new_node_www(jit_code_subci,u,v,w) - jit_code_subcr, jit_code_subci, -#define jit_subxr(u,v,w) jit_new_node_www(jit_code_subxr,u,v,w) -#define jit_subxi(u,v,w) jit_new_node_www(jit_code_subxi,u,v,w) - jit_code_subxr, jit_code_subxi, -#define jit_rsbr(u,v,w) jit_subr(u,w,v) -#define jit_rsbi(u,v,w) jit_new_node_www(jit_code_rsbi,u,v,w) - jit_code_rsbi, -#define jit_mulr(u,v,w) jit_new_node_www(jit_code_mulr,u,v,w) -#define jit_muli(u,v,w) jit_new_node_www(jit_code_muli,u,v,w) - jit_code_mulr, jit_code_muli, -#define jit_qmulr(l,h,v,w) jit_new_node_qww(jit_code_qmulr,l,h,v,w) -#define jit_qmuli(l,h,v,w) jit_new_node_qww(jit_code_qmuli,l,h,v,w) - jit_code_qmulr, jit_code_qmuli, -#define jit_qmulr_u(l,h,v,w) jit_new_node_qww(jit_code_qmulr_u,l,h,v,w) -#define jit_qmuli_u(l,h,v,w) jit_new_node_qww(jit_code_qmuli_u,l,h,v,w) - jit_code_qmulr_u, jit_code_qmuli_u, -#define jit_divr(u,v,w) jit_new_node_www(jit_code_divr,u,v,w) -#define jit_divi(u,v,w) jit_new_node_www(jit_code_divi,u,v,w) - jit_code_divr, jit_code_divi, -#define jit_divr_u(u,v,w) jit_new_node_www(jit_code_divr_u,u,v,w) -#define jit_divi_u(u,v,w) jit_new_node_www(jit_code_divi_u,u,v,w) - jit_code_divr_u, jit_code_divi_u, -#define jit_qdivr(l,h,v,w) jit_new_node_qww(jit_code_qdivr,l,h,v,w) -#define jit_qdivi(l,h,v,w) jit_new_node_qww(jit_code_qdivi,l,h,v,w) - jit_code_qdivr, jit_code_qdivi, -#define jit_qdivr_u(l,h,v,w) jit_new_node_qww(jit_code_qdivr_u,l,h,v,w) -#define jit_qdivi_u(l,h,v,w) jit_new_node_qww(jit_code_qdivi_u,l,h,v,w) - jit_code_qdivr_u, jit_code_qdivi_u, -#define jit_remr(u,v,w) jit_new_node_www(jit_code_remr,u,v,w) -#define jit_remi(u,v,w) jit_new_node_www(jit_code_remi,u,v,w) - jit_code_remr, jit_code_remi, -#define jit_remr_u(u,v,w) jit_new_node_www(jit_code_remr_u,u,v,w) -#define jit_remi_u(u,v,w) jit_new_node_www(jit_code_remi_u,u,v,w) - jit_code_remr_u, jit_code_remi_u, - -#define jit_andr(u,v,w) jit_new_node_www(jit_code_andr,u,v,w) -#define jit_andi(u,v,w) jit_new_node_www(jit_code_andi,u,v,w) - jit_code_andr, jit_code_andi, -#define jit_orr(u,v,w) jit_new_node_www(jit_code_orr,u,v,w) -#define jit_ori(u,v,w) jit_new_node_www(jit_code_ori,u,v,w) - jit_code_orr, jit_code_ori, -#define jit_xorr(u,v,w) jit_new_node_www(jit_code_xorr,u,v,w) -#define jit_xori(u,v,w) jit_new_node_www(jit_code_xori,u,v,w) - jit_code_xorr, jit_code_xori, - -#define jit_lshr(u,v,w) jit_new_node_www(jit_code_lshr,u,v,w) -#define jit_lshi(u,v,w) jit_new_node_www(jit_code_lshi,u,v,w) - jit_code_lshr, jit_code_lshi, -#define jit_rshr(u,v,w) jit_new_node_www(jit_code_rshr,u,v,w) -#define jit_rshi(u,v,w) jit_new_node_www(jit_code_rshi,u,v,w) - jit_code_rshr, jit_code_rshi, -#define jit_rshr_u(u,v,w) jit_new_node_www(jit_code_rshr_u,u,v,w) -#define jit_rshi_u(u,v,w) jit_new_node_www(jit_code_rshi_u,u,v,w) - jit_code_rshr_u, jit_code_rshi_u, - -#define jit_negr(u,v) jit_new_node_ww(jit_code_negr,u,v) -#define jit_comr(u,v) jit_new_node_ww(jit_code_comr,u,v) - jit_code_negr, jit_code_comr, - -#define jit_ltr(u,v,w) jit_new_node_www(jit_code_ltr,u,v,w) -#define jit_lti(u,v,w) jit_new_node_www(jit_code_lti,u,v,w) - jit_code_ltr, jit_code_lti, -#define jit_ltr_u(u,v,w) jit_new_node_www(jit_code_ltr_u,u,v,w) -#define jit_lti_u(u,v,w) jit_new_node_www(jit_code_lti_u,u,v,w) - jit_code_ltr_u, jit_code_lti_u, -#define jit_ler(u,v,w) jit_new_node_www(jit_code_ler,u,v,w) -#define jit_lei(u,v,w) jit_new_node_www(jit_code_lei,u,v,w) - jit_code_ler, jit_code_lei, -#define jit_ler_u(u,v,w) jit_new_node_www(jit_code_ler_u,u,v,w) -#define jit_lei_u(u,v,w) jit_new_node_www(jit_code_lei_u,u,v,w) - jit_code_ler_u, jit_code_lei_u, -#define jit_eqr(u,v,w) jit_new_node_www(jit_code_eqr,u,v,w) -#define jit_eqi(u,v,w) jit_new_node_www(jit_code_eqi,u,v,w) - jit_code_eqr, jit_code_eqi, -#define jit_ger(u,v,w) jit_new_node_www(jit_code_ger,u,v,w) -#define jit_gei(u,v,w) jit_new_node_www(jit_code_gei,u,v,w) - jit_code_ger, jit_code_gei, -#define jit_ger_u(u,v,w) jit_new_node_www(jit_code_ger_u,u,v,w) -#define jit_gei_u(u,v,w) jit_new_node_www(jit_code_gei_u,u,v,w) - jit_code_ger_u, jit_code_gei_u, -#define jit_gtr(u,v,w) jit_new_node_www(jit_code_gtr,u,v,w) -#define jit_gti(u,v,w) jit_new_node_www(jit_code_gti,u,v,w) - jit_code_gtr, jit_code_gti, -#define jit_gtr_u(u,v,w) jit_new_node_www(jit_code_gtr_u,u,v,w) -#define jit_gti_u(u,v,w) jit_new_node_www(jit_code_gti_u,u,v,w) - jit_code_gtr_u, jit_code_gti_u, -#define jit_ner(u,v,w) jit_new_node_www(jit_code_ner,u,v,w) -#define jit_nei(u,v,w) jit_new_node_www(jit_code_nei,u,v,w) - jit_code_ner, jit_code_nei, - -#define jit_movr(u,v) jit_new_node_ww(jit_code_movr,u,v) -#define jit_movi(u,v) jit_new_node_ww(jit_code_movi,u,v) - jit_code_movr, jit_code_movi, -#define jit_extr_c(u,v) jit_new_node_ww(jit_code_extr_c,u,v) -#define jit_extr_uc(u,v) jit_new_node_ww(jit_code_extr_uc,u,v) - jit_code_extr_c, jit_code_extr_uc, -#define jit_extr_s(u,v) jit_new_node_ww(jit_code_extr_s,u,v) -#define jit_extr_us(u,v) jit_new_node_ww(jit_code_extr_us,u,v) - jit_code_extr_s, jit_code_extr_us, -#if __WORDSIZE == 64 -# define jit_extr_i(u,v) jit_new_node_ww(jit_code_extr_i,u,v) -# define jit_extr_ui(u,v) jit_new_node_ww(jit_code_extr_ui,u,v) -#endif - jit_code_extr_i, jit_code_extr_ui, - -#define jit_htonr_us(u,v) jit_new_node_ww(jit_code_htonr_us,u,v) -#define jit_ntohr_us(u,v) jit_new_node_ww(jit_code_htonr_us,u,v) - jit_code_htonr_us, -#define jit_htonr_ui(u,v) jit_new_node_ww(jit_code_htonr_ui,u,v) -#define jit_ntohr_ui(u,v) jit_new_node_ww(jit_code_htonr_ui,u,v) -#if __WORDSIZE == 32 -# define jit_htonr(u,v) jit_new_node_ww(jit_code_htonr_ui,u,v) -# define jit_ntohr(u,v) jit_new_node_ww(jit_code_htonr_ui,u,v) -#else -#define jit_htonr_ul(u,v) jit_new_node_ww(jit_code_htonr_ul,u,v) -#define jit_ntohr_ul(u,v) jit_new_node_ww(jit_code_htonr_ul,u,v) -# define jit_htonr(u,v) jit_new_node_ww(jit_code_htonr_ul,u,v) -# define jit_ntohr(u,v) jit_new_node_ww(jit_code_htonr_ul,u,v) -#endif - jit_code_htonr_ui, jit_code_htonr_ul, - -#define jit_ldr_c(u,v) jit_new_node_ww(jit_code_ldr_c,u,v) -#define jit_ldi_c(u,v) jit_new_node_wp(jit_code_ldi_c,u,v) - jit_code_ldr_c, jit_code_ldi_c, -#define jit_ldr_uc(u,v) jit_new_node_ww(jit_code_ldr_uc,u,v) -#define jit_ldi_uc(u,v) jit_new_node_wp(jit_code_ldi_uc,u,v) - jit_code_ldr_uc, jit_code_ldi_uc, -#define jit_ldr_s(u,v) jit_new_node_ww(jit_code_ldr_s,u,v) -#define jit_ldi_s(u,v) jit_new_node_wp(jit_code_ldi_s,u,v) - jit_code_ldr_s, jit_code_ldi_s, -#define jit_ldr_us(u,v) jit_new_node_ww(jit_code_ldr_us,u,v) -#define jit_ldi_us(u,v) jit_new_node_wp(jit_code_ldi_us,u,v) - jit_code_ldr_us, jit_code_ldi_us, -#define jit_ldr_i(u,v) jit_new_node_ww(jit_code_ldr_i,u,v) -#define jit_ldi_i(u,v) jit_new_node_wp(jit_code_ldi_i,u,v) - jit_code_ldr_i, jit_code_ldi_i, #if __WORDSIZE == 32 # define jit_ldr(u,v) jit_ldr_i(u,v) # define jit_ldi(u,v) jit_ldi_i(u,v) +# define jit_ldxr(u,v,w) jit_ldxr_i(u,v,w) +# define jit_ldxi(u,v,w) jit_ldxi_i(u,v,w) +# define jit_str(u,v) jit_str_i(u,v) +# define jit_sti(u,v) jit_sti_i(u,v) +# define jit_stxr(u,v,w) jit_stxr_i(u,v,w) +# define jit_stxi(u,v,w) jit_stxi_i(u,v,w) +# define jit_getarg(u,v) jit_getarg_i(u,v) +# define jit_retval(u) jit_retval_i(u) +# define jit_bswapr(u,v) jit_bswapr_ui(u,v) +# define jit_truncr_d(u,v) jit_truncr_d_i(u,v) +# define jit_truncr_f(u,v) jit_truncr_f_i(u,v) #else # define jit_ldr(u,v) jit_ldr_l(u,v) # define jit_ldi(u,v) jit_ldi_l(u,v) -# define jit_ldr_ui(u,v) jit_new_node_ww(jit_code_ldr_ui,u,v) -# define jit_ldi_ui(u,v) jit_new_node_wp(jit_code_ldi_ui,u,v) -#define jit_ldr_l(u,v) jit_new_node_ww(jit_code_ldr_l,u,v) -#define jit_ldi_l(u,v) jit_new_node_wp(jit_code_ldi_l,u,v) -#endif - jit_code_ldr_ui, jit_code_ldi_ui, - jit_code_ldr_l, jit_code_ldi_l, - -#define jit_ldxr_c(u,v,w) jit_new_node_www(jit_code_ldxr_c,u,v,w) -#define jit_ldxi_c(u,v,w) jit_new_node_www(jit_code_ldxi_c,u,v,w) - jit_code_ldxr_c, jit_code_ldxi_c, -#define jit_ldxr_uc(u,v,w) jit_new_node_www(jit_code_ldxr_uc,u,v,w) -#define jit_ldxi_uc(u,v,w) jit_new_node_www(jit_code_ldxi_uc,u,v,w) - jit_code_ldxr_uc, jit_code_ldxi_uc, -#define jit_ldxr_s(u,v,w) jit_new_node_www(jit_code_ldxr_s,u,v,w) -#define jit_ldxi_s(u,v,w) jit_new_node_www(jit_code_ldxi_s,u,v,w) - jit_code_ldxr_s, jit_code_ldxi_s, -#define jit_ldxr_us(u,v,w) jit_new_node_www(jit_code_ldxr_us,u,v,w) -#define jit_ldxi_us(u,v,w) jit_new_node_www(jit_code_ldxi_us,u,v,w) - jit_code_ldxr_us, jit_code_ldxi_us, -#define jit_ldxr_i(u,v,w) jit_new_node_www(jit_code_ldxr_i,u,v,w) -#define jit_ldxi_i(u,v,w) jit_new_node_www(jit_code_ldxi_i,u,v,w) - jit_code_ldxr_i, jit_code_ldxi_i, -#if __WORDSIZE == 32 -# define jit_ldxr(u,v,w) jit_ldxr_i(u,v,w) -# define jit_ldxi(u,v,w) jit_ldxi_i(u,v,w) -#else -# define jit_ldxr_ui(u,v,w) jit_new_node_www(jit_code_ldxr_ui,u,v,w) -# define jit_ldxi_ui(u,v,w) jit_new_node_www(jit_code_ldxi_ui,u,v,w) -# define jit_ldxr_l(u,v,w) jit_new_node_www(jit_code_ldxr_l,u,v,w) -# define jit_ldxi_l(u,v,w) jit_new_node_www(jit_code_ldxi_l,u,v,w) # define jit_ldxr(u,v,w) jit_ldxr_l(u,v,w) # define jit_ldxi(u,v,w) jit_ldxi_l(u,v,w) -#endif - jit_code_ldxr_ui, jit_code_ldxi_ui, - jit_code_ldxr_l, jit_code_ldxi_l, - -#define jit_str_c(u,v) jit_new_node_ww(jit_code_str_c,u,v) -#define jit_sti_c(u,v) jit_new_node_pw(jit_code_sti_c,u,v) - jit_code_str_c, jit_code_sti_c, -#define jit_str_s(u,v) jit_new_node_ww(jit_code_str_s,u,v) -#define jit_sti_s(u,v) jit_new_node_pw(jit_code_sti_s,u,v) - jit_code_str_s, jit_code_sti_s, -#define jit_str_i(u,v) jit_new_node_ww(jit_code_str_i,u,v) -#define jit_sti_i(u,v) jit_new_node_pw(jit_code_sti_i,u,v) - jit_code_str_i, jit_code_sti_i, -#if __WORDSIZE == 32 -# define jit_str(u,v) jit_str_i(u,v) -# define jit_sti(u,v) jit_sti_i(u,v) -#else # define jit_str(u,v) jit_str_l(u,v) # define jit_sti(u,v) jit_sti_l(u,v) -# define jit_str_l(u,v) jit_new_node_ww(jit_code_str_l,u,v) -# define jit_sti_l(u,v) jit_new_node_pw(jit_code_sti_l,u,v) -#endif - jit_code_str_l, jit_code_sti_l, - -#define jit_stxr_c(u,v,w) jit_new_node_www(jit_code_stxr_c,u,v,w) -#define jit_stxi_c(u,v,w) jit_new_node_www(jit_code_stxi_c,u,v,w) - jit_code_stxr_c, jit_code_stxi_c, -#define jit_stxr_s(u,v,w) jit_new_node_www(jit_code_stxr_s,u,v,w) -#define jit_stxi_s(u,v,w) jit_new_node_www(jit_code_stxi_s,u,v,w) - jit_code_stxr_s, jit_code_stxi_s, -#define jit_stxr_i(u,v,w) jit_new_node_www(jit_code_stxr_i,u,v,w) -#define jit_stxi_i(u,v,w) jit_new_node_www(jit_code_stxi_i,u,v,w) - jit_code_stxr_i, jit_code_stxi_i, -#if __WORDSIZE == 32 -# define jit_stxr(u,v,w) jit_stxr_i(u,v,w) -# define jit_stxi(u,v,w) jit_stxi_i(u,v,w) -#else # define jit_stxr(u,v,w) jit_stxr_l(u,v,w) # define jit_stxi(u,v,w) jit_stxi_l(u,v,w) -# define jit_stxr_l(u,v,w) jit_new_node_www(jit_code_stxr_l,u,v,w) -# define jit_stxi_l(u,v,w) jit_new_node_www(jit_code_stxi_l,u,v,w) -#endif - jit_code_stxr_l, jit_code_stxi_l, - -#define jit_bltr(v,w) jit_new_node_pww(jit_code_bltr,NULL,v,w) -#define jit_blti(v,w) jit_new_node_pww(jit_code_blti,NULL,v,w) - jit_code_bltr, jit_code_blti, -#define jit_bltr_u(v,w) jit_new_node_pww(jit_code_bltr_u,NULL,v,w) -#define jit_blti_u(v,w) jit_new_node_pww(jit_code_blti_u,NULL,v,w) - jit_code_bltr_u, jit_code_blti_u, -#define jit_bler(v,w) jit_new_node_pww(jit_code_bler,NULL,v,w) -#define jit_blei(v,w) jit_new_node_pww(jit_code_blei,NULL,v,w) - jit_code_bler, jit_code_blei, -#define jit_bler_u(v,w) jit_new_node_pww(jit_code_bler_u,NULL,v,w) -#define jit_blei_u(v,w) jit_new_node_pww(jit_code_blei_u,NULL,v,w) - jit_code_bler_u, jit_code_blei_u, -#define jit_beqr(v,w) jit_new_node_pww(jit_code_beqr,NULL,v,w) -#define jit_beqi(v,w) jit_new_node_pww(jit_code_beqi,NULL,v,w) - jit_code_beqr, jit_code_beqi, -#define jit_bger(v,w) jit_new_node_pww(jit_code_bger,NULL,v,w) -#define jit_bgei(v,w) jit_new_node_pww(jit_code_bgei,NULL,v,w) - jit_code_bger, jit_code_bgei, -#define jit_bger_u(v,w) jit_new_node_pww(jit_code_bger_u,NULL,v,w) -#define jit_bgei_u(v,w) jit_new_node_pww(jit_code_bgei_u,NULL,v,w) - jit_code_bger_u, jit_code_bgei_u, -#define jit_bgtr(v,w) jit_new_node_pww(jit_code_bgtr,NULL,v,w) -#define jit_bgti(v,w) jit_new_node_pww(jit_code_bgti,NULL,v,w) - jit_code_bgtr, jit_code_bgti, -#define jit_bgtr_u(v,w) jit_new_node_pww(jit_code_bgtr_u,NULL,v,w) -#define jit_bgti_u(v,w) jit_new_node_pww(jit_code_bgti_u,NULL,v,w) - jit_code_bgtr_u, jit_code_bgti_u, -#define jit_bner(v,w) jit_new_node_pww(jit_code_bner,NULL,v,w) -#define jit_bnei(v,w) jit_new_node_pww(jit_code_bnei,NULL,v,w) - jit_code_bner, jit_code_bnei, - -#define jit_bmsr(v,w) jit_new_node_pww(jit_code_bmsr,NULL,v,w) -#define jit_bmsi(v,w) jit_new_node_pww(jit_code_bmsi,NULL,v,w) - jit_code_bmsr, jit_code_bmsi, -#define jit_bmcr(v,w) jit_new_node_pww(jit_code_bmcr,NULL,v,w) -#define jit_bmci(v,w) jit_new_node_pww(jit_code_bmci,NULL,v,w) - jit_code_bmcr, jit_code_bmci, - -#define jit_boaddr(v,w) jit_new_node_pww(jit_code_boaddr,NULL,v,w) -#define jit_boaddi(v,w) jit_new_node_pww(jit_code_boaddi,NULL,v,w) - jit_code_boaddr, jit_code_boaddi, -#define jit_boaddr_u(v,w) jit_new_node_pww(jit_code_boaddr_u,NULL,v,w) -#define jit_boaddi_u(v,w) jit_new_node_pww(jit_code_boaddi_u,NULL,v,w) - jit_code_boaddr_u, jit_code_boaddi_u, -#define jit_bxaddr(v,w) jit_new_node_pww(jit_code_bxaddr,NULL,v,w) -#define jit_bxaddi(v,w) jit_new_node_pww(jit_code_bxaddi,NULL,v,w) - jit_code_bxaddr, jit_code_bxaddi, -#define jit_bxaddr_u(v,w) jit_new_node_pww(jit_code_bxaddr_u,NULL,v,w) -#define jit_bxaddi_u(v,w) jit_new_node_pww(jit_code_bxaddi_u,NULL,v,w) - jit_code_bxaddr_u, jit_code_bxaddi_u, -#define jit_bosubr(v,w) jit_new_node_pww(jit_code_bosubr,NULL,v,w) -#define jit_bosubi(v,w) jit_new_node_pww(jit_code_bosubi,NULL,v,w) - jit_code_bosubr, jit_code_bosubi, -#define jit_bosubr_u(v,w) jit_new_node_pww(jit_code_bosubr_u,NULL,v,w) -#define jit_bosubi_u(v,w) jit_new_node_pww(jit_code_bosubi_u,NULL,v,w) - jit_code_bosubr_u, jit_code_bosubi_u, -#define jit_bxsubr(v,w) jit_new_node_pww(jit_code_bxsubr,NULL,v,w) -#define jit_bxsubi(v,w) jit_new_node_pww(jit_code_bxsubi,NULL,v,w) - jit_code_bxsubr, jit_code_bxsubi, -#define jit_bxsubr_u(v,w) jit_new_node_pww(jit_code_bxsubr_u,NULL,v,w) -#define jit_bxsubi_u(v,w) jit_new_node_pww(jit_code_bxsubi_u,NULL,v,w) - jit_code_bxsubr_u, jit_code_bxsubi_u, - -#define jit_jmpr(u) jit_new_node_w(jit_code_jmpr,u) -#define jit_jmpi() jit_new_node_p(jit_code_jmpi,NULL) - jit_code_jmpr, jit_code_jmpi, -#define jit_callr(u) jit_new_node_w(jit_code_callr,u) -#define jit_calli(u) jit_new_node_p(jit_code_calli,u) - jit_code_callr, jit_code_calli, - -#define jit_prepare() _jit_prepare(_jit) - jit_code_prepare, -#define jit_pushargr(u) _jit_pushargr(_jit,u) -#define jit_pushargi(u) _jit_pushargi(_jit,u) - jit_code_pushargr, jit_code_pushargi, -#define jit_finishr(u) _jit_finishr(_jit,u) -#define jit_finishi(u) _jit_finishi(_jit,u) - jit_code_finishr, jit_code_finishi, -#define jit_ret() _jit_ret(_jit) - jit_code_ret, -#define jit_retr(u) _jit_retr(_jit,u) -#define jit_reti(u) _jit_reti(_jit,u) - jit_code_retr, jit_code_reti, -#define jit_retval_c(u) _jit_retval_c(_jit,u) -#define jit_retval_uc(u) _jit_retval_uc(_jit,u) - jit_code_retval_c, jit_code_retval_uc, -#define jit_retval_s(u) _jit_retval_s(_jit,u) -#define jit_retval_us(u) _jit_retval_us(_jit,u) - jit_code_retval_s, jit_code_retval_us, -#define jit_retval_i(u) _jit_retval_i(_jit,u) -#if __WORDSIZE == 32 -# define jit_retval(u) jit_retval_i(u) -#else +# define jit_getarg(u,v) jit_getarg_l(u,v) # define jit_retval(u) jit_retval_l(u) -# define jit_retval_ui(u) _jit_retval_ui(_jit,u) -# define jit_retval_l(u) _jit_retval_l(_jit,u) -#endif - jit_code_retval_i, jit_code_retval_ui, - jit_code_retval_l, - -#define jit_epilog() _jit_epilog(_jit) - jit_code_epilog, - -#define jit_arg_f() _jit_arg_f(_jit) - jit_code_arg_f, -#define jit_getarg_f(u,v) _jit_getarg_f(_jit,u,v) - jit_code_getarg_f, -#define jit_putargr_f(u,v) _jit_putargr_f(_jit,u,v) -#define jit_putargi_f(u,v) _jit_putargi_f(_jit,u,v) - jit_code_putargr_f, jit_code_putargi_f, - -#define jit_addr_f(u,v,w) jit_new_node_www(jit_code_addr_f,u,v,w) -#define jit_addi_f(u,v,w) jit_new_node_wwf(jit_code_addi_f,u,v,w) - jit_code_addr_f, jit_code_addi_f, -#define jit_subr_f(u,v,w) jit_new_node_www(jit_code_subr_f,u,v,w) -#define jit_subi_f(u,v,w) jit_new_node_wwf(jit_code_subi_f,u,v,w) - jit_code_subr_f, jit_code_subi_f, -#define jit_rsbr_f(u,v,w) jit_subr_f(u,w,v) -#define jit_rsbi_f(u,v,w) jit_new_node_wwf(jit_code_rsbi_f,u,v,w) - jit_code_rsbi_f, -#define jit_mulr_f(u,v,w) jit_new_node_www(jit_code_mulr_f,u,v,w) -#define jit_muli_f(u,v,w) jit_new_node_wwf(jit_code_muli_f,u,v,w) - jit_code_mulr_f, jit_code_muli_f, -#define jit_divr_f(u,v,w) jit_new_node_www(jit_code_divr_f,u,v,w) -#define jit_divi_f(u,v,w) jit_new_node_wwf(jit_code_divi_f,u,v,w) - jit_code_divr_f, jit_code_divi_f, -#define jit_negr_f(u,v) jit_new_node_ww(jit_code_negr_f,u,v) -#define jit_absr_f(u,v) jit_new_node_ww(jit_code_absr_f,u,v) -#define jit_sqrtr_f(u,v) jit_new_node_ww(jit_code_sqrtr_f,u,v) - jit_code_negr_f, jit_code_absr_f, jit_code_sqrtr_f, - -#define jit_ltr_f(u,v,w) jit_new_node_www(jit_code_ltr_f,u,v,w) -#define jit_lti_f(u,v,w) jit_new_node_wwf(jit_code_lti_f,u,v,w) - jit_code_ltr_f, jit_code_lti_f, -#define jit_ler_f(u,v,w) jit_new_node_www(jit_code_ler_f,u,v,w) -#define jit_lei_f(u,v,w) jit_new_node_wwf(jit_code_lei_f,u,v,w) - jit_code_ler_f, jit_code_lei_f, -#define jit_eqr_f(u,v,w) jit_new_node_www(jit_code_eqr_f,u,v,w) -#define jit_eqi_f(u,v,w) jit_new_node_wwf(jit_code_eqi_f,u,v,w) - jit_code_eqr_f, jit_code_eqi_f, -#define jit_ger_f(u,v,w) jit_new_node_www(jit_code_ger_f,u,v,w) -#define jit_gei_f(u,v,w) jit_new_node_wwf(jit_code_gei_f,u,v,w) - jit_code_ger_f, jit_code_gei_f, -#define jit_gtr_f(u,v,w) jit_new_node_www(jit_code_gtr_f,u,v,w) -#define jit_gti_f(u,v,w) jit_new_node_wwf(jit_code_gti_f,u,v,w) - jit_code_gtr_f, jit_code_gti_f, -#define jit_ner_f(u,v,w) jit_new_node_www(jit_code_ner_f,u,v,w) -#define jit_nei_f(u,v,w) jit_new_node_wwf(jit_code_nei_f,u,v,w) - jit_code_ner_f, jit_code_nei_f, -#define jit_unltr_f(u,v,w) jit_new_node_www(jit_code_unltr_f,u,v,w) -#define jit_unlti_f(u,v,w) jit_new_node_wwf(jit_code_unlti_f,u,v,w) - jit_code_unltr_f, jit_code_unlti_f, -#define jit_unler_f(u,v,w) jit_new_node_www(jit_code_unler_f,u,v,w) -#define jit_unlei_f(u,v,w) jit_new_node_wwf(jit_code_unlei_f,u,v,w) - jit_code_unler_f, jit_code_unlei_f, -#define jit_uneqr_f(u,v,w) jit_new_node_www(jit_code_uneqr_f,u,v,w) -#define jit_uneqi_f(u,v,w) jit_new_node_wwf(jit_code_uneqi_f,u,v,w) - jit_code_uneqr_f, jit_code_uneqi_f, -#define jit_unger_f(u,v,w) jit_new_node_www(jit_code_unger_f,u,v,w) -#define jit_ungei_f(u,v,w) jit_new_node_wwf(jit_code_ungei_f,u,v,w) - jit_code_unger_f, jit_code_ungei_f, -#define jit_ungtr_f(u,v,w) jit_new_node_www(jit_code_ungtr_f,u,v,w) -#define jit_ungti_f(u,v,w) jit_new_node_wwf(jit_code_ungti_f,u,v,w) - jit_code_ungtr_f, jit_code_ungti_f, -#define jit_ltgtr_f(u,v,w) jit_new_node_www(jit_code_ltgtr_f,u,v,w) -#define jit_ltgti_f(u,v,w) jit_new_node_wwf(jit_code_ltgti_f,u,v,w) - jit_code_ltgtr_f, jit_code_ltgti_f, -#define jit_ordr_f(u,v,w) jit_new_node_www(jit_code_ordr_f,u,v,w) -#define jit_ordi_f(u,v,w) jit_new_node_wwf(jit_code_ordi_f,u,v,w) - jit_code_ordr_f, jit_code_ordi_f, -#define jit_unordr_f(u,v,w) jit_new_node_www(jit_code_unordr_f,u,v,w) -#define jit_unordi_f(u,v,w) jit_new_node_wwf(jit_code_unordi_f,u,v,w) - jit_code_unordr_f, jit_code_unordi_f, - -#define jit_truncr_f_i(u,v) jit_new_node_ww(jit_code_truncr_f_i,u,v) - jit_code_truncr_f_i, -#if __WORDSIZE == 32 -# define jit_truncr_f(u,v) jit_truncr_f_i(u,v) -#else -# define jit_truncr_f(u,v) jit_truncr_f_l(u,v) -# define jit_truncr_f_l(u,v) jit_new_node_ww(jit_code_truncr_f_l,u,v) -#endif - jit_code_truncr_f_l, -#define jit_extr_f(u,v) jit_new_node_ww(jit_code_extr_f,u,v) -#define jit_extr_d_f(u,v) jit_new_node_ww(jit_code_extr_d_f,u,v) - jit_code_extr_f, jit_code_extr_d_f, -#define jit_movr_f(u,v) jit_new_node_ww(jit_code_movr_f,u,v) -#define jit_movi_f(u,v) jit_new_node_wf(jit_code_movi_f,u,v) - jit_code_movr_f, jit_code_movi_f, - -#define jit_ldr_f(u,v) jit_new_node_ww(jit_code_ldr_f,u,v) -#define jit_ldi_f(u,v) jit_new_node_wp(jit_code_ldi_f,u,v) - jit_code_ldr_f, jit_code_ldi_f, -#define jit_ldxr_f(u,v,w) jit_new_node_www(jit_code_ldxr_f,u,v,w) -#define jit_ldxi_f(u,v,w) jit_new_node_www(jit_code_ldxi_f,u,v,w) - jit_code_ldxr_f, jit_code_ldxi_f, -#define jit_str_f(u,v) jit_new_node_ww(jit_code_str_f,u,v) -#define jit_sti_f(u,v) jit_new_node_pw(jit_code_sti_f,u,v) - jit_code_str_f, jit_code_sti_f, -#define jit_stxr_f(u,v,w) jit_new_node_www(jit_code_stxr_f,u,v,w) -#define jit_stxi_f(u,v,w) jit_new_node_www(jit_code_stxi_f,u,v,w) - jit_code_stxr_f, jit_code_stxi_f, - -#define jit_bltr_f(v,w) jit_new_node_pww(jit_code_bltr_f,NULL,v,w) -#define jit_blti_f(v,w) jit_new_node_pwf(jit_code_blti_f,NULL,v,w) - jit_code_bltr_f, jit_code_blti_f, -#define jit_bler_f(v,w) jit_new_node_pww(jit_code_bler_f,NULL,v,w) -#define jit_blei_f(v,w) jit_new_node_pwf(jit_code_blei_f,NULL,v,w) - jit_code_bler_f, jit_code_blei_f, -#define jit_beqr_f(v,w) jit_new_node_pww(jit_code_beqr_f,NULL,v,w) -#define jit_beqi_f(v,w) jit_new_node_pwf(jit_code_beqi_f,NULL,v,w) - jit_code_beqr_f, jit_code_beqi_f, -#define jit_bger_f(v,w) jit_new_node_pww(jit_code_bger_f,NULL,v,w) -#define jit_bgei_f(v,w) jit_new_node_pwf(jit_code_bgei_f,NULL,v,w) - jit_code_bger_f, jit_code_bgei_f, -#define jit_bgtr_f(v,w) jit_new_node_pww(jit_code_bgtr_f,NULL,v,w) -#define jit_bgti_f(v,w) jit_new_node_pwf(jit_code_bgti_f,NULL,v,w) - jit_code_bgtr_f, jit_code_bgti_f, -#define jit_bner_f(v,w) jit_new_node_pww(jit_code_bner_f,NULL,v,w) -#define jit_bnei_f(v,w) jit_new_node_pwf(jit_code_bnei_f,NULL,v,w) - jit_code_bner_f, jit_code_bnei_f, -#define jit_bunltr_f(v,w) jit_new_node_pww(jit_code_bunltr_f,NULL,v,w) -#define jit_bunlti_f(v,w) jit_new_node_pwf(jit_code_bunlti_f,NULL,v,w) - jit_code_bunltr_f, jit_code_bunlti_f, -#define jit_bunler_f(v,w) jit_new_node_pww(jit_code_bunler_f,NULL,v,w) -#define jit_bunlei_f(v,w) jit_new_node_pwf(jit_code_bunlei_f,NULL,v,w) - jit_code_bunler_f, jit_code_bunlei_f, -#define jit_buneqr_f(v,w) jit_new_node_pww(jit_code_buneqr_f,NULL,v,w) -#define jit_buneqi_f(v,w) jit_new_node_pwf(jit_code_buneqi_f,NULL,v,w) - jit_code_buneqr_f, jit_code_buneqi_f, -#define jit_bunger_f(v,w) jit_new_node_pww(jit_code_bunger_f,NULL,v,w) -#define jit_bungei_f(v,w) jit_new_node_pwf(jit_code_bungei_f,NULL,v,w) - jit_code_bunger_f, jit_code_bungei_f, -#define jit_bungtr_f(v,w) jit_new_node_pww(jit_code_bungtr_f,NULL,v,w) -#define jit_bungti_f(v,w) jit_new_node_pwf(jit_code_bungti_f,NULL,v,w) - jit_code_bungtr_f, jit_code_bungti_f, -#define jit_bltgtr_f(v,w) jit_new_node_pww(jit_code_bltgtr_f,NULL,v,w) -#define jit_bltgti_f(v,w) jit_new_node_pwf(jit_code_bltgti_f,NULL,v,w) - jit_code_bltgtr_f, jit_code_bltgti_f, -#define jit_bordr_f(v,w) jit_new_node_pww(jit_code_bordr_f,NULL,v,w) -#define jit_bordi_f(v,w) jit_new_node_pwf(jit_code_bordi_f,NULL,v,w) - jit_code_bordr_f, jit_code_bordi_f, -#define jit_bunordr_f(v,w) jit_new_node_pww(jit_code_bunordr_f,NULL,v,w) -#define jit_bunordi_f(v,w) jit_new_node_pwf(jit_code_bunordi_f,NULL,v,w) - jit_code_bunordr_f, jit_code_bunordi_f, - -#define jit_pushargr_f(u) _jit_pushargr_f(_jit,u) -#define jit_pushargi_f(u) _jit_pushargi_f(_jit,u) - jit_code_pushargr_f, jit_code_pushargi_f, -#define jit_retr_f(u) _jit_retr_f(_jit,u) -#define jit_reti_f(u) _jit_reti_f(_jit,u) - jit_code_retr_f, jit_code_reti_f, -#define jit_retval_f(u) _jit_retval_f(_jit,u) - jit_code_retval_f, - -#define jit_arg_d() _jit_arg_d(_jit) - jit_code_arg_d, -#define jit_getarg_d(u,v) _jit_getarg_d(_jit,u,v) - jit_code_getarg_d, -#define jit_putargr_d(u,v) _jit_putargr_d(_jit,u,v) -#define jit_putargi_d(u,v) _jit_putargi_d(_jit,u,v) - jit_code_putargr_d, jit_code_putargi_d, - -#define jit_addr_d(u,v,w) jit_new_node_www(jit_code_addr_d,u,v,w) -#define jit_addi_d(u,v,w) jit_new_node_wwd(jit_code_addi_d,u,v,w) - jit_code_addr_d, jit_code_addi_d, -#define jit_subr_d(u,v,w) jit_new_node_www(jit_code_subr_d,u,v,w) -#define jit_subi_d(u,v,w) jit_new_node_wwd(jit_code_subi_d,u,v,w) - jit_code_subr_d, jit_code_subi_d, -#define jit_rsbr_d(u,v,w) jit_subr_d(u,w,v) -#define jit_rsbi_d(u,v,w) jit_new_node_wwd(jit_code_rsbi_d,u,v,w) - jit_code_rsbi_d, -#define jit_mulr_d(u,v,w) jit_new_node_www(jit_code_mulr_d,u,v,w) -#define jit_muli_d(u,v,w) jit_new_node_wwd(jit_code_muli_d,u,v,w) - jit_code_mulr_d, jit_code_muli_d, -#define jit_divr_d(u,v,w) jit_new_node_www(jit_code_divr_d,u,v,w) -#define jit_divi_d(u,v,w) jit_new_node_wwd(jit_code_divi_d,u,v,w) - jit_code_divr_d, jit_code_divi_d, - -#define jit_negr_d(u,v) jit_new_node_ww(jit_code_negr_d,u,v) -#define jit_absr_d(u,v) jit_new_node_ww(jit_code_absr_d,u,v) -#define jit_sqrtr_d(u,v) jit_new_node_ww(jit_code_sqrtr_d,u,v) - jit_code_negr_d, jit_code_absr_d, jit_code_sqrtr_d, - -#define jit_ltr_d(u,v,w) jit_new_node_www(jit_code_ltr_d,u,v,w) -#define jit_lti_d(u,v,w) jit_new_node_wwd(jit_code_lti_d,u,v,w) - jit_code_ltr_d, jit_code_lti_d, -#define jit_ler_d(u,v,w) jit_new_node_www(jit_code_ler_d,u,v,w) -#define jit_lei_d(u,v,w) jit_new_node_wwd(jit_code_lei_d,u,v,w) - jit_code_ler_d, jit_code_lei_d, -#define jit_eqr_d(u,v,w) jit_new_node_www(jit_code_eqr_d,u,v,w) -#define jit_eqi_d(u,v,w) jit_new_node_wwd(jit_code_eqi_d,u,v,w) - jit_code_eqr_d, jit_code_eqi_d, -#define jit_ger_d(u,v,w) jit_new_node_www(jit_code_ger_d,u,v,w) -#define jit_gei_d(u,v,w) jit_new_node_wwd(jit_code_gei_d,u,v,w) - jit_code_ger_d, jit_code_gei_d, -#define jit_gtr_d(u,v,w) jit_new_node_www(jit_code_gtr_d,u,v,w) -#define jit_gti_d(u,v,w) jit_new_node_wwd(jit_code_gti_d,u,v,w) - jit_code_gtr_d, jit_code_gti_d, -#define jit_ner_d(u,v,w) jit_new_node_www(jit_code_ner_d,u,v,w) -#define jit_nei_d(u,v,w) jit_new_node_wwd(jit_code_nei_d,u,v,w) - jit_code_ner_d, jit_code_nei_d, -#define jit_unltr_d(u,v,w) jit_new_node_www(jit_code_unltr_d,u,v,w) -#define jit_unlti_d(u,v,w) jit_new_node_wwd(jit_code_unlti_d,u,v,w) - jit_code_unltr_d, jit_code_unlti_d, -#define jit_unler_d(u,v,w) jit_new_node_www(jit_code_unler_d,u,v,w) -#define jit_unlei_d(u,v,w) jit_new_node_wwd(jit_code_unlei_d,u,v,w) - jit_code_unler_d, jit_code_unlei_d, -#define jit_uneqr_d(u,v,w) jit_new_node_www(jit_code_uneqr_d,u,v,w) -#define jit_uneqi_d(u,v,w) jit_new_node_wwd(jit_code_uneqi_d,u,v,w) - jit_code_uneqr_d, jit_code_uneqi_d, -#define jit_unger_d(u,v,w) jit_new_node_www(jit_code_unger_d,u,v,w) -#define jit_ungei_d(u,v,w) jit_new_node_wwd(jit_code_ungei_d,u,v,w) - jit_code_unger_d, jit_code_ungei_d, -#define jit_ungtr_d(u,v,w) jit_new_node_www(jit_code_ungtr_d,u,v,w) -#define jit_ungti_d(u,v,w) jit_new_node_wwd(jit_code_ungti_d,u,v,w) - jit_code_ungtr_d, jit_code_ungti_d, -#define jit_ltgtr_d(u,v,w) jit_new_node_www(jit_code_ltgtr_d,u,v,w) -#define jit_ltgti_d(u,v,w) jit_new_node_wwd(jit_code_ltgti_d,u,v,w) - jit_code_ltgtr_d, jit_code_ltgti_d, -#define jit_ordr_d(u,v,w) jit_new_node_www(jit_code_ordr_d,u,v,w) -#define jit_ordi_d(u,v,w) jit_new_node_wwd(jit_code_ordi_d,u,v,w) - jit_code_ordr_d, jit_code_ordi_d, -#define jit_unordr_d(u,v,w) jit_new_node_www(jit_code_unordr_d,u,v,w) -#define jit_unordi_d(u,v,w) jit_new_node_wwd(jit_code_unordi_d,u,v,w) - jit_code_unordr_d, jit_code_unordi_d, - -#define jit_truncr_d_i(u,v) jit_new_node_ww(jit_code_truncr_d_i,u,v) - jit_code_truncr_d_i, -#if __WORDSIZE == 32 -# define jit_truncr_d(u,v) jit_truncr_d_i(u,v) -#else +# define jit_bswapr(u,v) jit_bswapr_ul(u,v) # define jit_truncr_d(u,v) jit_truncr_d_l(u,v) -# define jit_truncr_d_l(u,v) jit_new_node_ww(jit_code_truncr_d_l,u,v) +# define jit_truncr_f(u,v) jit_truncr_f_l(u,v) #endif - jit_code_truncr_d_l, -#define jit_extr_d(u,v) jit_new_node_ww(jit_code_extr_d,u,v) -#define jit_extr_f_d(u,v) jit_new_node_ww(jit_code_extr_f_d,u,v) - jit_code_extr_d, jit_code_extr_f_d, -#define jit_movr_d(u,v) jit_new_node_ww(jit_code_movr_d,u,v) -#define jit_movi_d(u,v) jit_new_node_wd(jit_code_movi_d,u,v) - jit_code_movr_d, jit_code_movi_d, -#define jit_ldr_d(u,v) jit_new_node_ww(jit_code_ldr_d,u,v) -#define jit_ldi_d(u,v) jit_new_node_wp(jit_code_ldi_d,u,v) - jit_code_ldr_d, jit_code_ldi_d, -#define jit_ldxr_d(u,v,w) jit_new_node_www(jit_code_ldxr_d,u,v,w) -#define jit_ldxi_d(u,v,w) jit_new_node_www(jit_code_ldxi_d,u,v,w) - jit_code_ldxr_d, jit_code_ldxi_d, -#define jit_str_d(u,v) jit_new_node_ww(jit_code_str_d,u,v) -#define jit_sti_d(u,v) jit_new_node_pw(jit_code_sti_d,u,v) - jit_code_str_d, jit_code_sti_d, -#define jit_stxr_d(u,v,w) jit_new_node_www(jit_code_stxr_d,u,v,w) -#define jit_stxi_d(u,v,w) jit_new_node_www(jit_code_stxi_d,u,v,w) - jit_code_stxr_d, jit_code_stxi_d, - -#define jit_bltr_d(v,w) jit_new_node_pww(jit_code_bltr_d,NULL,v,w) -#define jit_blti_d(v,w) jit_new_node_pwd(jit_code_blti_d,NULL,v,w) - jit_code_bltr_d, jit_code_blti_d, -#define jit_bler_d(v,w) jit_new_node_pww(jit_code_bler_d,NULL,v,w) -#define jit_blei_d(v,w) jit_new_node_pwd(jit_code_blei_d,NULL,v,w) - jit_code_bler_d, jit_code_blei_d, -#define jit_beqr_d(v,w) jit_new_node_pww(jit_code_beqr_d,NULL,v,w) -#define jit_beqi_d(v,w) jit_new_node_pwd(jit_code_beqi_d,NULL,v,w) - jit_code_beqr_d, jit_code_beqi_d, -#define jit_bger_d(v,w) jit_new_node_pww(jit_code_bger_d,NULL,v,w) -#define jit_bgei_d(v,w) jit_new_node_pwd(jit_code_bgei_d,NULL,v,w) - jit_code_bger_d, jit_code_bgei_d, -#define jit_bgtr_d(v,w) jit_new_node_pww(jit_code_bgtr_d,NULL,v,w) -#define jit_bgti_d(v,w) jit_new_node_pwd(jit_code_bgti_d,NULL,v,w) - jit_code_bgtr_d, jit_code_bgti_d, -#define jit_bner_d(v,w) jit_new_node_pww(jit_code_bner_d,NULL,v,w) -#define jit_bnei_d(v,w) jit_new_node_pwd(jit_code_bnei_d,NULL,v,w) - jit_code_bner_d, jit_code_bnei_d, -#define jit_bunltr_d(v,w) jit_new_node_pww(jit_code_bunltr_d,NULL,v,w) -#define jit_bunlti_d(v,w) jit_new_node_pwd(jit_code_bunlti_d,NULL,v,w) - jit_code_bunltr_d, jit_code_bunlti_d, -#define jit_bunler_d(v,w) jit_new_node_pww(jit_code_bunler_d,NULL,v,w) -#define jit_bunlei_d(v,w) jit_new_node_pwd(jit_code_bunlei_d,NULL,v,w) - jit_code_bunler_d, jit_code_bunlei_d, -#define jit_buneqr_d(v,w) jit_new_node_pww(jit_code_buneqr_d,NULL,v,w) -#define jit_buneqi_d(v,w) jit_new_node_pwd(jit_code_buneqi_d,NULL,v,w) - jit_code_buneqr_d, jit_code_buneqi_d, -#define jit_bunger_d(v,w) jit_new_node_pww(jit_code_bunger_d,NULL,v,w) -#define jit_bungei_d(v,w) jit_new_node_pwd(jit_code_bungei_d,NULL,v,w) - jit_code_bunger_d, jit_code_bungei_d, -#define jit_bungtr_d(v,w) jit_new_node_pww(jit_code_bungtr_d,NULL,v,w) -#define jit_bungti_d(v,w) jit_new_node_pwd(jit_code_bungti_d,NULL,v,w) - jit_code_bungtr_d, jit_code_bungti_d, -#define jit_bltgtr_d(v,w) jit_new_node_pww(jit_code_bltgtr_d,NULL,v,w) -#define jit_bltgti_d(v,w) jit_new_node_pwd(jit_code_bltgti_d,NULL,v,w) - jit_code_bltgtr_d, jit_code_bltgti_d, -#define jit_bordr_d(v,w) jit_new_node_pww(jit_code_bordr_d,NULL,v,w) -#define jit_bordi_d(v,w) jit_new_node_pwd(jit_code_bordi_d,NULL,v,w) - jit_code_bordr_d, jit_code_bordi_d, -#define jit_bunordr_d(v,w) jit_new_node_pww(jit_code_bunordr_d,NULL,v,w) -#define jit_bunordi_d(v,w) jit_new_node_pwd(jit_code_bunordi_d,NULL,v,w) - jit_code_bunordr_d, jit_code_bunordi_d, - -#define jit_pushargr_d(u) _jit_pushargr_d(_jit,u) -#define jit_pushargi_d(u) _jit_pushargi_d(_jit,u) - jit_code_pushargr_d, jit_code_pushargi_d, -#define jit_retr_d(u) _jit_retr_d(_jit,u) -#define jit_reti_d(u) _jit_reti_d(_jit,u) - jit_code_retr_d, jit_code_reti_d, -#define jit_retval_d(u) _jit_retval_d(_jit,u) - jit_code_retval_d, - - /* Special internal backend specific codes */ - jit_code_movr_w_f, jit_code_movr_ww_d, /* w* -> f|d */ -#define jit_movr_w_f(u, v) jit_new_node_ww(jit_code_movr_w_f, u, v) -#define jit_movr_ww_d(u, v, w) jit_new_node_www(jit_code_movr_ww_d, u, v, w) - jit_code_movr_w_d, /* w -> d */ -#define jit_movr_w_d(u, v) jit_new_node_ww(jit_code_movr_w_d, u, v) - - jit_code_movr_f_w, jit_code_movi_f_w, /* f|d -> w* */ -#define jit_movr_f_w(u, v) jit_new_node_ww(jit_code_movr_f_w, u, v) -#define jit_movi_f_w(u, v) jit_new_node_wf(jit_code_movi_f_w, u, v) - jit_code_movr_d_ww, jit_code_movi_d_ww, -#define jit_movr_d_ww(u, v, w) jit_new_node_www(jit_code_movr_d_ww, u, v, w) -#define jit_movi_d_ww(u, v, w) jit_new_node_wwd(jit_code_movi_d_ww, u, v, w) - - jit_code_movr_d_w, jit_code_movi_d_w, /* d -> w */ -#define jit_movr_d_w(u, v) jit_new_node_ww(jit_code_movr_d_w, u, v) -#define jit_movi_d_w(u, v) jit_new_node_wd(jit_code_movi_d_w, u, v) - - jit_code_last_code -} jit_code_t; - -typedef void* (*jit_alloc_func_ptr) (size_t); -typedef void* (*jit_realloc_func_ptr) (void*, size_t); -typedef void (*jit_free_func_ptr) (void*); - -/* - * Prototypes - */ -extern void init_jit(const char*); -extern void finish_jit(void); - -extern jit_state_t *jit_new_state(void); #define jit_clear_state() _jit_clear_state(_jit) -extern void _jit_clear_state(jit_state_t*); #define jit_destroy_state() _jit_destroy_state(_jit) -extern void _jit_destroy_state(jit_state_t*); #define jit_address(node) _jit_address(_jit, node) -extern jit_pointer_t _jit_address(jit_state_t*, jit_node_t*); -extern jit_node_t *_jit_name(jit_state_t*, const char*); -extern jit_node_t *_jit_note(jit_state_t*, const char*, int); -extern jit_node_t *_jit_label(jit_state_t*); -extern jit_node_t *_jit_forward(jit_state_t*); -extern jit_node_t *_jit_indirect(jit_state_t*); -extern void _jit_link(jit_state_t*, jit_node_t*); #define jit_forward_p(u) _jit_forward_p(_jit,u) -extern jit_bool_t _jit_forward_p(jit_state_t*,jit_node_t*); #define jit_indirect_p(u) _jit_indirect_p(_jit,u) -extern jit_bool_t _jit_indirect_p(jit_state_t*,jit_node_t*); #define jit_target_p(u) _jit_target_p(_jit,u) -extern jit_bool_t _jit_target_p(jit_state_t*,jit_node_t*); - -extern void _jit_prolog(jit_state_t*); - -extern jit_int32_t _jit_allocai(jit_state_t*, jit_int32_t); -extern void _jit_allocar(jit_state_t*, jit_int32_t, jit_int32_t); -extern void _jit_ellipsis(jit_state_t*); - -extern jit_node_t *_jit_arg(jit_state_t*); -extern void _jit_getarg_c(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_getarg_uc(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_getarg_s(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_getarg_us(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_getarg_i(jit_state_t*, jit_gpr_t, jit_node_t*); -#if __WORDSIZE == 64 -extern void _jit_getarg_ui(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_getarg_l(jit_state_t*, jit_gpr_t, jit_node_t*); -#endif -extern void _jit_putargr(jit_state_t*, jit_gpr_t, jit_node_t*); -extern void _jit_putargi(jit_state_t*, jit_word_t, jit_node_t*); - -extern void _jit_prepare(jit_state_t*); -extern void _jit_ellipsis(jit_state_t*); -extern void _jit_va_push(jit_state_t*, jit_gpr_t); -extern void _jit_pushargr(jit_state_t*, jit_gpr_t); -extern void _jit_pushargi(jit_state_t*, jit_word_t); -extern void _jit_finishr(jit_state_t*, jit_gpr_t); -extern jit_node_t *_jit_finishi(jit_state_t*, jit_pointer_t); -extern void _jit_ret(jit_state_t*); -extern void _jit_retr(jit_state_t*, jit_gpr_t); -extern void _jit_reti(jit_state_t*, jit_word_t); -extern void _jit_retval_c(jit_state_t*, jit_gpr_t); -extern void _jit_retval_uc(jit_state_t*, jit_gpr_t); -extern void _jit_retval_s(jit_state_t*, jit_gpr_t); -extern void _jit_retval_us(jit_state_t*, jit_gpr_t); -extern void _jit_retval_i(jit_state_t*, jit_gpr_t); -#if __WORDSIZE == 64 -extern void _jit_retval_ui(jit_state_t*, jit_gpr_t); -extern void _jit_retval_l(jit_state_t*, jit_gpr_t); -#endif -extern void _jit_epilog(jit_state_t*); #define jit_patch(u) _jit_patch(_jit,u) -extern void _jit_patch(jit_state_t*, jit_node_t*); #define jit_patch_at(u,v) _jit_patch_at(_jit,u,v) -extern void _jit_patch_at(jit_state_t*, jit_node_t*, jit_node_t*); #define jit_patch_abs(u,v) _jit_patch_abs(_jit,u,v) -extern void _jit_patch_abs(jit_state_t*, jit_node_t*, jit_pointer_t); #define jit_realize() _jit_realize(_jit) -extern void _jit_realize(jit_state_t*); #define jit_get_code(u) _jit_get_code(_jit,u) -extern jit_pointer_t _jit_get_code(jit_state_t*, jit_word_t*); #define jit_set_code(u,v) _jit_set_code(_jit,u,v) -extern void _jit_set_code(jit_state_t*, jit_pointer_t, jit_word_t); #define jit_get_data(u,v) _jit_get_data(_jit,u,v) -extern jit_pointer_t _jit_get_data(jit_state_t*, jit_word_t*, jit_word_t*); #define jit_set_data(u,v,w) _jit_set_data(_jit,u,v,w) -extern void _jit_set_data(jit_state_t*, jit_pointer_t, jit_word_t, jit_word_t); #define jit_frame(u) _jit_frame(_jit,u) -extern void _jit_frame(jit_state_t*, jit_int32_t); #define jit_tramp(u) _jit_tramp(_jit,u) -extern void _jit_tramp(jit_state_t*, jit_int32_t); #define jit_emit() _jit_emit(_jit) -extern jit_pointer_t _jit_emit(jit_state_t*); - #define jit_print() _jit_print(_jit) -extern void _jit_print(jit_state_t*); -extern jit_node_t *_jit_arg_f(jit_state_t*); -extern void _jit_getarg_f(jit_state_t*, jit_fpr_t, jit_node_t*); -extern void _jit_putargr_f(jit_state_t*, jit_fpr_t, jit_node_t*); -extern void _jit_putargi_f(jit_state_t*, jit_float32_t, jit_node_t*); -extern void _jit_pushargr_f(jit_state_t*, jit_fpr_t); -extern void _jit_pushargi_f(jit_state_t*, jit_float32_t); -extern void _jit_retr_f(jit_state_t*, jit_fpr_t); -extern void _jit_reti_f(jit_state_t*, jit_float32_t); -extern void _jit_retval_f(jit_state_t*, jit_fpr_t); +#define jit_arg_register_p(u) _jit_arg_register_p(_jit,u) +#define jit_callee_save_p(u) _jit_callee_save_p(_jit,u) +#define jit_pointer_p(u) _jit_pointer_p(_jit,u) -extern jit_node_t *_jit_arg_d(jit_state_t*); -extern void _jit_getarg_d(jit_state_t*, jit_fpr_t, jit_node_t*); -extern void _jit_putargr_d(jit_state_t*, jit_fpr_t, jit_node_t*); -extern void _jit_putargi_d(jit_state_t*, jit_float64_t, jit_node_t*); -extern void _jit_pushargr_d(jit_state_t*, jit_fpr_t); -extern void _jit_pushargi_d(jit_state_t*, jit_float64_t); -extern void _jit_retr_d(jit_state_t*, jit_fpr_t); -extern void _jit_reti_d(jit_state_t*, jit_float64_t); -extern void _jit_retval_d(jit_state_t*, jit_fpr_t); +#define JIT_PROTO_0(stem, ret) \ + extern ret _jit_##stem (jit_state*) +#define JIT_PROTO_1(stem, ret, a) \ + extern ret _jit_##stem (jit_state*, jit_##a##_t) +#define JIT_PROTO_2(stem, ret, a, b) \ + extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t) +#define JIT_PROTO_3(stem, ret, a, b, c) \ + extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t, jit_##c##_t) +#define JIT_PROTO_4(stem, ret, a, b, c, d) \ + extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t, jit_##c##_t, jit_##d##_t) -#define jit_new_node(c) _jit_new_node(_jit,c) -extern jit_node_t *_jit_new_node(jit_state_t*, jit_code_t); -#define jit_new_node_w(c,u) _jit_new_node_w(_jit,c,u) -extern jit_node_t *_jit_new_node_w(jit_state_t*, jit_code_t, - jit_word_t); -#define jit_new_node_f(c,u) _jit_new_node_f(_jit,c,u) -extern jit_node_t *_jit_new_node_f(jit_state_t*, jit_code_t, - jit_float32_t); -#define jit_new_node_d(c,u) _jit_new_node_d(_jit,c,u) -extern jit_node_t *_jit_new_node_d(jit_state_t*, jit_code_t, - jit_float64_t); -#define jit_new_node_p(c,u) _jit_new_node_p(_jit,c,u) -extern jit_node_t *_jit_new_node_p(jit_state_t*, jit_code_t, - jit_pointer_t); -#define jit_new_node_ww(c,u,v) _jit_new_node_ww(_jit,c,u,v) -extern jit_node_t *_jit_new_node_ww(jit_state_t*,jit_code_t, - jit_word_t, jit_word_t); -#define jit_new_node_wp(c,u,v) _jit_new_node_wp(_jit,c,u,v) -extern jit_node_t *_jit_new_node_wp(jit_state_t*,jit_code_t, - jit_word_t, jit_pointer_t); -#define jit_new_node_fp(c,u,v) _jit_new_node_fp(_jit,c,u,v) -extern jit_node_t *_jit_new_node_fp(jit_state_t*,jit_code_t, - jit_float32_t, jit_pointer_t); -#define jit_new_node_dp(c,u,v) _jit_new_node_dp(_jit,c,u,v) -extern jit_node_t *_jit_new_node_dp(jit_state_t*,jit_code_t, - jit_float64_t, jit_pointer_t); -#define jit_new_node_pw(c,u,v) _jit_new_node_pw(_jit,c,u,v) -extern jit_node_t *_jit_new_node_pw(jit_state_t*,jit_code_t, - jit_pointer_t, jit_word_t); -#define jit_new_node_wf(c,u,v) _jit_new_node_wf(_jit,c,u,v) -extern jit_node_t *_jit_new_node_wf(jit_state_t*, jit_code_t, - jit_word_t, jit_float32_t); -#define jit_new_node_wd(c,u,v) _jit_new_node_wd(_jit,c,u,v) -extern jit_node_t *_jit_new_node_wd(jit_state_t*, jit_code_t, - jit_word_t, jit_float64_t); -#define jit_new_node_www(c,u,v,w) _jit_new_node_www(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_www(jit_state_t*, jit_code_t, - jit_word_t, jit_word_t, jit_word_t); -#define jit_new_node_qww(c,l,h,v,w) _jit_new_node_qww(_jit,c,l,h,v,w) -extern jit_node_t *_jit_new_node_qww(jit_state_t*, jit_code_t, - jit_int32_t, jit_int32_t, - jit_word_t, jit_word_t); -#define jit_new_node_wwf(c,u,v,w) _jit_new_node_wwf(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_wwf(jit_state_t*, jit_code_t, - jit_word_t, jit_word_t, jit_float32_t); -#define jit_new_node_wwd(c,u,v,w) _jit_new_node_wwd(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_wwd(jit_state_t*, jit_code_t, - jit_word_t, jit_word_t, jit_float64_t); -#define jit_new_node_pww(c,u,v,w) _jit_new_node_pww(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_pww(jit_state_t*, jit_code_t, - jit_pointer_t, jit_word_t, jit_word_t); -#define jit_new_node_pwf(c,u,v,w) _jit_new_node_pwf(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_pwf(jit_state_t*, jit_code_t, - jit_pointer_t, jit_word_t, jit_float32_t); -#define jit_new_node_pwd(c,u,v,w) _jit_new_node_pwd(_jit,c,u,v,w) -extern jit_node_t *_jit_new_node_pwd(jit_state_t*, jit_code_t, - jit_pointer_t, jit_word_t, jit_float64_t); +#define JIT_PROTO_RFF__(stem) JIT_PROTO_2(stem, jit_reloc_t, fpr, fpr) +#define JIT_PROTO_RGG__(stem) JIT_PROTO_2(stem, jit_reloc_t, gpr, gpr) +#define JIT_PROTO_RG___(stem) JIT_PROTO_1(stem, jit_reloc_t, gpr) +#define JIT_PROTO_RGi__(stem) JIT_PROTO_2(stem, jit_reloc_t, gpr, imm) +#define JIT_PROTO_RGu__(stem) JIT_PROTO_2(stem, jit_reloc_t, gpr, uimm) +#define JIT_PROTO_R____(stem) JIT_PROTO_0(stem, jit_reloc_t) +#define JIT_PROTO__FFF_(stem) JIT_PROTO_3(stem, void, fpr, fpr, fpr) +#define JIT_PROTO__FF__(stem) JIT_PROTO_2(stem, void, fpr, fpr) +#define JIT_PROTO__FGG_(stem) JIT_PROTO_3(stem, void, fpr, gpr, gpr) +#define JIT_PROTO__FG__(stem) JIT_PROTO_3(stem, void, fpr, gpr) +#define JIT_PROTO__FGo_(stem) JIT_PROTO_3(stem, void, fpr, gpr, off) +#define JIT_PROTO__F___(stem) JIT_PROTO_1(stem, void, fpr) +#define JIT_PROTO__Fd__(stem) JIT_PROTO_2(stem, void, fpr, double) +#define JIT_PROTO__Ff__(stem) JIT_PROTO_2(stem, void, fpr, float) +#define JIT_PROTO__Fp__(stem) JIT_PROTO_2(stem, void, fpr, pointer) +#define JIT_PROTO__GF__(stem) JIT_PROTO_2(stem, void, gpr) +#define JIT_PROTO__GF__(stem) JIT_PROTO_2(stem, void, gpr, fpr) +#define JIT_PROTO__GGF_(stem) JIT_PROTO_3(stem, void, gpr, gpr, fpr) +#define JIT_PROTO__GGGG(stem) JIT_PROTO_4(stem, void, gpr, gpr, gpr, gpr) +#define JIT_PROTO__GGG_(stem) JIT_PROTO_3(stem, void, gpr, gpr, gpr) +#define JIT_PROTO__GGGi(stem) JIT_PROTO_3(stem, void, gpr, gpr, imm) +#define JIT_PROTO__GGGu(stem) JIT_PROTO_3(stem, void, gpr, gpr, uimm) +#define JIT_PROTO__GG__(stem) JIT_PROTO_3(stem, void, gpr, gpr) +#define JIT_PROTO__GGi_(stem) JIT_PROTO_3(stem, void, gpr, gpr, imm) +#define JIT_PROTO__GGo_(stem) JIT_PROTO_3(stem, void, gpr, gpr, off) +#define JIT_PROTO__GGu_(stem) JIT_PROTO_3(stem, void, gpr, gpr, uimm) +#define JIT_PROTO__G___(stem) JIT_PROTO_1(stem, void, gpr) +#define JIT_PROTO__Gi__(stem) JIT_PROTO_2(stem, void, gpr, imm) +#define JIT_PROTO__Gp__(stem) JIT_PROTO_2(stem, void, a, b, c) +#define JIT_PROTO__Gp__(stem) JIT_PROTO_2(stem, void, gpr, pointer) +#define JIT_PROTO______(stem) JIT_PROTO_0(stem, void) +#define JIT_PROTO__i___(stem) JIT_PROTO_1(stem, void, imm) +#define JIT_PROTO__oGF_(stem) JIT_PROTO_3(stem, void, off, gpr, fpr) +#define JIT_PROTO__oGG_(stem) JIT_PROTO_3(stem, void, off, gpr, gpr) +#define JIT_PROTO__pF__(stem) JIT_PROTO_2(stem, void, pointer, fpr) +#define JIT_PROTO__pG__(stem) JIT_PROTO_2(stem, void, pointer, gpr) +#define JIT_PROTO__p___(stem) JIT_PROTO_1(stem, void, pointer) -#define jit_arg_register_p(u) _jit_arg_register_p(_jit,u) -extern jit_bool_t _jit_arg_register_p(jit_state_t*, jit_node_t*); -#define jit_callee_save_p(u) _jit_callee_save_p(_jit,u) -extern jit_bool_t _jit_callee_save_p(jit_state_t*, jit_int32_t); -#define jit_pointer_p(u) _jit_pointer_p(_jit,u) -extern jit_bool_t _jit_pointer_p(jit_state_t*,jit_pointer_t); +#define FOR_EACH_INSTRUCTION(M) \ + M(_GGG_, addr) \ + M(_FFF_, addr_f) \ + M(_FFF_, addr_d) \ + M(_GGi_, addi) \ + M(_GGG_, addcr) \ + M(_GGi_, addci) \ + M(_GGG_, addxr) \ + M(_GGi_, addxi) \ + M(_GGG_, subr) \ + M(_FFF_, subr_f) \ + M(_FFF_, subr_f) \ + M(_GGi_, subi) \ + M(_GGG_, subcr) \ + M(_GGi_, subci) \ + M(_GGG_, subxr) \ + M(_GGi_, subxi) \ + M(_GGG_, mulr) \ + M(_FFF_, mulr_f) \ + M(_FFF_, mulr_d) \ + M(_GGi_, muli) \ + M(_GGGG, qmulr) \ + M(_GGGi, qmuli) \ + M(_GGGG, qmulr_u) \ + M(_GGGu, qmuli_u) \ + M(_GGG_, divr) \ + M(_FFF_, divr_f) \ + M(_FFF_, divr_d) \ + M(_GGi_, divi) \ + M(_GGG_, divr_u) \ + M(_GGu_, divi_u) \ + M(_GGGG, qdivr) \ + M(_GGGi, qdivi) \ + M(_GGGG, qdivr_u) \ + M(_GGGu, qdivi_u) \ + M(_GGG_, remr) \ + M(_GGi_, remi) \ + M(_GGG_, remr_u) \ + M(_GGu_, remi_u) \ + \ + M(_GGG_, andr) \ + M(_GGu_, andi) \ + M(_GGG_, orr) \ + M(_GGu_, ori) \ + M(_GGG_, xorr) \ + M(_GGu_, xori) \ + \ + M(_GGG_, lshr) \ + M(_GGu_, lshi) \ + M(_GGG_, rshr) \ + M(_GGu_, rshi) \ + M(_GGG_, rshr_u) \ + M(_GGu_, rshi_u) \ + \ + M(_GG__, negr) \ + M(_GG__, comr) \ + \ + M(_GG__, movr) \ + M(_Gi__, movi) \ + M(RG___, mov_addr) \ + M(_GG__, extr_c) \ + M(_GG__, extr_uc) \ + M(_GG__, extr_s) \ + M(_GG__, extr_us) \ + WHEN_64(M(_GG__, extr_i)) \ + WHEN_64(M(_GG__, extr_ui)) \ + \ + M(_GG__, bswapr_us) \ + M(_GG__, bswapr_ui) \ + WHEN_64(M(_GG__, bswapr_ul)) \ + \ + M(_GG__, ldr_c) \ + M(_Gp__, ldi_c) \ + M(_GG__, ldr_uc) \ + M(_Gp__, ldi_uc) \ + M(_GG__, ldr_s) \ + M(_Gp__, ldi_s) \ + M(_GG__, ldr_us) \ + M(_Gp__, ldi_us) \ + M(_GG__, ldr_i) \ + M(_Gp__, ldi_i) \ + WHEN_64(M(_GG__, ldr_ui)) \ + WHEN_64(M(_Gp__, ldi_ui)) \ + WHEN_64(M(_GG__, ldr_l)) \ + WHEN_64(M(_Gp__, ldi_l)) \ + M(_FG__, ldr_f) \ + M(_Fp__, ldi_f) \ + M(_FG__, ldr_d) \ + M(_Fp__, ldi_d) \ + \ + M(_GGG_, ldxr_c) \ + M(_GGo_, ldxi_c) \ + M(_GGG_, ldxr_uc) \ + M(_GGo_, ldxi_uc) \ + M(_GGG_, ldxr_s) \ + M(_GGo_, ldxi_s) \ + M(_GGG_, ldxr_us) \ + M(_GGo_, ldxi_us) \ + M(_GGG_, ldxr_i) \ + M(_GGo_, ldxi_i) \ + WHEN_64(M(_GGG_, ldxr_ui)) \ + WHEN_64(M(_GGo_, ldxi_ui)) \ + WHEN_64(M(_GGG_, ldxr_l)) \ + WHEN_64(M(_GGo_, ldxi_l)) \ + M(_FGG_, ldxr_f) \ + M(_FGo_, ldxi_f) \ + M(_FGG_, ldxr_d) \ + M(_FGo_, ldxi_d) \ + \ + M(_GG__, str_c) \ + M(_pG__, sti_c) \ + M(_GG__, str_s) \ + M(_pG__, sti_s) \ + M(_GG__, str_i) \ + M(_pG__, sti_i) \ + WHEN_64(M(_GG__, str_l)) \ + WHEN_64(M(_pG__, sti_l)) \ + M(_GF__, str_f) \ + M(_pF__, sti_f) \ + M(_GF__, str_d) \ + M(_pF__, sti_d) \ + \ + M(_GGG_, stxr_c) \ + M(_oGG_, stxi_c) \ + M(_GGG_, stxr_s) \ + M(_oGG_, stxi_s) \ + M(_GGG_, stxr_i) \ + M(_oGG_, stxi_i) \ + WHEN_64(M(_GGG_, stxr_l)) \ + WHEN_64(M(_oGG_, stxi_l)) \ + M(_GGF_, stxr_f) \ + M(_oGF_, stxi_f) \ + M(_GGF_, stxr_d) \ + M(_oGF_, stxi_d) \ + \ + M(RGG__, bltr) \ + M(RFF__, bltr_f) \ + M(RFF__, bltr_d) \ + M(RGi__, blti) \ + M(RGG__, bltr_u) \ + M(RGu__, blti_u) \ + M(RGG__, bler) \ + M(RFF__, bler_f) \ + M(RFF__, bler_d) \ + M(RGi__, blei) \ + M(RGG__, bler_u) \ + M(RGu__, blei_u) \ + M(RGG__, beqr) \ + M(RFF__, beqr_f) \ + M(RFF__, beqr_d) \ + M(RGi__, beqi) \ + M(RGG__, bger) \ + M(RFF__, bger_f) \ + M(RFF__, bger_d) \ + M(RGi__, bgei) \ + M(RGG__, bger_u) \ + M(RGu__, bgei_u) \ + M(RGG__, bgtr) \ + M(RFF__, bgtr_f) \ + M(RFF__, bgtr_d) \ + M(RGi__, bgti) \ + M(RGG__, bgtr_u) \ + M(RGu__, bgti_u) \ + M(RGG__, bner) \ + M(RFF__, bner_f) \ + M(RFF__, bner_d) \ + M(RGi__, bnei) \ + \ + M(RFF__, bunltr_f) \ + M(RFF__, bunltr_d) \ + M(RFF__, bunler_f) \ + M(RFF__, bunler_d) \ + M(RFF__, buneqr_f) \ + M(RFF__, buneqr_d) \ + M(RFF__, bunger_f) \ + M(RFF__, bunger_d) \ + M(RFF__, bungtr_f) \ + M(RFF__, bungtr_d) \ + M(RFF__, bltgtr_f) \ + M(RFF__, bltgtr_d) \ + M(RFF__, bordr_f) \ + M(RFF__, bordr_d) \ + M(RFF__, bunordr_f) \ + M(RFF__, bunordr_d) \ + \ + M(RGG__, bmsr) \ + M(RGu__, bmsi) \ + M(RGG__, bmcr) \ + M(RGu__, bmci) \ + \ + M(RGG__, boaddr) \ + M(RGi__, boaddi) \ + M(RGG__, boaddr_u) \ + M(RGu__, boaddi_u) \ + M(RGG__, bxaddr) \ + M(RGi__, bxaddi) \ + M(RGG__, bxaddr_u) \ + M(RGu__, bxaddi_u) \ + M(RGG__, bosubr) \ + M(RGi__, bosubi) \ + M(RGG__, bosubr_u) \ + M(RGu__, bosubi_u) \ + M(RGG__, bxsubr) \ + M(RGi__, bxsubi) \ + M(RGG__, bxsubr_u) \ + M(RGu__, bxsubi_u) \ + \ + M(_G___, jmpr) \ + M(_p___, jmpi) \ + M(R____, jmp) \ + M(_G___, callr) \ + M(_p___, calli) \ + M(R____, call) \ + \ + M(_G___, pushr) \ + M(_F___, pushr_d) \ + M(_G___, popr) \ + M(_F___, popr_d) \ + \ + M(_____, prepare) \ + M(_G___, pushargr) \ + M(_F___, pushargr_f) \ + M(_F___, pushargr_d) \ + M(_i___, pushargi) \ + M(_G___, finishr) \ + M(_p___, finishi) \ + M(R____, finish) \ + M(_____, ret) \ + M(_G___, retr) \ + M(_F___, retr_f) \ + M(_F___, retr_d) \ + M(_i___, reti) \ + M(_G___, retval_c) \ + M(_G___, retval_uc) \ + M(_G___, retval_s) \ + M(_G___, retval_us) \ + M(_G___, retval_i) \ + WHEN_64(M(_G___, retval_ui)) \ + WHEN_64(M(_G___, retval_l)) \ + M(_F___, retval_f) \ + M(_F___, retval_d) \ + M(A____, arg) \ + M(A____, arg_f) \ + M(A____, arg_d) \ + M(_GA__, getarg_c) \ + M(_GA__, getarg_uc) \ + M(_GA__, getarg_s) \ + M(_GA__, getarg_us) \ + M(_GA__, getarg_i) \ + WHEN_64(M(_GA__, getarg_ui)) \ + WHEN_64(M(_GA__, getarg_l)) \ + M(_GA__, getarg_f) \ + M(_GA__, getarg_d) \ + \ + M(_FF__, negr_f) \ + M(_FF__, negr_d) \ + M(_FF__, absr_f) \ + M(_FF__, absr_d) \ + M(_FF__, sqrtr_f) \ + M(_FF__, sqrtr_d) \ + \ + M(_GF__, truncr_f_i) \ + M(_FG__, extr_f) \ + M(_FG__, extr_d) \ + M(_FF__, extr_d_f) \ + M(_FF__, extr_f_d) \ + M(_FF__, movr_f) \ + M(_FF__, movr_d) \ + M(_Ff__, movi_f) \ + M(_Fd__, movi_d) \ + M(_GF__, truncr_d_i) \ + WHEN_64(M(_GF__, truncr_f_l)) \ + WHEN_64(M(_GF__, truncr_d_l)) \ + /* EOL */ -#define jit_get_note(n,u,v,w) _jit_get_note(_jit,n,u,v,w) -extern jit_bool_t _jit_get_note(jit_state_t*,jit_pointer_t,char**,char**,int*); +#define DECLARE_JIT_API(kind, stem) JIT_PROTO_##kind(stem); +FOR_EACH_INSTRUCTION(DECLARE_JIT_API); +#undef DECLARE_JIT_API -#define jit_disassemble() _jit_disassemble(_jit) -extern void _jit_disassemble(jit_state_t*); +extern void init_jit(void); + +extern jit_state_t *jit_new_state(void); +extern void jit_clear_state(jit_state*); +extern void jit_destroy_state(jit_state*); + +extern void jit_align(jit_state*, unsigned); +extern void jit_allocai(jit_state*, size_t); +extern void jit_allocar(jit_state*, jit_gpr_t, jit_gpr_t); + +extern jit_pointer_t jit_address(jit_state*); +extern void jit_patch_here(jit_state_t*, jit_reloc_t); +extern void jit_patch_there(jit_state_t*, jit_reloc_t, jit_pointer_t); -extern void jit_set_memory_functions(jit_alloc_func_ptr, - jit_realloc_func_ptr, - jit_free_func_ptr); -extern void jit_get_memory_functions(jit_alloc_func_ptr*, - jit_realloc_func_ptr*, - jit_free_func_ptr*); #endif /* _jit_h */ From f3f71941acb17c5753c18d814a3774fb1216a34d Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 13:48:57 +0100 Subject: [PATCH 17/78] Replace jit_int32_t, etc with stdint types --- check/carg.c | 2 +- check/nodata.c | 2 +- check/setcode.c | 2 +- jit/aarch64-cpu.c | 558 +++++++++++++-------------- jit/aarch64-fpu.c | 298 +++++++-------- jit/aarch64.c | 132 +++---- jit/alpha-cpu.c | 766 ++++++++++++++++++------------------- jit/alpha-fpu.c | 434 ++++++++++----------- jit/alpha.c | 122 +++--- jit/arm-cpu.c | 536 +++++++++++++------------- jit/arm-swf.c | 348 ++++++++--------- jit/arm-vfp.c | 418 ++++++++++---------- jit/arm.c | 140 +++---- jit/arm.h | 14 +- jit/hppa-cpu.c | 804 +++++++++++++++++++-------------------- jit/hppa-fpu.c | 262 ++++++------- jit/hppa.c | 96 ++--- jit/ia64-cpu.c | 758 ++++++++++++++++++------------------- jit/ia64-fpu.c | 404 ++++++++++---------- jit/ia64.c | 106 +++--- jit/jit.c | 156 ++++---- jit/mips-cpu.c | 910 ++++++++++++++++++++++---------------------- jit/mips-fpu.c | 552 +++++++++++++-------------- jit/mips.c | 116 +++--- jit/ppc-cpu.c | 802 +++++++++++++++++++-------------------- jit/ppc-fpu.c | 382 +++++++++---------- jit/ppc.c | 114 +++--- jit/private.h | 202 +++++----- jit/s390-cpu.c | 758 ++++++++++++++++++------------------- jit/s390-fpu.c | 324 ++++++++-------- jit/s390.c | 134 +++---- jit/sparc-cpu.c | 574 ++++++++++++++-------------- jit/sparc-fpu.c | 302 +++++++-------- jit/sparc.c | 118 +++--- jit/x86-cpu.c | 942 +++++++++++++++++++++++----------------------- jit/x86-sse.c | 508 ++++++++++++------------- jit/x86-x87.c | 370 +++++++++--------- jit/x86.c | 268 ++++++------- jit/x86.h | 36 +- 39 files changed, 6885 insertions(+), 6885 deletions(-) diff --git a/check/carg.c b/check/carg.c index 35b897ed2..ed37b8a4e 100644 --- a/check/carg.c +++ b/check/carg.c @@ -60,7 +60,7 @@ main(int argc, char *argv[]) void (*code)(void); jit_node_t *jmp, *pass; jit_node_t *jw, *jf, *jd; - jit_int32_t s1, s2, s3, s4, s5, s6, s7, s8, + int32_t s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16; jit_node_t *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8, *a9, *a10, *a11, *a12, *a13, *a14, *a15, *a16; diff --git a/check/nodata.c b/check/nodata.c index 0e594c327..91ab394f9 100644 --- a/check/nodata.c +++ b/check/nodata.c @@ -21,7 +21,7 @@ #define mmap_fd -1 #endif -jit_uint8_t *data; +uint8_t *data; jit_state_t *_jit; jit_word_t data_length; jit_word_t note_length; diff --git a/check/setcode.c b/check/setcode.c index 0047f3488..e2971877a 100644 --- a/check/setcode.c +++ b/check/setcode.c @@ -24,7 +24,7 @@ int main(int argc, char *argv[]) { - jit_uint8_t *ptr; + uint8_t *ptr; jit_state_t *_jit; jit_word_t length; #if defined(__sgi) diff --git a/jit/aarch64-cpu.c b/jit/aarch64-cpu.c index 07b0edb2d..44eb4a307 100644 --- a/jit/aarch64-cpu.c +++ b/jit/aarch64-cpu.c @@ -20,7 +20,7 @@ #if PROTO typedef union { /* aarch64-opc.c */ -# define ui jit_uint32_t +# define ui uint32_t # if __BYTE_ORDER == __LITTLE_ENDIAN /* cond2: condition in truly conditional-executed inst. */ struct { ui b: 4; } cond2; @@ -207,7 +207,7 @@ typedef union { struct { ui _: 8; ui b: 5; } b40; struct { ui _: 16; ui b: 6; } scale; # endif - jit_int32_t w; + int32_t w; # undef ui } instr_t; # define stack_framesize 160 @@ -470,198 +470,198 @@ typedef union { # define CBZ(Rd,Simm19) ox19(A64_CBZ|XS,Rd,Simm19) # define CBNZ(Rd,Simm19) ox19(A64_CBNZ|XS,Rd,Simm19) # define NOP() ii(0xd503201f) -static jit_int32_t logical_immediate(jit_word_t); +static int32_t logical_immediate(jit_word_t); # define oxxx(Op,Rd,Rn,Rm) _oxxx(_jit,Op,Rd,Rn,Rm) -static void _oxxx(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxxx(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define oxxi(Op,Rd,Rn,Imm12) _oxxi(_jit,Op,Rd,Rn,Imm12) -static void _oxxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxxi(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define oxx9(Op,Rd,Rn,Imm9) _oxx9(_jit,Op,Rd,Rn,Imm9) -static void _oxx9(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxx9(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define ox19(Op,Rd,Simm19) _ox19(_jit,Op,Rd,Simm19) -static void _ox19(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ox19(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define oc19(Op,Cc,Simm19) _oc19(_jit,Op,Cc,Simm19) -static void _oc19(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oc19(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define o26(Op,Simm26) _o26(_jit,Op,Simm26) -static void _oc26(jit_state_t*,jit_int32_t,jit_int32_t); +static void _oc26(jit_state_t*,int32_t,jit_int32_t); # define ox_x(Op,Rd,Rn) _ox_x(_jit,Op,Rd,Rn) -static void _ox_x(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ox_x(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define o_xx(Op,Rd,Rn) _o_xx(_jit,Op,Rd,Rn) -static void _o_xx(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _o_xx(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define oxx_(Op,Rn,Rm) _oxx_(_jit,Op,Rn,Rm) -static void _oxx_(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxx_(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define o_x_(Op,Rn) _o_x_(_jit,Op,Rn) -static void _o_x_(jit_state_t*,jit_int32_t,jit_int32_t); +static void _o_x_(jit_state_t*,int32_t,jit_int32_t); # define ox_h(Op,Rd,Imm16) _ox_h(_jit,Op,Rd,Imm16) -static void _ox_h(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ox_h(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define oxxrs(Op,Rd,Rn,R,S) _oxxrs(_jit,Op,Rd,Rn,R,S) -static void _oxxrs(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxxrs(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); # define oxxxc(Op,Rd,Rn,Rm,Cc) _oxxxc(_jit,Op,Rd,Rn,Rm,Cc) -static void _oxxxc(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxxxc(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); # define oxxx7(Op,Rt,Rt2,Rn,Simm7) _oxxx7(_jit,Op,Rt,Rt2,Rn,Simm7) -static void _oxxx7(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _oxxx7(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define nop(i0) _nop(_jit,i0) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # define addr(r0,r1,r2) ADD(r0,r1,r2) # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addcr(r0,r1,r2) ADDS(r0,r1,r2) # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,r2) ADCS(r0,r1,r2) # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subr(r0,r1,r2) SUB(r0,r1,r2) # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,r2) SUBS(r0,r1,r2) # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) SBCS(r0,r1,r2) # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define mulr(r0,r1,r2) MUL(r0,r1,r2) # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) -static void _qmulr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) -static void _qmuli(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) -static void _qmulr_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) -static void _qmuli_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define divr(r0,r1,r2) SDIV(r0,r1,r2) # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define divr_u(r0,r1,r2) UDIV(r0,r1,r2) # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qdivr(r0,r1,r2,r3) _iqdivr(_jit,1,r0,r1,r2,r3) # define qdivr_u(r0,r1,r2,r3) _iqdivr(_jit,0,r0,r1,r2,r3) static void _iqdivr(jit_state_t*,jit_bool_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0) -static void _qdivi(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qdivi(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0) -static void _qdivi_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qdivi_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define lshr(r0,r1,r2) LSL(r0,r1,r2) # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr(r0,r1,r2) ASR(r0,r1,r2) # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr_u(r0,r1,r2) LSR(r0,r1,r2) # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define negr(r0,r1) NEG(r0,r1) # define comr(r0,r1) MVN(r0,r1) # define andr(r0,r1,r2) AND(r0,r1,r2) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) ORR(r0,r1,r2) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) EOR(r0,r1,r2) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_c(r0,r1) LDRSBI(r0,r1,0) # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1) -static void _ldr_uc(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_uc(jit_state_t*,int32_t,jit_int32_t); # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldr_s(r0,r1) LDRSHI(r0,r1,0) # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldr_us(r0,r1) _ldr_us(_jit,r0,r1) -static void _ldr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_us(jit_state_t*,int32_t,jit_int32_t); # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldr_i(r0,r1) LDRSWI(r0,r1,0) # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # define ldr_ui(r0,r1) _ldr_ui(_jit,r0,r1) -static void _ldr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_ui(jit_state_t*,int32_t,jit_int32_t); # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldr_l(r0,r1) LDRI(r0,r1,0) -static void _ldr_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_l(jit_state_t*,int32_t,jit_int32_t); # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_s(r0,r1,r2) LDRSH(r0,r1,r2) # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_i(r0,r1,r2) LDRSW(r0,r1,r2) # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_l(r0,r1,r2) LDR(r0,r1,r2) # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_c(r0,r1) STRBI(r1,r0,0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define str_s(r0,r1) STRHI(r1,r0,0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define str_i(r0,r1) STRWI(r1,r0,0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # define str_l(r0,r1) STRI(r1,r0,0) # define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # define stxr_c(r0,r1,r2) STRB(r2,r1,r0) # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_s(r0,r1,r2) STRH(r2,r1,r0) # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_i(r0,r1,r2) STRW(r2,r1,r0) # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_l(r0,r1,r2) STR(r2,r1,r0) # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __BYTE_ORDER == __LITTLE_ENDIAN # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # define htonr_ul(r0,r1) REV(r0,r1) # else # define htonr_us(r0,r1) extr_us(r0,r1) @@ -675,15 +675,15 @@ static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); # define extr_i(r0,r1) SXTW(r0,r1) # define extr_ui(r0,r1) UXTW(r0,r1) # define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define ccr(cc,r0,r1,r2) _ccr(_jit,cc,r0,r1,r2) -static void _ccr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define cci(cc,r0,r1,i0) _cci(_jit,cc,r0,r1,i0) -static void _cci(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); +static void _cci(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define ltr(r0,r1,r2) ccr(CC_LT,r0,r1,r2) # define lti(r0,r1,i0) cci(CC_LT,r0,r1,i0) # define ltr_u(r0,r1,r2) ccr(CC_CC,r0,r1,r2) @@ -706,10 +706,10 @@ static void _cci(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define nei(r0,r1,i0) cci(CC_NE,r0,r1,i0) # define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1) static jit_word_t -_bccr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_bccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1) static jit_word_t -_bcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +_bcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # define bltr(i0,r0,r1) bccr(BCC_LT,i0,r0,r1) # define blti(i0,r0,i1) bcci(BCC_LT,i0,r0,i1) # define bltr_u(i0,r0,r1) bccr(BCC_CC,i0,r0,r1) @@ -720,7 +720,7 @@ _bcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); # define blei_u(i0,r0,i1) bcci(BCC_LS,i0,r0,i1) # define beqr(i0,r0,r1) bccr(BCC_EQ,i0,r0,r1) # define beqi(i0,r0,i1) _beqi(_jit,i0,r0,i1) -static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bger(i0,r0,r1) bccr(BCC_GE,i0,r0,r1) # define bgei(i0,r0,i1) bcci(BCC_GE,i0,r0,i1) # define bger_u(i0,r0,r1) bccr(BCC_CS,i0,r0,r1) @@ -731,13 +731,13 @@ static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); # define bgti_u(i0,r0,i1) bcci(BCC_HI,i0,r0,i1) # define bner(i0,r0,r1) bccr(BCC_NE,i0,r0,r1) # define bnei(i0,r0,i1) _bnei(_jit,i0,r0,i1) -static jit_word_t _bnei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1) static jit_word_t -_baddr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_baddr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define baddi(cc,i0,r0,i1) _baddi(_jit,cc,i0,r0,i1) static jit_word_t -_baddi(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +_baddi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # define boaddr(i0,r0,r1) baddr(BCC_VS,i0,r0,r1) # define boaddi(i0,r0,i1) baddi(BCC_VS,i0,r0,i1) # define boaddr_u(i0,r0,r1) baddr(BCC_HS,i0,r0,r1) @@ -748,10 +748,10 @@ _baddi(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); # define bxaddi_u(i0,r0,i1) baddi(BCC_LO,i0,r0,i1) # define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1) static jit_word_t -_bsubr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_bsubr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define bsubi(cc,i0,r0,i1) _bsubi(_jit,cc,i0,r0,i1) static jit_word_t -_bsubi(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +_bsubi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # define bosubr(i0,r0,r1) bsubr(BCC_VS,i0,r0,r1) # define bosubi(i0,r0,i1) bsubi(BCC_VS,i0,r0,i1) # define bosubr_u(i0,r0,r1) bsubr(BCC_LO,i0,r0,r1) @@ -762,10 +762,10 @@ _bsubi(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); # define bxsubi_u(i0,r0,i1) bsubi(BCC_HS,i0,r0,i1) # define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1) static jit_word_t -_bmxr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_bmxr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1) static jit_word_t -_bmxi(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +_bmxi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # define bmsr(i0,r0,r1) bmxr(BCC_NE,i0,r0,r1) # define bmsi(i0,r0,i1) bmxi(BCC_NE,i0,r0,i1) # define bmcr(i0,r0,r1) bmxr(BCC_EQ,i0,r0,r1) @@ -785,15 +785,15 @@ static void _prolog(jit_state_t*,jit_node_t*); # define epilog(i0) _epilog(_jit,i0) static void _epilog(jit_state_t*,jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define patch_at(jump,label) _patch_at(_jit,jump,label) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif #if CODE -static jit_int32_t +static int32_t logical_immediate(jit_word_t imm) { /* There are 5334 possible immediate values, but to avoid the @@ -826,8 +826,8 @@ logical_immediate(jit_word_t imm) } static void -_oxxx(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) +_oxxx(jit_state_t *_jit, int32_t Op, + int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) { instr_t i; assert(!(Rd & ~0x1f)); @@ -842,8 +842,8 @@ _oxxx(jit_state_t *_jit, jit_int32_t Op, } static void -_oxxi(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t Imm12) +_oxxi(jit_state_t *_jit, int32_t Op, + int32_t Rd, jit_int32_t Rn, jit_int32_t Imm12) { instr_t i; assert(!(Rd & ~0x1f)); @@ -858,8 +858,8 @@ _oxxi(jit_state_t *_jit, jit_int32_t Op, } static void -_oxx9(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t Imm9) +_oxx9(jit_state_t *_jit, int32_t Op, + int32_t Rd, jit_int32_t Rn, jit_int32_t Imm9) { instr_t i; assert(!(Rd & ~0x1f)); @@ -874,7 +874,7 @@ _oxx9(jit_state_t *_jit, jit_int32_t Op, } static void -_ox19(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Simm19) +_ox19(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Simm19) { instr_t i; assert(!(Rd & ~0x1f)); @@ -887,7 +887,7 @@ _ox19(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Simm19) } static void -_oc19(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Cc, jit_int32_t Simm19) +_oc19(jit_state_t *_jit, int32_t Op, jit_int32_t Cc, jit_int32_t Simm19) { instr_t i; assert(!(Cc & ~0xf)); @@ -900,7 +900,7 @@ _oc19(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Cc, jit_int32_t Simm19) } static void -_o26(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Simm26) +_o26(jit_state_t *_jit, int32_t Op, jit_int32_t Simm26) { instr_t i; assert(Simm26 >= -33554432 && Simm26 <= 33554431); @@ -911,7 +911,7 @@ _o26(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Simm26) } static void -_ox_x(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Rm) +_ox_x(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rm) { instr_t i; assert(!(Rd & ~0x1f)); @@ -924,7 +924,7 @@ _ox_x(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Rm) } static void -_o_xx(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Rn) +_o_xx(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rn) { instr_t i; assert(!(Rd & ~0x1f)); @@ -937,7 +937,7 @@ _o_xx(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Rn) } static void -_oxx_(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rn, jit_int32_t Rm) +_oxx_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn, jit_int32_t Rm) { instr_t i; assert(!(Rn & ~0x1f)); @@ -950,7 +950,7 @@ _oxx_(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rn, jit_int32_t Rm) } static void -_o_x_(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rn) +_o_x_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn) { instr_t i; assert(!(Rn & ~0x1f)); @@ -961,7 +961,7 @@ _o_x_(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rn) } static void -_ox_h(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Imm16) +_ox_h(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Imm16) { instr_t i; assert(!(Rd & ~0x1f)); @@ -974,8 +974,8 @@ _ox_h(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Rd, jit_int32_t Imm16) } static void -_oxxrs(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t R, jit_int32_t S) +_oxxrs(jit_state_t *_jit, int32_t Op, + int32_t Rd, jit_int32_t Rn, jit_int32_t R, jit_int32_t S) { instr_t i; assert(!(Rd & ~0x1f)); @@ -992,8 +992,8 @@ _oxxrs(jit_state_t *_jit, jit_int32_t Op, } static void -_oxxxc(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t Rm, jit_int32_t Cc) +_oxxxc(jit_state_t *_jit, int32_t Op, + int32_t Rd, jit_int32_t Rn, jit_int32_t Rm, jit_int32_t Cc) { instr_t i; assert(!(Rd & ~0x1f)); @@ -1010,8 +1010,8 @@ _oxxxc(jit_state_t *_jit, jit_int32_t Op, } static void -_oxxx7(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Rt, jit_int32_t Rt2, jit_int32_t Rn, jit_int32_t Simm7) +_oxxx7(jit_state_t *_jit, int32_t Op, + int32_t Rt, jit_int32_t Rt2, jit_int32_t Rn, jit_int32_t Simm7) { instr_t i; assert(!(Rt & ~0x1f)); @@ -1028,7 +1028,7 @@ _oxxx7(jit_state_t *_jit, jit_int32_t Op, } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -1036,9 +1036,9 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t is = i0 >> 12; jit_word_t in = -i0; jit_word_t iS = in >> 12; @@ -1059,9 +1059,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t is = i0 >> 12; jit_word_t in = -i0; jit_word_t iS = in >> 12; @@ -1082,9 +1082,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); addxr(r0, r1, rn(reg)); @@ -1092,9 +1092,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t is = i0 >> 12; if ( i0 >= 0 && i0 <= 0xfff) SUBI (r0, r1, i0); @@ -1109,9 +1109,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t is = i0 >> 12; if ( i0 >= 0 && i0 <= 0xfff) SUBSI (r0, r1, i0); @@ -1126,9 +1126,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subxr(r0, r1, rn(reg)); @@ -1136,16 +1136,16 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); mulr(r0, r1, rn(reg)); @@ -1153,10 +1153,10 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_qmulr(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) +_qmulr(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 || r0 == r3) { reg = jit_get_reg(jit_class_gpr); mulr(rn(reg), r2, r3); @@ -1171,10 +1171,10 @@ _qmulr(jit_state_t *_jit, jit_int32_t r0, } static void -_qmuli(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qmuli(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qmulr(r0, r1, r2, rn(reg)); @@ -1182,10 +1182,10 @@ _qmuli(jit_state_t *_jit, jit_int32_t r0, } static void -_qmulr_u(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) +_qmulr_u(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 || r0 == r3) { reg = jit_get_reg(jit_class_gpr); mulr(rn(reg), r2, r3); @@ -1200,10 +1200,10 @@ _qmulr_u(jit_state_t *_jit, jit_int32_t r0, } static void -_qmuli_u(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qmuli_u(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qmulr_u(r0, r1, r2, rn(reg)); @@ -1211,9 +1211,9 @@ _qmuli_u(jit_state_t *_jit, jit_int32_t r0, } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr(r0, r1, rn(reg)); @@ -1221,9 +1221,9 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr_u(r0, r1, rn(reg)); @@ -1232,10 +1232,10 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) static void _iqdivr(jit_state_t *_jit, jit_bool_t sign, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t sv0, rg0; - jit_int32_t sv1, rg1; + int32_t sv0, rg0; + int32_t sv1, rg1; if (r0 == r2 || r0 == r3) { sv0 = jit_get_reg(jit_class_gpr); rg0 = rn(sv0); @@ -1265,10 +1265,10 @@ _iqdivr(jit_state_t *_jit, jit_bool_t sign, } static void -_qdivi(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qdivi(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qdivr(r0, r1, r2, rn(reg)); @@ -1276,10 +1276,10 @@ _qdivi(jit_state_t *_jit, jit_int32_t r0, } static void -_qdivi_u(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qdivi_u(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qdivr_u(r0, r1, r2, rn(reg)); @@ -1287,9 +1287,9 @@ _qdivi_u(jit_state_t *_jit, jit_int32_t r0, } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr(rn(reg), r1, r2); @@ -1305,9 +1305,9 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr(r0, r1, rn(reg)); @@ -1315,9 +1315,9 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr_u(rn(reg), r1, r2); @@ -1333,9 +1333,9 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr_u(r0, r1, rn(reg)); @@ -1343,7 +1343,7 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1354,7 +1354,7 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1365,7 +1365,7 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1376,10 +1376,10 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; - jit_int32_t imm; + int32_t reg; + int32_t imm; if (i0 == 0) movi(r0, 0); else if (i0 == -1) @@ -1398,10 +1398,10 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; - jit_int32_t imm; + int32_t reg; + int32_t imm; if (i0 == 0) movr(r0, r1); else if (i0 == -1) @@ -1420,10 +1420,10 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; - jit_int32_t imm; + int32_t reg; + int32_t imm; if (i0 == 0) movr(r0, r1); else if (i0 == -1) @@ -1443,14 +1443,14 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __BYTE_ORDER == __LITTLE_ENDIAN static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { htonr_ul(r0, r1); rshi_u(r0, r0, 48); } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { htonr_ul(r0, r1); rshi_u(r0, r0, 32); @@ -1458,9 +1458,9 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_c(r0, rn(reg)); @@ -1468,7 +1468,7 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { LDRBI(r0, r1, 0); #if 0 @@ -1477,9 +1477,9 @@ _ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_uc(r0, rn(reg)); @@ -1487,9 +1487,9 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_s(r0, rn(reg)); @@ -1497,7 +1497,7 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { LDRHI(r0, r1, 0); #if 0 @@ -1506,9 +1506,9 @@ _ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_us(r0, rn(reg)); @@ -1516,9 +1516,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_i(r0, rn(reg)); @@ -1526,7 +1526,7 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { LDRWI(r0, r1, 0); #if 0 @@ -1535,9 +1535,9 @@ _ldr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_ui(r0, rn(reg)); @@ -1545,9 +1545,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_l(r0, rn(reg)); @@ -1555,16 +1555,16 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDRSB(r0, r1, r2); extr_c(r0, r0); } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= 0 && i0 <= 4095) LDRSBI(r0, r1, i0); else if (i0 > -256 && i0 < 0) @@ -1579,7 +1579,7 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDRB(r0, r1, r2); #if 0 @@ -1588,9 +1588,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= 0 && i0 <= 4095) LDRBI(r0, r1, i0); else if (i0 > -256 && i0 < 0) @@ -1607,9 +1607,9 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 1)); if (i0 >= 0 && i0 <= 8191) LDRSHI(r0, r1, i0 >> 1); @@ -1624,7 +1624,7 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDRH(r0, r1, r2); #if 0 @@ -1633,9 +1633,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 1)); if (i0 >= 0 && i0 <= 8191) LDRHI(r0, r1, i0 >> 1); @@ -1653,9 +1653,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 3)); if (i0 >= 0 && i0 <= 16383) LDRSWI(r0, r1, i0 >> 2); @@ -1670,7 +1670,7 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDRW(r0, r1, r2); #if 0 @@ -1679,9 +1679,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 3)); if (i0 >= 0 && i0 <= 16383) LDRWI(r0, r1, i0 >> 2); @@ -1699,9 +1699,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 7)); if (i0 >= 0 && i0 <= 32767) LDRI(r0, r1, i0 >> 3); @@ -1716,9 +1716,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_c(rn(reg), r0); @@ -1726,9 +1726,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_s(rn(reg), r0); @@ -1736,9 +1736,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_i(rn(reg), r0); @@ -1746,9 +1746,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_l(rn(reg), r0); @@ -1756,9 +1756,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= 0 && i0 <= 4095) STRBI(r1, r0, i0); else if (i0 > -256 && i0 < 0) @@ -1772,9 +1772,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 1)); if (i0 >= 0 && i0 <= 8191) STRHI(r1, r0, i0 >> 1); @@ -1789,9 +1789,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 3)); if (i0 >= 0 && i0 <= 16383) STRWI(r1, r0, i0 >> 2); @@ -1806,9 +1806,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 7)); if (i0 >= 0 && i0 <= 32767) STRI(r1, r0, i0 >> 3); @@ -1823,14 +1823,14 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) MOV(r0, r1); } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t n0, ibit, nbit; n0 = ~i0; @@ -1939,7 +1939,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; w = _jit->pc.w; @@ -1951,18 +1951,18 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ccr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ccr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP(r1, r2); CSET(r0, cc); } static void -_cci(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_cci(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t is = i0 >> 12; jit_word_t in = -i0; jit_word_t iS = in >> 12; @@ -1984,8 +1984,8 @@ _cci(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bccr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bccr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w, d; CMP(r0, r1); @@ -1996,10 +1996,10 @@ _bccr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bcci(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bcci(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t w, d; jit_word_t is = i1 >> 12; jit_word_t in = -i1; @@ -2025,7 +2025,7 @@ _bcci(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; if (i1 == 0) { @@ -2038,7 +2038,7 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; if (i1 == 0) { @@ -2051,8 +2051,8 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_baddr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_baddr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; addcr(r0, r0, r1); @@ -2062,8 +2062,8 @@ _baddr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_baddi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_baddi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; addci(r0, r0, i1); @@ -2073,8 +2073,8 @@ _baddi(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bsubr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bsubr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; subcr(r0, r0, r1); @@ -2084,8 +2084,8 @@ _bsubr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bsubi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bsubi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; subci(r0, r0, i1); @@ -2095,8 +2095,8 @@ _bsubi(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bmxr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmxr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; TST(r0, r1); @@ -2106,12 +2106,12 @@ _bmxr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bmxi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmxi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; - jit_int32_t imm; + int32_t reg; + int32_t imm; imm = logical_immediate(i1); if (imm != -1) TSTI(r0, imm); @@ -2130,7 +2130,7 @@ static void _jmpi(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; w = (i0 - _jit->pc.w) >> 2; if (w >= -33554432 && w <= 33554431) B(w); @@ -2146,7 +2146,7 @@ static jit_word_t _jmpi_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); w = movi_p(rn(reg), i0); jmpr(rn(reg)); @@ -2158,7 +2158,7 @@ static void _calli(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; w = (i0 - _jit->pc.w) >> 2; if (w >= -33554432 && w <= 33554431) BL(w); @@ -2174,7 +2174,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); w = movi_p(rn(reg), i0); callr(rn(reg)); @@ -2193,9 +2193,9 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg; + int32_t reg; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -2310,9 +2310,9 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); @@ -2345,11 +2345,11 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_word_t ge_code; jit_word_t lt_code; - jit_int32_t rg0, rg1; + int32_t rg0, rg1; assert(_jitc->function->self.call & jit_call_varargs); @@ -2402,9 +2402,9 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { instr_t i; jit_word_t d; - jit_int32_t fc, ff, ffc; + int32_t fc, ff, ffc; union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; u.w = instr; diff --git a/jit/aarch64-fpu.c b/jit/aarch64-fpu.c index 058b98a1e..4f2866859 100644 --- a/jit/aarch64-fpu.c +++ b/jit/aarch64-fpu.c @@ -66,65 +66,65 @@ # define FDIVS(Rd,Rn,Rm) osvvv(A64_FDIV,0,Rd,Rn,Rm) # define FDIVD(Rd,Rn,Rm) osvvv(A64_FDIV,1,Rd,Rn,Rm) # define osvvv(Op,Sz,Rd,Rn,Rm) _osvvv(_jit,Op,Sz,Rd,Rn,Rm) -static void _osvvv(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _osvvv(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); # define osvv_(Op,Sz,Rd,Rn) _osvv_(_jit,Op,Sz,Rd,Rn) -static void _osvv_(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _osvv_(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define os_vv(Op,Sz,Rn,Rm) _os_vv(_jit,Op,Sz,Rn,Rm) -static void _os_vv(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _os_vv(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1) -static void _truncr_f_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_f_i(jit_state_t*,int32_t,jit_int32_t); # define truncr_f_l(r0,r1) FCVTSZ_XS(r0,r1) # define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) -static void _truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); # define truncr_d_l(r0,r1) FCVTSZ_XD(r0,r1) # define addr_f(r0,r1,r2) FADDS(r0,r1,r2) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define subr_f(r0,r1,r2) FSUBS(r0,r1,r2) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1) # define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define mulr_f(r0,r1,r2) FMULS(r0,r1,r2) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define divr_f(r0,r1,r2) FDIVS(r0,r1,r2) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define absr_f(r0,r1) FABSS(r0,r1) # define negr_f(r0,r1) FNEGS(r0,r1) # define sqrtr_f(r0,r1) FSQRTS(r0,r1) # define extr_f(r0,r1) SCVTFS(r0,r1) # define ldr_f(r0,r1) _ldr_f(_jit,r0,r1) -static void _ldr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_f(jit_state_t*,int32_t,jit_int32_t); # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_f(r0,r1) _str_f(_jit,r0,r1) -static void _str_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_f(jit_state_t*,int32_t,jit_int32_t); # define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define movr_f(r0,r1) _movr_f(_jit,r0,r1) -static void _movr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_f(jit_state_t*,int32_t,jit_int32_t); # define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t); # define extr_d_f(r0,r1) FCVT_SD(r0,r1) # define fccr(cc,r0,r1,r2) _fccr(_jit,cc,r0,r1,r2) -static void _fccr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _fccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define fcci(cc,r0,r1,i0) _fcci(_jit,cc,r0,r1,i0) static void _fcci(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_float32_t); + int32_t,jit_int32_t,jit_int32_t,jit_float32_t); # define ltr_f(r0,r1,r2) fccr(CC_MI,r0,r1,r2) # define lti_f(r0,r1,i0) fcci(CC_MI,r0,r1,i0) # define ler_f(r0,r1,r2) fccr(CC_LS,r0,r1,r2) @@ -142,27 +142,27 @@ static void _fcci(jit_state_t*, # define unler_f(r0,r1,r2) fccr(CC_LE,r0,r1,r2) # define unlei_f(r0,r1,i0) fcci(CC_LE,r0,r1,i0) # define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2) -static void _uneqr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) -static void _uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define unger_f(r0,r1,r2) fccr(CC_PL,r0,r1,r2) # define ungei_f(r0,r1,i0) fcci(CC_PL,r0,r1,i0) # define ungtr_f(r0,r1,r2) fccr(CC_HI,r0,r1,r2) # define ungti_f(r0,r1,i0) fcci(CC_HI,r0,r1,i0) # define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2) -static void _ltgtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) -static void _ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define ordr_f(r0,r1,r2) fccr(CC_VC,r0,r1,r2) # define ordi_f(r0,r1,i0) fcci(CC_VC,r0,r1,i0) # define unordr_f(r0,r1,r2) fccr(CC_VS,r0,r1,r2) # define unordi_f(r0,r1,i0) fcci(CC_VS,r0,r1,i0) #define fbccr(cc,i0,r0,r1) _fbccr(_jit,cc,i0,r0,r1) static jit_word_t -_fbccr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_fbccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); #define fbcci(cc,i0,r0,i1) _fbcci(_jit,cc,i0,r0,i1) static jit_word_t -_fbcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float32_t); +_fbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t); # define bltr_f(i0,r0,r1) fbccr(BCC_MI,i0,r0,r1) # define blti_f(i0,r0,i1) fbcci(BCC_MI,i0,r0,i1) # define bler_f(i0,r0,r1) fbccr(BCC_LS,i0,r0,r1) @@ -180,66 +180,66 @@ _fbcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float32_t); # define bunler_f(i0,r0,r1) fbccr(BCC_LE,i0,r0,r1) # define bunlei_f(i0,r0,i1) fbcci(BCC_LE,i0,r0,i1) # define buneqr_f(i0,r0,r1) _buneqr_f(_jit,i0,r0,r1) -static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) -static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define bunger_f(i0,r0,r1) fbccr(BCC_PL,i0,r0,r1) # define bungei_f(i0,r0,i1) fbcci(BCC_PL,i0,r0,i1) # define bungtr_f(i0,r0,r1) fbccr(BCC_HI,i0,r0,r1) # define bungti_f(i0,r0,i1) fbcci(BCC_HI,i0,r0,i1) # define bltgtr_f(i0,r0,r1) _bltgtr_f(_jit,i0,r0,r1) -static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) -static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define bordr_f(i0,r0,r1) fbccr(BCC_VC,i0,r0,r1) # define bordi_f(i0,r0,i1) fbcci(BCC_VC,i0,r0,i1) # define bunordr_f(i0,r0,r1) fbccr(BCC_VS,i0,r0,r1) # define bunordi_f(i0,r0,i1) fbcci(BCC_VS,i0,r0,i1) # define addr_d(r0,r1,r2) FADDD(r0,r1,r2) # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define subr_d(r0,r1,r2) FSUBD(r0,r1,r2) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1) # define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define mulr_d(r0,r1,r2) FMULD(r0,r1,r2) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define divr_d(r0,r1,r2) FDIVD(r0,r1,r2) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define absr_d(r0,r1) FABSD(r0,r1) # define negr_d(r0,r1) FNEGD(r0,r1) # define sqrtr_d(r0,r1) FSQRTD(r0,r1) # define extr_d(r0,r1) SCVTFD(r0,r1) # define ldr_d(r0,r1) _ldr_d(_jit,r0,r1) -static void _ldr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_d(jit_state_t*,int32_t,jit_int32_t); # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_d(r0,r1) _str_d(_jit,r0,r1) -static void _str_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_d(jit_state_t*,int32_t,jit_int32_t); # define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define movr_d(r0,r1) _movr_d(_jit,r0,r1) -static void _movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d(jit_state_t*,int32_t,jit_int32_t); # define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t); # define extr_f_d(r0,r1) FCVT_DS(r0,r1) # define dccr(cc,r0,r1,r2) _dccr(_jit,cc,r0,r1,r2) -static void _dccr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _dccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define dcci(cc,r0,r1,i0) _dcci(_jit,cc,r0,r1,i0) static void _dcci(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_float64_t); + int32_t,jit_int32_t,jit_int32_t,jit_float64_t); # define ltr_d(r0,r1,r2) dccr(CC_MI,r0,r1,r2) # define lti_d(r0,r1,i0) dcci(CC_MI,r0,r1,i0) # define ler_d(r0,r1,r2) dccr(CC_LS,r0,r1,r2) @@ -257,27 +257,27 @@ static void _dcci(jit_state_t*, # define unler_d(r0,r1,r2) dccr(CC_LE,r0,r1,r2) # define unlei_d(r0,r1,i0) dcci(CC_LE,r0,r1,i0) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) -static void _uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define unger_d(r0,r1,r2) dccr(CC_PL,r0,r1,r2) # define ungei_d(r0,r1,i0) dcci(CC_PL,r0,r1,i0) # define ungtr_d(r0,r1,r2) dccr(CC_HI,r0,r1,r2) # define ungti_d(r0,r1,i0) dcci(CC_HI,r0,r1,i0) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) -static void _ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define ordr_d(r0,r1,r2) dccr(CC_VC,r0,r1,r2) # define ordi_d(r0,r1,i0) dcci(CC_VC,r0,r1,i0) # define unordr_d(r0,r1,r2) dccr(CC_VS,r0,r1,r2) # define unordi_d(r0,r1,i0) dcci(CC_VS,r0,r1,i0) #define dbccr(cc,i0,r0,r1) _dbccr(_jit,cc,i0,r0,r1) static jit_word_t -_dbccr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_dbccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); #define dbcci(cc,i0,r0,i1) _dbcci(_jit,cc,i0,r0,i1) static jit_word_t -_dbcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float64_t); +_dbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t); # define bltr_d(i0,r0,r1) dbccr(BCC_MI,i0,r0,r1) # define blti_d(i0,r0,i1) dbcci(BCC_MI,i0,r0,i1) # define bler_d(i0,r0,r1) dbccr(BCC_LS,i0,r0,r1) @@ -295,29 +295,29 @@ _dbcci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float64_t); # define bunler_d(i0,r0,r1) dbccr(BCC_LE,i0,r0,r1) # define bunlei_d(i0,r0,i1) dbcci(BCC_LE,i0,r0,i1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) -static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) -static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define bunger_d(i0,r0,r1) dbccr(BCC_PL,i0,r0,r1) # define bungei_d(i0,r0,i1) dbcci(BCC_PL,i0,r0,i1) # define bungtr_d(i0,r0,r1) dbccr(BCC_HI,i0,r0,r1) # define bungti_d(i0,r0,i1) dbcci(BCC_HI,i0,r0,i1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) -static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) -static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define bordr_d(i0,r0,r1) dbccr(BCC_VC,i0,r0,r1) # define bordi_d(i0,r0,i1) dbcci(BCC_VC,i0,r0,i1) # define bunordr_d(i0,r0,r1) dbccr(BCC_VS,i0,r0,r1) # define bunordi_d(i0,r0,i1) dbcci(BCC_VS,i0,r0,i1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE static void -_osvvv(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Sz, - jit_int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) +_osvvv(jit_state_t *_jit, int32_t Op, jit_int32_t Sz, + int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) { instr_t i; assert(!(Rd & ~0x1f)); @@ -334,8 +334,8 @@ _osvvv(jit_state_t *_jit, jit_int32_t Op, jit_int32_t Sz, } static void -_osvv_(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Sz, jit_int32_t Rd, jit_int32_t Rn) +_osvv_(jit_state_t *_jit, int32_t Op, + int32_t Sz, jit_int32_t Rd, jit_int32_t Rn) { instr_t i; assert(!(Rd & ~0x1f)); @@ -350,8 +350,8 @@ _osvv_(jit_state_t *_jit, jit_int32_t Op, } static void -_os_vv(jit_state_t *_jit, jit_int32_t Op, - jit_int32_t Sz, jit_int32_t Rn, jit_int32_t Rm) +_os_vv(jit_state_t *_jit, int32_t Op, + int32_t Sz, jit_int32_t Rn, jit_int32_t Rm) { instr_t i; assert(!(Rn & ~0x1f)); @@ -368,9 +368,9 @@ _os_vv(jit_state_t *_jit, jit_int32_t Op, #define fopi(name) \ static void \ _##name##i_f(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) \ + int32_t r0, jit_int32_t r1, jit_float32_t i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_f(rn(reg), i0); \ name##r_f(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -378,9 +378,9 @@ _##name##i_f(jit_state_t *_jit, \ #define dopi(name) \ static void \ _##name##i_d(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) \ + int32_t r0, jit_int32_t r1, jit_float64_t i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_d(rn(reg), i0); \ name##r_d(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -388,10 +388,10 @@ _##name##i_d(jit_state_t *_jit, \ #define fbopi(name) \ static jit_word_t \ _b##name##i_f(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, jit_float32_t i1) \ + jit_word_t i0, int32_t r0, jit_float32_t i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ movi_f(rn(reg), i1); \ word = b##name##r_f(i0, r0, rn(reg)); \ @@ -401,10 +401,10 @@ _b##name##i_f(jit_state_t *_jit, \ #define dbopi(name) \ static jit_word_t \ _b##name##i_d(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, jit_float64_t i1) \ + jit_word_t i0, int32_t r0, jit_float64_t i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ movi_d(rn(reg), i1); \ word = b##name##r_d(i0, r0, rn(reg)); \ @@ -413,14 +413,14 @@ _b##name##i_d(jit_state_t *_jit, \ } static void -_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { FCVTSZ_WS(r0, r1); extr_i(r0, r0); } static void -_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { FCVTSZ_WD(r0, r1); extr_i(r0, r0); @@ -433,9 +433,9 @@ fopi(mul) fopi(div) static void -_ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldr_i(rn(reg), r1); FMOVSW(r0, rn(reg)); @@ -443,9 +443,9 @@ _ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldi_i(rn(reg), i0); FMOVSW(r0, rn(reg)); @@ -453,9 +453,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldxr_i(rn(reg), r1, r2); FMOVSW(r0, rn(reg)); @@ -463,9 +463,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldxi_i(rn(reg), r1, i0); FMOVSW(r0, rn(reg)); @@ -473,9 +473,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVWS(rn(reg), r1); str_i(r0, rn(reg)); @@ -483,9 +483,9 @@ _str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVWS(rn(reg), r0); sti_i(i0, rn(reg)); @@ -493,9 +493,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVWS(rn(reg), r2); stxr_i(r0, r1, rn(reg)); @@ -503,9 +503,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVWS(rn(reg), r1); stxi_i(i0, r0, rn(reg)); @@ -513,20 +513,20 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) FMOVS(r0, r1); } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } u; - jit_int32_t reg; + int32_t reg; u.f = i0; if (u.i == 0) FMOVSW(r0, WZR_REGNO); @@ -540,18 +540,18 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) } static void -_fccr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_fccr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPES(r1, r2); CSET(r0, cc); } static void -_fcci(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) +_fcci(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float32_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); movi_f(rn(reg), i0); fccr(cc, r0, r1, rn(reg)); @@ -559,7 +559,7 @@ _fcci(jit_state_t *_jit, jit_int32_t cc, } static void -_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; FCMPES(r1, r2); @@ -572,7 +572,7 @@ _uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(uneq) static void -_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; FCMPES(r1, r2); @@ -585,8 +585,8 @@ _ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ltgt) static jit_word_t -_fbccr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_fbccr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w, d; FCMPES(r0, r1); @@ -597,11 +597,11 @@ _fbccr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_fbcci(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float32_t i1) +_fbcci(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float32_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_f(rn(reg), i1); w = fbccr(cc, i0, r0, rn(reg)); @@ -610,7 +610,7 @@ _fbcci(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t u, v, w; FCMPES(r0, r1); @@ -627,7 +627,7 @@ _buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(uneq) static jit_word_t -_bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t u, v, w; FCMPES(r0, r1); @@ -650,9 +650,9 @@ dopi(mul) dopi(div) static void -_ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldr_l(rn(reg), r1); FMOVDX(r0, rn(reg)); @@ -660,9 +660,9 @@ _ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldi_l(rn(reg), i0); FMOVDX(r0, rn(reg)); @@ -670,9 +670,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldxr_l(rn(reg), r1, r2); FMOVDX(r0, rn(reg)); @@ -680,9 +680,9 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ldxi_l(rn(reg), r1, i0); FMOVDX(r0, rn(reg)); @@ -690,9 +690,9 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVXD(rn(reg), r1); str_l(r0, rn(reg)); @@ -700,9 +700,9 @@ _str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVXD(rn(reg), r0); sti_l(i0, rn(reg)); @@ -710,9 +710,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVXD(rn(reg), r2); stxr_l(r0, r1, rn(reg)); @@ -720,9 +720,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); FMOVXD(rn(reg), r1); stxi_l(i0, r0, rn(reg)); @@ -730,20 +730,20 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) FMOVD(r0, r1); } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0) { union { - jit_int64_t l; + int64_t l; jit_float64_t d; } u; - jit_int32_t reg; + int32_t reg; u.d = i0; if (u.l == 0) FMOVDX(r0, XZR_REGNO); @@ -756,18 +756,18 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) } static void -_dccr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_dccr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPED(r1, r2); CSET(r0, cc); } static void -_dcci(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) +_dcci(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float64_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); movi_d(rn(reg), i0); dccr(cc, r0, r1, rn(reg)); @@ -775,7 +775,7 @@ _dcci(jit_state_t *_jit, jit_int32_t cc, } static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; FCMPED(r1, r2); @@ -788,7 +788,7 @@ _uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(uneq) static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; FCMPED(r1, r2); @@ -801,8 +801,8 @@ _ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ltgt) static jit_word_t -_dbccr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_dbccr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w, d; FCMPED(r0, r1); @@ -813,11 +813,11 @@ _dbccr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_dbcci(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float64_t i1) +_dbcci(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float64_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_d(rn(reg), i1); w = dbccr(cc, i0, r0, rn(reg)); @@ -826,7 +826,7 @@ _dbcci(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t u, v, w; FCMPED(r0, r1); @@ -843,7 +843,7 @@ _buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(uneq) static jit_word_t -_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t u, v, w; FCMPED(r0, r1); @@ -860,11 +860,11 @@ _bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ltgt) static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_word_t ge_code; jit_word_t lt_code; - jit_int32_t rg0, rg1; + int32_t rg0, rg1; assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/aarch64.c b/jit/aarch64.c index dea4c20df..194e1220f 100644 --- a/jit/aarch64.c +++ b/jit/aarch64.c @@ -31,17 +31,17 @@ typedef struct jit_va_list { jit_pointer_t stack; jit_pointer_t gptop; jit_pointer_t fptop; - jit_int32_t gpoff; - jit_int32_t fpoff; + int32_t gpoff; + int32_t fpoff; - jit_int64_t x0; - jit_int64_t x1; - jit_int64_t x2; - jit_int64_t x3; - jit_int64_t x4; - jit_int64_t x5; - jit_int64_t x6; - jit_int64_t x7; + int64_t x0; + int64_t x1; + int64_t x2; + int64_t x3; + int64_t x4; + int64_t x5; + int64_t x6; + int64_t x7; jit_qreg_t q0; jit_qreg_t q1; @@ -155,7 +155,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -175,7 +175,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = 0; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -194,8 +194,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -213,13 +213,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t r0, r1; + int32_t r0, r1; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } r0 = jit_get_reg(jit_class_gpr); @@ -258,7 +258,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -278,7 +278,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (u != JIT_FRET) @@ -299,7 +299,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (u != JIT_FRET) @@ -372,7 +372,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -383,7 +383,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); if (jit_arg_reg_p(_jitc->function->self.argi)) @@ -402,7 +402,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); if (jit_arg_f_reg_p(_jitc->function->self.argf)) @@ -421,7 +421,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); if (jit_arg_f_reg_p(_jitc->function->self.argf)) @@ -437,7 +437,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -449,7 +449,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -461,7 +461,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -473,7 +473,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -485,7 +485,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -497,7 +497,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -509,7 +509,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -521,7 +521,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -535,7 +535,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -550,7 +550,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -562,7 +562,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -576,7 +576,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -591,7 +591,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -603,7 +603,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -617,7 +617,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_arg_reg_p(v->u.w)) @@ -632,7 +632,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -651,7 +651,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -670,7 +670,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -689,7 +689,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -708,7 +708,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -727,7 +727,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -746,9 +746,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { regno = JIT_RA0 - regno; @@ -765,7 +765,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *node; assert(_jitc->function); @@ -800,7 +800,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -808,7 +808,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -816,7 +816,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -824,7 +824,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -832,7 +832,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); jit_extr_i(r0, JIT_RET); @@ -840,7 +840,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_ui, r0); jit_extr_ui(r0, JIT_RET); @@ -848,7 +848,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); if (r0 != JIT_RET) @@ -857,7 +857,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); if (r0 != JIT_FRET) @@ -866,7 +866,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); if (r0 != JIT_FRET) @@ -881,16 +881,16 @@ _emit_code(jit_state_t *_jit) jit_node_t *temp; jit_word_t word; jit_word_t value; - jit_int32_t offset; + int32_t offset; struct { jit_node_t *node; - jit_uint8_t *data; + uint8_t *data; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t const_offset; - jit_int32_t patch_offset; + int32_t const_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1536,25 +1536,25 @@ jit_flush(void *fptr, void *tptr) } void -_emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi(rn(r0), rn(r1), i0); } void -_emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi(i0, rn(r0), rn(r1)); } void -_emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_d(rn(r0), rn(r1), i0); } void -_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi_d(i0, rn(r0), rn(r1)); } @@ -1562,7 +1562,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/alpha-cpu.c b/jit/alpha-cpu.c index a59029095..48a94defc 100644 --- a/jit/alpha-cpu.c +++ b/jit/alpha-cpu.c @@ -304,188 +304,188 @@ static void _Opi(jit_state_t*,int,int,unsigned int,unsigned int,int); # define NEGQ(ra,rc) SUBQ(_R31_REGNO,ra,rc) # define NOT(ra,rc) ORNOT(_R31_REGNO,ra,rc) # define nop(i0) _nop(_jit,i0) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define negr(r0,r1) NEGQ(r1,r0) # define comr(r0,r1) NOT(r1,r0) # define addr(r0,r1,r2) ADDQ(r1,r2,r0) # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addcr(r0,r1,i0) _addcr(_jit,r0,r1,i0) -static void _addcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,i0) _addxr(_jit,r0,r1,i0) -static void _addxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subr(r0,r1,r2) SUBQ(r1,r2,r0) # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,i0) _subcr(_jit,r0,r1,i0) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,i0) _subxr(_jit,r0,r1,i0) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t, jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t, jit_word_t); # define mulr(r0,r1,r2) MULQ(r1,r2,r0) # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) -static void _qmulr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) -static void _qmuli(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) -static void _qmulr_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) -static void _qmuli_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); static jit_word_t __idiv(jit_word_t, jit_word_t); # define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static jit_uword_t __udiv(jit_uword_t, jit_uword_t); # define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static jit_word_t __irem(jit_word_t, jit_word_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static jit_uword_t __urem(jit_uword_t, jit_uword_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static jit_word_t __idivrem(jit_word_t, jit_word_t, jit_word_t*); # define qdivr(r0,r1,r2,r3) _qdivr(_jit,r0,r1,r2,r3) static void _qdivr(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0) static void _qdivi(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); static jit_word_t __udivrem(jit_uword_t, jit_uword_t, jit_uword_t*); # define qdivr_u(r0,r1,r2,r3) _qdivr_u(_jit,r0,r1,r2,r3) static void _qdivr_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0) static void _qdivi_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define lshr(r0,r1,r2) SLL(r1,r2,r0) # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr(r0,r1,r2) SRA(r1,r2,r0) # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr_u(r0,r1,r2) SRL(r1,r2,r0) # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define andr(r0,r1,r2) AND(r1,r2,r0) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) OR(r1,r2,r0) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) XOR(r1,r2,r0) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ltr(r0,r1,r2) CMPLT(r1,r2,r0) # define lti(r0,r1,i0) _lti(_jit,r0,r1,i0) -static void _lti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ltr_u(r0,r1,r2) CMPULT(r1,r2,r0) # define lti_u(r0,r1,i0) _lti_u(_jit,r0,r1,i0) -static void _lti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ler(r0,r1,r2) CMPLE(r1,r2,r0) # define lei(r0,r1,i0) _lei(_jit,r0,r1,i0) -static void _lei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ler_u(r0,r1,r2) CMPULE(r1,r2,r0) # define lei_u(r0,r1,i0) _lei_u(_jit,r0,r1,i0) -static void _lei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define eqr(r0,r1,r2) CMPEQ(r1,r2,r0) # define eqi(r0,r1,i0) _eqi(_jit,r0,r1,i0) -static void _eqi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _eqi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ger(r0,r1,r2) CMPLE(r2,r1,r0) # define gei(r0,r1,i0) _gei(_jit,r0,r1,i0) -static void _gei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ger_u(r0,r1,r2) CMPULE(r2,r1,r0) # define gei_u(r0,r1,i0) _gei_u(_jit,r0,r1,i0) -static void _gei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr(r0,r1,r2) CMPLT(r2,r1,r0) # define gti(r0,r1,i0) _gti(_jit,r0,r1,i0) -static void _gti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr_u(r0,r1,r2) CMPULT(r2,r1,r0) # define gti_u(r0,r1,i0) _gti_u(_jit,r0,r1,i0) -static void _gti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) -static void _ner(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) -static void _nei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define bltr(i0,r0,r1) _bltr(_jit,i0,r0,r1) -static jit_word_t _bltr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti(i0,r0,i1) _blti(_jit,i0,r0,i1) -static jit_word_t _blti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bltr_u(i0,r0,r1) _bltr_u(_jit,i0,r0,r1) -static jit_word_t _bltr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti_u(i0,r0,i1) _blti_u(_jit,i0,r0,i1) -static jit_word_t _blti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bler(i0,r0,r1) _bler(_jit,i0,r0,r1) -static jit_word_t _bler(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei(i0,r0,i1) _blei(_jit,i0,r0,i1) -static jit_word_t _blei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bler_u(i0,r0,r1) _bler_u(_jit,i0,r0,r1) -static jit_word_t _bler_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei_u(i0,r0,i1) _blei_u(_jit,i0,r0,i1) -static jit_word_t _blei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define beqr(i0,r0,r1) _beqr(_jit,i0,r0,r1) -static jit_word_t _beqr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define beqi(i0,r0,i1) _beqi(_jit,i0,r0,i1) -static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bger(i0,r0,r1) _bger(_jit,i0,r0,r1) -static jit_word_t _bger(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei(i0,r0,i1) _bgei(_jit,i0,r0,i1) -static jit_word_t _bgei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bger_u(i0,r0,r1) _bger_u(_jit,i0,r0,r1) -static jit_word_t _bger_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei_u(i0,r0,i1) _bgei_u(_jit,i0,r0,i1) -static jit_word_t _bgei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bgtr(i0,r0,r1) _bgtr(_jit,i0,r0,r1) -static jit_word_t _bgtr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti(i0,r0,i1) _bgti(_jit,i0,r0,i1) -static jit_word_t _bgti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bgtr_u(i0,r0,r1) _bgtr_u(_jit,i0,r0,r1) -static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti_u(i0,r0,i1) _bgti_u(_jit,i0,r0,i1) -static jit_word_t _bgti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bner(i0,r0,r1) _bner(_jit,i0,r0,r1) -static jit_word_t _bner(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bnei(i0,r0,i1) _bnei(_jit,i0,r0,i1) -static jit_word_t _bnei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define baddr(i0,r0,r1,cc) _baddr(_jit,i0,r0,r1,cc) -static jit_word_t _baddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t, +static jit_word_t _baddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t, jit_bool_t); # define baddi(i0,r0,i1,cc) _baddi(_jit,i0,r0,i1,cc) -static jit_word_t _baddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, +static jit_word_t _baddi(jit_state_t*,jit_word_t,int32_t,jit_word_t, jit_bool_t); # define baddr_u(i0,r0,r1,cc) _baddr_u(_jit,i0,r0,r1,cc) -static jit_word_t _baddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t, +static jit_word_t _baddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t, jit_bool_t); # define baddi_u(i0,r0,i1,cc) _baddi_u(_jit,i0,r0,i1,cc) -static jit_word_t _baddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, +static jit_word_t _baddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t, jit_bool_t); # define boaddr(i0,r0,r1) baddr(i0,r0,r1,1) # define boaddi(i0,r0,i1) baddi(i0,r0,i1,1) @@ -496,16 +496,16 @@ static jit_word_t _baddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, # define bxaddr_u(i0,r0,r1) baddr_u(i0,r0,r1,0) # define bxaddi_u(i0,r0,i1) baddi_u(i0,r0,i1,0) # define bsubr(i0,r0,r1,cc) _bsubr(_jit,i0,r0,r1,cc) -static jit_word_t _bsubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t, +static jit_word_t _bsubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t, jit_bool_t); # define bsubi(i0,r0,i1,cc) _bsubi(_jit,i0,r0,i1,cc) -static jit_word_t _bsubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, +static jit_word_t _bsubi(jit_state_t*,jit_word_t,int32_t,jit_word_t, jit_bool_t); # define bsubr_u(i0,r0,r1,cc) _bsubr_u(_jit,i0,r0,r1,cc) -static jit_word_t _bsubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t, +static jit_word_t _bsubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t, jit_bool_t); # define bsubi_u(i0,r0,i1,cc) _bsubi_u(_jit,i0,r0,i1,cc) -static jit_word_t _bsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, +static jit_word_t _bsubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t, jit_bool_t); # define bosubr(i0,r0,r1) bsubr(i0,r0,r1,1) # define bosubi(i0,r0,i1) bsubi(i0,r0,i1,1) @@ -516,119 +516,119 @@ static jit_word_t _bsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, # define bxsubr_u(i0,r0,r1) bsubr_u(i0,r0,r1,0) # define bxsubi_u(i0,r0,i1) bsubi_u(i0,r0,i1,0) # define bmxr(i0,r0,r1,cc) _bmxr(_jit,i0,r0,r1,cc) -static jit_word_t _bmxr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t, +static jit_word_t _bmxr(jit_state_t*,jit_word_t,int32_t,jit_int32_t, jit_bool_t); # define bmxi(i0,r0,i1,cc) _bmxi(_jit,i0,r0,i1,cc) -static jit_word_t _bmxi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t, +static jit_word_t _bmxi(jit_state_t*,jit_word_t,int32_t,jit_word_t, jit_bool_t); # define bmsr(i0,r0,r1) bmxr(i0,r0,r1,1) # define bmsi(i0,r0,i1) bmxi(i0,r0,i1,1) # define bmcr(i0,r0,r1) bmxr(i0,r0,r1,0) # define bmci(i0,r0,i1) bmxi(i0,r0,i1,0) # define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) -static void _ldr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldr_uc(r0,r1) LDBU(r0,r1,0) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldr_s(r0,r1) _ldr_s(_jit,r0,r1) -static void _ldr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_s(jit_state_t*,int32_t,jit_int32_t); # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldr_us(r0,r1) LDWU(r0,r1,0) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldr_i(r0,r1) LDL(r0,r1,0) # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # define ldr_ui(r0,r1) _ldr_ui(_jit,r0,r1) -static void _ldr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_ui(jit_state_t*,int32_t,jit_int32_t); # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldr(r0,r1) ldr_l(r0,r1) # define ldr_l(r0,r1) LDQ(r0,r1,0) # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr(r0,r1,r2) ldxr_l(r0,r1,r2) # define ldxr_l(r0,r1,r2) _ldxr_l(_jit,r0,r1,r2) -static void _ldxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi(r0,r1,i0) ldxi_l(r0,r1,i0) # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_c(r0,r1) STB(r1,r0,0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define str_s(r0,r1) STW(r1,r0,0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define str_i(r0,r1) STL(r1,r0,0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # define str(r0,r1) str_l(r0,r1) # define str_l(r0,r1) STQ(r1,r0,0) # define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_l(r0,r1,r2) _stxr_l(_jit,r0,r1,r2) -static void _stxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi(i0,r0,r1) stxi_l(i0,r0,r1) # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define extr_c(r0,r1) _extr_c(_jit,r0,r1) -static void _extr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_c(jit_state_t*,int32_t,jit_int32_t); # define extr_uc(r0,r1) _extr_uc(_jit,r0,r1) -static void _extr_uc(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_uc(jit_state_t*,int32_t,jit_int32_t); # define extr_s(r0,r1) _extr_s(_jit,r0,r1) -static void _extr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_s(jit_state_t*,int32_t,jit_int32_t); # define extr_us(r0,r1) _extr_us(_jit,r0,r1) -static void _extr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_us(jit_state_t*,int32_t,jit_int32_t); # define extr_i(r0,r1) _extr_i(_jit,r0,r1) -static void _extr_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_i(jit_state_t*,int32_t,jit_int32_t); # define extr_ui(r0,r1) _extr_ui(_jit,r0,r1) -static void _extr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_ui(jit_state_t*,int32_t,jit_int32_t); # if __BYTE_ORDER == __LITTLE_ENDIAN # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # define htonr_ul(r0,r1) _htonr_ul(_jit,r0,r1) -static void _htonr_ul(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ul(jit_state_t*,int32_t,jit_int32_t); # else # define htonr_us(r0,r1) extr_us(r0,r1) # define htonr_ui(r0,r1) extr_ui(r0,r1) @@ -640,7 +640,7 @@ static void _jmpi(jit_state_t*, jit_word_t); # define jmpi_p(i0) _jmpi_p(_jit,i0) static jit_word_t _jmpi_p(jit_state_t*, jit_word_t); #define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*, jit_int32_t); +static void _callr(jit_state_t*, int32_t); # define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*, jit_word_t); # define calli_p(i0) _calli_p(_jit,i0) @@ -650,9 +650,9 @@ static void _prolog(jit_state_t*,jit_node_t*); # define epilog(node) _epilog(_jit,node) static void _epilog(jit_state_t*,jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define patch_at(jump,label) _patch_at(_jit,jump,label) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif @@ -719,7 +719,7 @@ _Opi(jit_state_t *_jit, int o, int ra, unsigned int i, unsigned int f, int rc) } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -727,17 +727,17 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) MOV(r1, r0); } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; - jit_int16_t s0, s1, s2, s3; + int32_t reg; + int16_t s0, s1, s2, s3; s0 = i0; s1 = i0 >> 16; s2 = i0 >> 32; @@ -784,11 +784,11 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; - jit_int16_t s0, s1, s2, s3; + int32_t reg; + int16_t s0, s1, s2, s3; w = _jit->pc.w; reg = jit_get_reg(jit_class_gpr); s0 = i0; @@ -812,9 +812,9 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) ADDQi(r1, i0, r0); else if (_s16_p(i0)) @@ -828,9 +828,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -847,9 +847,9 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -866,9 +866,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -878,9 +878,9 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -890,9 +890,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) SUBQi(r1, i0, r0); else if (_s16_p(-i0)) @@ -906,9 +906,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -925,9 +925,9 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -944,9 +944,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -956,9 +956,9 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -968,16 +968,16 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) MULQi(r1, i0, r0); else { @@ -989,12 +989,12 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_qmulr(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) +_qmulr(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t reg; + int32_t reg; /* The only invalid condition is r0 == r1 */ - jit_int32_t t2, t3, s2, s3; + int32_t t2, t3, s2, s3; if (r2 == r0 || r2 == r1) { s2 = jit_get_reg(jit_class_gpr); t2 = rn(s2); @@ -1027,10 +1027,10 @@ _qmulr(jit_state_t *_jit, jit_int32_t r0, } static void -_qmuli(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qmuli(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qmulr(r0, r1, r2, rn(reg)); @@ -1038,10 +1038,10 @@ _qmuli(jit_state_t *_jit, jit_int32_t r0, } static void -_qmulr_u(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) +_qmulr_u(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 || r0 == r3) { reg = jit_get_reg(jit_class_gpr); mulr(rn(reg), r2, r3); @@ -1056,10 +1056,10 @@ _qmulr_u(jit_state_t *_jit, jit_int32_t r0, } static void -_qmuli_u(jit_state_t *_jit, jit_int32_t r0, - jit_int32_t r1, jit_int32_t r2, jit_word_t i0) +_qmuli_u(jit_state_t *_jit, int32_t r0, + int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) { if (r0 == r2) { reg = jit_get_reg(jit_class_gpr); @@ -1088,7 +1088,7 @@ __idiv(jit_word_t u, jit_word_t v) } static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_A0_REGNO, r1); movr(_A1_REGNO, r2); @@ -1097,7 +1097,7 @@ _divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_A0_REGNO, r1); movi(_A1_REGNO, i0); @@ -1112,7 +1112,7 @@ __udiv(jit_uword_t u, jit_uword_t v) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_A0_REGNO, r1); movr(_A1_REGNO, r2); @@ -1121,7 +1121,7 @@ _divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_A0_REGNO, r1); movi(_A1_REGNO, i0); @@ -1136,7 +1136,7 @@ __irem(jit_word_t u, jit_word_t v) } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_A0_REGNO, r1); movr(_A1_REGNO, r2); @@ -1145,7 +1145,7 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_A0_REGNO, r1); movi(_A1_REGNO, i0); @@ -1160,7 +1160,7 @@ __urem(jit_uword_t u, jit_uword_t v) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_A0_REGNO, r1); movr(_A1_REGNO, r2); @@ -1169,7 +1169,7 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_A0_REGNO, r1); movi(_A1_REGNO, i0); @@ -1186,7 +1186,7 @@ __idivrem(jit_word_t u, jit_word_t v, jit_word_t *rem) static void _qdivr(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { movr(_A0_REGNO, r2); movr(_A1_REGNO, r3); @@ -1198,7 +1198,7 @@ _qdivr(jit_state_t *_jit, static void _qdivi(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { movr(_A0_REGNO, r2); movi(_A1_REGNO, i0); @@ -1217,7 +1217,7 @@ __udivrem(jit_uword_t u, jit_uword_t v, jit_uword_t *rem) static void _qdivr_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { movr(_A0_REGNO, r2); movr(_A1_REGNO, r3); @@ -1229,7 +1229,7 @@ _qdivr_u(jit_state_t *_jit, static void _qdivi_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { movr(_A0_REGNO, r2); movi(_A1_REGNO, i0); @@ -1240,30 +1240,30 @@ _qdivi_u(jit_state_t *_jit, } static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 < 64); SLLi(r1, i0, r0); } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 < 64); SRAi(r1, i0, r0); } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 < 64); SRLi(r1, i0, r0); } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) ANDi(r1, i0, r0); else { @@ -1275,9 +1275,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) ORi(r1, i0, r0); else { @@ -1289,9 +1289,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) XORi(r1, i0, r0); else { @@ -1303,9 +1303,9 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) CMPLTi(r1, i0, r0); else { @@ -1317,9 +1317,9 @@ _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) CMPULTi(r1, i0, r0); else { @@ -1331,9 +1331,9 @@ _lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) CMPLEi(r1, i0, r0); else { @@ -1345,9 +1345,9 @@ _lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t ni0; ni0 = -i0; if (_u8_p(i0)) @@ -1361,9 +1361,9 @@ _lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_eqi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) CMPEQi(r1, i0, r0); else { @@ -1375,9 +1375,9 @@ _eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ger(r0, r1, rn(reg)); @@ -1385,9 +1385,9 @@ _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ger_u(r0, r1, rn(reg)); @@ -1395,9 +1395,9 @@ _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); gtr(r0, r1, rn(reg)); @@ -1405,9 +1405,9 @@ _gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); gtr_u(r0, r1, rn(reg)); @@ -1415,16 +1415,16 @@ _gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPEQ(r1, r2, r0); CMPEQi(r0, 0, r0); } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_u8_p(i0)) { CMPEQi(r1, i0, r0); CMPEQi(r0, 0, r0); @@ -1438,10 +1438,10 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static jit_word_t -_bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ltr(rn(reg), r0, r1); w = _jit->pc.w; @@ -1451,10 +1451,10 @@ _bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BLT(r0, ((i0 - w) >> 2) - 1); @@ -1470,10 +1470,10 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ltr_u(rn(reg), r0, r1); w = _jit->pc.w; @@ -1483,10 +1483,10 @@ _bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; /* FIXME cannot optimize zero because need to return a patcheable address */ reg = jit_get_reg(jit_class_gpr|jit_class_nospill); lti_u(rn(reg), r0, i1); @@ -1497,10 +1497,10 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ler(rn(reg), r0, r1); w = _jit->pc.w; @@ -1510,10 +1510,10 @@ _bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BLE(r0, ((i0 - w) >> 2) - 1); @@ -1529,10 +1529,10 @@ _blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ler_u(rn(reg), r0, r1); w = _jit->pc.w; @@ -1542,10 +1542,10 @@ _bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BEQ(r0, ((i0 - w) >> 2) - 1); @@ -1561,10 +1561,10 @@ _blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); eqr(rn(reg), r0, r1); w = _jit->pc.w; @@ -1574,10 +1574,10 @@ _beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BEQ(r0, ((i0 - w) >> 2) - 1); @@ -1593,10 +1593,10 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ger(rn(reg), r0, r1); w = _jit->pc.w; @@ -1606,10 +1606,10 @@ _bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BGE(r0, ((i0 - w) >> 2) - 1); @@ -1625,10 +1625,10 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); ger_u(rn(reg), r0, r1); w = _jit->pc.w; @@ -1638,10 +1638,10 @@ _bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; /* always true if i1 == 0 */ if (i0 == 0) { w = _jit->pc.w; @@ -1658,10 +1658,10 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); gtr(rn(reg), r0, r1); w = _jit->pc.w; @@ -1671,10 +1671,10 @@ _bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BGT(r0, ((i0 - w) >> 2) - 1); @@ -1690,10 +1690,10 @@ _bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); gtr_u(rn(reg), r0, r1); w = _jit->pc.w; @@ -1703,10 +1703,10 @@ _bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); gti_u(rn(reg), r0, i1); w = _jit->pc.w; @@ -1716,10 +1716,10 @@ _bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); eqr(rn(reg), r0, r1); w = _jit->pc.w; @@ -1729,10 +1729,10 @@ _bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; BNE(r0, ((i0 - w) >> 2) - 1); @@ -1748,14 +1748,14 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_baddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_baddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; - jit_int32_t t3; + int32_t t0; + int32_t t1; + int32_t t2; + int32_t t3; /* t0 = r0 + r1; overflow = r1 < 0 ? r0 < t0 : t0 < r0 */ t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr); @@ -1780,11 +1780,11 @@ _baddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_baddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_baddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = baddr(i0, r0, rn(reg), carry); @@ -1793,12 +1793,12 @@ _baddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_baddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_baddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); addr(rn(t0), r0, r1); @@ -1815,12 +1815,12 @@ _baddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_baddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_baddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); addi(rn(t0), r0, i1); @@ -1837,14 +1837,14 @@ _baddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_bsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_bsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; - jit_int32_t t3; + int32_t t0; + int32_t t1; + int32_t t2; + int32_t t3; /* t0 = r0 - r1; overflow = 0 < r1 ? r0 < t0 : t0 < r0 */ t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr); @@ -1869,11 +1869,11 @@ _bsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_bsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_bsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bsubr(i0, r0, rn(reg), carry); @@ -1882,12 +1882,12 @@ _bsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_bsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_bsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); subr(rn(t0), r0, r1); @@ -1904,12 +1904,12 @@ _bsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_bsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_bsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); subi(rn(t0), r0, i1); @@ -1926,11 +1926,11 @@ _bsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_bmxr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_bmxr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t set) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); andr(rn(t0), r0, r1); w = _jit->pc.w; @@ -1943,11 +1943,11 @@ _bmxr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_bmxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_bmxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t set) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); andi(rn(t0), r0, i1); w = _jit->pc.w; @@ -1960,16 +1960,16 @@ _bmxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_uc(r0, r1); extr_c(r0, r0); } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDBU(r0, _R31_REGNO, _u16(i0)); extr_c(r0, r0); @@ -1983,9 +1983,9 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDBU(r0, _R31_REGNO, _u16(i0)); else { @@ -1997,16 +1997,16 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_us(r0, r1); extr_s(r0, r0); } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDWU(r0, _R31_REGNO, _u16(i0)); extr_s(r0, r0); @@ -2020,9 +2020,9 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDWU(r0, _R31_REGNO, _u16(i0)); else { @@ -2034,9 +2034,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDL(r0, _R31_REGNO, _u16(i0)); else { @@ -2048,16 +2048,16 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_i(r0, r1); extr_ui(r0, r0); } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDL(r0, _R31_REGNO, _u16(i0)); extr_ui(r0, r0); @@ -2071,9 +2071,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDQ(r0, _R31_REGNO, _u16(i0)); else { @@ -2085,9 +2085,9 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_c(r0, rn(reg)); @@ -2095,9 +2095,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDBU(r0, r1, _u16(i0)); extr_c(r0, r0); @@ -2111,9 +2111,9 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_uc(r0, rn(reg)); @@ -2121,9 +2121,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDBU(r0, r1, _u16(i0)); else { @@ -2135,9 +2135,9 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_s(r0, rn(reg)); @@ -2145,9 +2145,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDWU(r0, r1, _u16(i0)); extr_s(r0, r0); @@ -2161,9 +2161,9 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_us(r0, rn(reg)); @@ -2171,9 +2171,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDWU(r0, r1, _u16(i0)); else { @@ -2185,9 +2185,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_i(r0, rn(reg)); @@ -2195,9 +2195,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDL(r0, r1, _u16(i0)); else { @@ -2209,9 +2209,9 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_ui(r0, rn(reg)); @@ -2219,9 +2219,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) { LDL(r0, r1, _u16(i0)); extr_ui(r0, r0); @@ -2235,9 +2235,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_l(r0, rn(reg)); @@ -2245,9 +2245,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) LDQ(r0, r1, _u16(i0)); else { @@ -2259,9 +2259,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STB(r0, _R31_REGNO, _u16(i0)); else { @@ -2273,9 +2273,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STW(r0, _R31_REGNO, _u16(i0)); else { @@ -2287,9 +2287,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STL(r0, _R31_REGNO, _u16(i0)); else { @@ -2301,9 +2301,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STQ(r0, _R31_REGNO, _u16(i0)); else { @@ -2315,9 +2315,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_c(rn(reg), r2); @@ -2325,9 +2325,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STB(r1, r0, _u16(i0)); else { @@ -2339,9 +2339,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_s(rn(reg), r2); @@ -2349,9 +2349,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STW(r1, r0, _u16(i0)); else { @@ -2363,9 +2363,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_i(rn(reg), r2); @@ -2373,9 +2373,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STL(r1, r0, _u16(i0)); else { @@ -2387,9 +2387,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_l(rn(reg), r2); @@ -2397,9 +2397,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (_s16_p(i0)) STQ(r1, r0, _u16(i0)); else { @@ -2411,51 +2411,51 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 56); rshi(r0, r0, 56); } static void -_extr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 56); rshi_u(r0, r0, 56); } static void -_extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 48); rshi(r0, r0, 48); } static void -_extr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 48); rshi_u(r0, r0, 48); } static void -_extr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 32); rshi(r0, r0, 32); } static void -_extr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 32); rshi_u(r0, r0, 32); } static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr); EXTBLi(r1, 0, rn(t0)); EXTBLi(r1, 1, r0); @@ -2465,12 +2465,12 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; - jit_int32_t t3; + int32_t t0; + int32_t t1; + int32_t t2; + int32_t t3; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr); t2 = jit_get_reg(jit_class_gpr); @@ -2491,11 +2491,11 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ul(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; assert(_jitc->function != NULL); t0 = jit_get_reg(jit_class_fpr); t1 = jit_get_reg(jit_class_gpr); @@ -2531,7 +2531,7 @@ static jit_word_t _jmpi_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); w = movi_p(rn(reg), i0); jmpr(rn(reg)); @@ -2540,7 +2540,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { if (r0 != _PV_REGNO) MOV(r0, _PV_REGNO); @@ -2578,9 +2578,9 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg; + int32_t reg; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -2675,9 +2675,9 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { - jit_int32_t reg; + int32_t reg; /* Return jit_va_list_t in the register argument */ addi(r0, _FP_REGNO, _jitc->function->vaoff); @@ -2699,9 +2699,9 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; assert(_jitc->function->self.call & jit_call_varargs); @@ -2730,11 +2730,11 @@ static void _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; jit_word_t d; - jit_int16_t s0, s1, s2, s3; + int16_t s0, s1, s2, s3; u.w = instr; switch (_u6(u.i[0] >> 26)) { /* BLT BLE BEQ BGE */ diff --git a/jit/alpha-fpu.c b/jit/alpha-fpu.c index 6cf47451e..a6d9ac6d7 100644 --- a/jit/alpha-fpu.c +++ b/jit/alpha-fpu.c @@ -300,304 +300,304 @@ static void _Opr(jit_state_t*,int,int,int,unsigned int,int); # define FNEGT(ra,rc) CPYSN(ra,ra,rc) # define movr_f(r0,r1) movr_d(r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1) -static void _movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d(jit_state_t*,int32_t,jit_int32_t); # define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); # define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); # define absr_f(r0,r1) FABS(r1,r0) # define absr_d(r0,r1) FABS(r1,r0) # define negr_f(r0,r1) FNEGS(r1,r0) # define negr_d(r0,r1) FNEGT(r1,r0) # define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1) -static void _sqrtr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sqrtr_f(jit_state_t*,int32_t,jit_int32_t); # define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1) -static void _sqrtr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sqrtr_d(jit_state_t*,int32_t,jit_int32_t); # define extr_f_d(r0,r1) movr_d(r0,r1) # define extr_d_f(r0,r1) movr_f(r0,r1) # define truncr_f_i(r0,r1) truncr_d_i(r0,r1) # define truncr_f_l(r0,r1) truncr_d_l(r0,r1) # define truncr_d_i(r0,r1) truncr_d_l(r0,r1) # define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) -static void _truncr_d_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); # define extr_f(r0,r1) _extr_f(_jit,r0,r1) -static void _extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_f(jit_state_t*,int32_t,jit_int32_t); # define extr_d(r0,r1) _extr_d(_jit,r0,r1) -static void _extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_d(jit_state_t*,int32_t,jit_int32_t); # define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2) -static void _addr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2) -static void _addr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2) -static void _subr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2) -static void _subr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1) # define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1) # define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2) -static void _mulr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2) -static void _mulr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) -static void _divr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) -static void _divr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) # define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) -static void _ltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) -static void _lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) -static void _lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ler_f(r0,r1,r2) ler_d(r0,r1,r2) # define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) -static void _ler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) -static void _lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) -static void _lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) # define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) -static void _eqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) -static void _eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) -static void _eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ger_f(r0,r1,r2) ger_d(r0,r1,r2) # define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) -static void _ger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) -static void _gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) -static void _gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) # define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) -static void _gtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) -static void _gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) -static void _gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ner_f(r0,r1,r2) ner_d(r0,r1,r2) # define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) -static void _ner_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) -static void _nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) -static void _nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) # define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) -static void _unltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) -static void _unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) -static void _unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unler_f(r0,r1,r2) unler_d(r0,r1,r2) # define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) -static void _unler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) -static void _unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) -static void _unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) -static void _uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) -static void _uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unger_f(r0,r1,r2) unger_d(r0,r1,r2) # define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) -static void _unger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) -static void _ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) -static void _ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) # define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) -static void _ungtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) -static void _ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) -static void _ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) -static void _ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) -static void _ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) # define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) -static void _ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) -static void _ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) -static void _ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) # define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) -static void _unordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) -static void _unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) -static void _unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) # define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) -static jit_word_t _bltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) -static jit_word_t _blti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) -static jit_word_t _blti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bler_f(i0,r0,r1) bler_d(i0,r0,r1) # define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) -static jit_word_t _bler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) -static jit_word_t _blei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) -static jit_word_t _blei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) # define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) -static jit_word_t _beqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) -static jit_word_t _beqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) -static jit_word_t _beqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bger_f(i0,r0,r1) bger_d(i0,r0,r1) # define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) -static jit_word_t _bger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) -static jit_word_t _bgei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) -static jit_word_t _bgei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) # define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) -static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) -static jit_word_t _bgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) -static jit_word_t _bgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bner_f(i0,r0,r1) bner_d(i0,r0,r1) # define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) -static jit_word_t _bner_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) -static jit_word_t _bnei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) -static jit_word_t _bnei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) # define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) -static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) -static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) -static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) # define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) -static jit_word_t _bunler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) -static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) -static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) -static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) -static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) -static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) # define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) -static jit_word_t _bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) -static jit_word_t _bungei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) -static jit_word_t _bungei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) # define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) -static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) -static jit_word_t _bungti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) -static jit_word_t _bungti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) -static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) -static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) -static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) # define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) -static jit_word_t _bordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) -static jit_word_t _bordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) -static jit_word_t _bordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) # define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) -static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) -static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) -static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define ldr_f(r0,r1) LDS(r0,r1,0) # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # define ldr_d(r0,r1) LDT(r0,r1,0) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_f(r0,r1) STS(r1,r0,0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # define str_d(r0,r1) STT(r1,r0,0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE # define fpr_opi(name, type, size) \ static void \ _##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_##type(rn(reg), i0); \ name##r_##type(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -605,11 +605,11 @@ _##name##i_##type(jit_state_t *_jit, \ # define fpr_bopi(name, type, size) \ static jit_word_t \ _b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr|jit_class_nospill);\ + int32_t reg = jit_get_reg(jit_class_fpr|jit_class_nospill);\ movi_##type(rn(reg), i1); \ word = b##name##r_##type(i0, r0, rn(reg)); \ jit_unget_reg(reg); \ @@ -621,20 +621,20 @@ _b##name##i_##type(jit_state_t *_jit, \ # define dbopi(name) fpr_bopi(name, d, 64) static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) FMOV(r1, r0); } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.f = *i0; @@ -649,13 +649,13 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.d = *i0; @@ -670,9 +670,9 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) } static void -_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); CVTTQ_SVC(r1, rn(reg)); TRAPB(); @@ -682,21 +682,21 @@ _truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { SQRTS_SU(r1, r0); TRAPB(); } static void -_sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { SQRTT_SU(r1, r0); TRAPB(); } static void -_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi_l(-8, _FP_REGNO, r1); ldxi_d(r0, _FP_REGNO, -8); @@ -704,7 +704,7 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi_l(-8, _FP_REGNO, r1); ldxi_d(r0, _FP_REGNO, -8); @@ -712,7 +712,7 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { ADDS_SU(r1, r2, r0); TRAPB(); @@ -720,7 +720,7 @@ _addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(add) static void -_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { ADDT_SU(r1, r2, r0); TRAPB(); @@ -728,7 +728,7 @@ _addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(add) static void -_subr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SUBS_SU(r1, r2, r0); TRAPB(); @@ -737,7 +737,7 @@ fopi(sub) fopi(rsb) static void -_subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SUBT_SU(r1, r2, r0); TRAPB(); @@ -746,7 +746,7 @@ dopi(sub) dopi(rsb) static void -_mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MULS_SU(r1, r2, r0); TRAPB(); @@ -754,7 +754,7 @@ _mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(mul) static void -_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MULT_SU(r1, r2, r0); TRAPB(); @@ -762,7 +762,7 @@ _mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(mul) static void -_divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { DIVS_SU(r1, r2, r0); TRAPB(); @@ -770,7 +770,7 @@ _divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(div) static void -_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { DIVT_SU(r1, r2, r0); TRAPB(); @@ -778,9 +778,9 @@ _divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(div) static void -_ltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -801,9 +801,9 @@ fopi(lt); dopi(lt); static void -_ler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -824,9 +824,9 @@ fopi(le); dopi(le); static void -_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -847,9 +847,9 @@ fopi(eq); dopi(eq); static void -_ger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -870,9 +870,9 @@ fopi(ge); dopi(ge); static void -_gtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -893,9 +893,9 @@ fopi(gt); dopi(gt); static void -_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -916,9 +916,9 @@ fopi(ne); dopi(ne); static void -_unltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -939,9 +939,9 @@ fopi(unlt); dopi(unlt); static void -_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -962,9 +962,9 @@ fopi(unle); dopi(unle); static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -985,9 +985,9 @@ fopi(uneq); dopi(uneq); static void -_unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -1008,9 +1008,9 @@ fopi(unge); dopi(unge); static void -_ungtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); @@ -1031,9 +1031,9 @@ fopi(ungt); dopi(ungt); static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); @@ -1054,10 +1054,10 @@ fopi(ltgt); dopi(ltgt); static void -_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 0); CMPTUN_SU(r1, r2, rn(reg)); @@ -1072,10 +1072,10 @@ fopi(ord); dopi(ord); static void -_unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi(r0, 1); CMPTUN_SU(r1, r2, rn(reg)); @@ -1090,9 +1090,9 @@ fopi(unord); dopi(unord); static jit_word_t -_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ @@ -1111,9 +1111,9 @@ fbopi(lt); dbopi(lt); static jit_word_t -_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ @@ -1132,9 +1132,9 @@ fbopi(le); dbopi(le); static jit_word_t -_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ @@ -1153,9 +1153,9 @@ fbopi(eq); dbopi(eq); static jit_word_t -_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ @@ -1174,9 +1174,9 @@ fbopi(ge); dbopi(ge); static jit_word_t -_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ @@ -1195,9 +1195,9 @@ fbopi(gt); dbopi(gt); static jit_word_t -_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1219,9 +1219,9 @@ fbopi(ne); dbopi(ne); static jit_word_t -_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1243,9 +1243,9 @@ fbopi(unlt); dbopi(unlt); static jit_word_t -_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1267,9 +1267,9 @@ fbopi(unle); dbopi(unle); static jit_word_t -_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1291,9 +1291,9 @@ fbopi(uneq); dbopi(uneq); static jit_word_t -_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1315,9 +1315,9 @@ fbopi(unge); dbopi(unge); static jit_word_t -_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_word_t u, v, w; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ @@ -1339,10 +1339,10 @@ fbopi(ungt); dbopi(ungt); static jit_word_t -_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t u, v, w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ TRAPB(); @@ -1363,10 +1363,10 @@ fbopi(ltgt); dbopi(ltgt); static jit_word_t -_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord does not satisfy condition */ TRAPB(); @@ -1379,10 +1379,10 @@ fbopi(ord); dbopi(ord); static jit_word_t -_bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); CMPTUN_SU(r0, r1, rn(reg)); /* unord satisfy condition */ TRAPB(); @@ -1395,7 +1395,7 @@ fbopi(unord); dbopi(unord); static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t reg; if (_s16_p(i0)) @@ -1409,7 +1409,7 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t reg; if (_s16_p(i0)) @@ -1423,7 +1423,7 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t reg; reg = jit_get_reg(jit_class_gpr); @@ -1433,7 +1433,7 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { jit_word_t reg; if (_s16_p(i0)) @@ -1447,7 +1447,7 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t reg; reg = jit_get_reg(jit_class_gpr); @@ -1457,7 +1457,7 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { jit_word_t reg; if (_s16_p(i0)) @@ -1471,7 +1471,7 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_word_t reg; if (_s16_p(i0)) @@ -1485,7 +1485,7 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_word_t reg; if (_s16_p(i0)) @@ -1499,7 +1499,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t reg; reg = jit_get_reg(jit_class_gpr); @@ -1509,7 +1509,7 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t reg; if (_s16_p(i0)) @@ -1523,7 +1523,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t reg; reg = jit_get_reg(jit_class_gpr); @@ -1533,7 +1533,7 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t reg; if (_s16_p(i0)) @@ -1547,10 +1547,10 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_word_t ge_code; - jit_int32_t rg0, rg1, rg2; + int32_t rg0, rg1, rg2; assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/alpha.c b/jit/alpha.c index 4d49fb9cc..f994a679e 100644 --- a/jit/alpha.c +++ b/jit/alpha.c @@ -25,9 +25,9 @@ # define I_DISP 0 # define F_DISP 0 #else -# define C_DISP 8 - sizeof(jit_int8_t) -# define S_DISP 8 - sizeof(jit_int16_t) -# define I_DISP 8 - sizeof(jit_int32_t) +# define C_DISP 8 - sizeof(int8_t) +# define S_DISP 8 - sizeof(int16_t) +# define I_DISP 8 - sizeof(int32_t) # define F_DISP 8 - sizeof(jit_float32_t) #endif @@ -155,7 +155,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -175,7 +175,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = -8; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -194,8 +194,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function != NULL); switch (length) { @@ -213,13 +213,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function != NULL); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -246,7 +246,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -266,7 +266,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (u != JIT_FRET) @@ -287,7 +287,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (u != JIT_FRET) @@ -347,9 +347,9 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { - jit_int32_t reg; + int32_t reg; jit_inc_synth_w(va_push, u); reg = jit_get_reg(jit_class_gpr); jit_ldxi(reg, u, offsetof(jit_va_list_t, base)); @@ -364,7 +364,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function != NULL); if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -382,7 +382,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function != NULL); if (jit_arg_f_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -400,7 +400,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function != NULL); if (jit_arg_f_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -415,7 +415,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -427,7 +427,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -439,7 +439,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -451,7 +451,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -463,7 +463,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -475,7 +475,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -487,7 +487,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -499,7 +499,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -513,7 +513,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -528,7 +528,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -540,7 +540,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -554,7 +554,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -569,7 +569,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -581,7 +581,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -595,7 +595,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -610,7 +610,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function != NULL); jit_inc_synth_w(pushargr, u); @@ -627,9 +627,9 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) } void -_jit_pushargi(jit_state_t *_jit, jit_int64_t u) +_jit_pushargi(jit_state_t *_jit, int64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function != NULL); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -648,7 +648,7 @@ _jit_pushargi(jit_state_t *_jit, jit_int64_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function != NULL); jit_inc_synth_w(pushargr_f, u); @@ -667,7 +667,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function != NULL); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -686,7 +686,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function != NULL); jit_inc_synth_w(pushargr_d, u); @@ -705,7 +705,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function != NULL); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -724,9 +724,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { @@ -746,7 +746,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function != NULL); @@ -777,7 +777,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -785,7 +785,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -793,7 +793,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -801,7 +801,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -809,7 +809,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); jit_extr_i(r0, JIT_RET); @@ -817,7 +817,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_ui, r0); jit_extr_ui(r0, JIT_RET); @@ -825,7 +825,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); if (r0 != JIT_RET) @@ -834,7 +834,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); if (r0 != JIT_FRET) @@ -843,7 +843,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); if (r0 != JIT_FRET) @@ -858,16 +858,16 @@ _emit_code(jit_state_t *_jit) jit_node_t *temp; jit_word_t word; jit_word_t value; - jit_int32_t offset; + int32_t offset; struct { jit_node_t *node; - jit_uint8_t *data; + uint8_t *data; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t const_offset; - jit_int32_t patch_offset; + int32_t const_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1505,25 +1505,25 @@ jit_flush(void *fptr, void *tptr) } void -_emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi(rn(r0), rn(r1), i0); } void -_emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi(i0, rn(r0), rn(r1)); } void -_emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_d(rn(r0), rn(r1), i0); } void -_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi_d(i0, rn(r0), rn(r1)); } @@ -1531,7 +1531,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/arm-cpu.c b/jit/arm-cpu.c index 6f06965c3..7241703d2 100644 --- a/jit/arm-cpu.c +++ b/jit/arm-cpu.c @@ -836,113 +836,113 @@ static void _torl(jit_state_t*,int,int,int) maybe_unused; jit_unget_reg(_R0); \ } while (0) # define nop(i0) _nop(_jit,i0) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define comr(r0,r1) _comr(_jit,r0,r1) -static void _comr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _comr(jit_state_t*,int32_t,jit_int32_t); # define negr(r0,r1) _negr(_jit,r0,r1) -static void _negr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _negr(jit_state_t*,int32_t,jit_int32_t); # define addr(r0,r1,r2) _addr(_jit,r0,r1,r2) -static void _addr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addcr(r0,r1,r2) _addcr(_jit,r0,r1,r2) -static void _addcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,r2) _addxr(_jit,r0,r1,r2) -static void _addxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subr(r0,r1,r2) _subr(_jit,r0,r1,r2) -static void _subr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,r2) _subcr(_jit,r0,r1,r2) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) _subxr(_jit,r0,r1,r2) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) -static void _mulr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) -static void _iqmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) -static void _iqmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define divrem(d,s,r0,r1,r2) _divrem(_jit,d,s,r0,r1,r2) -static void _divrem(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divrem(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); # define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) -static void _iqdivr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) -static void _iqdivi(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define andr(r0,r1,r2) _andr(_jit,r0,r1,r2) -static void _andr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _andr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) _orr(_jit,r0,r1,r2) -static void _orr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _orr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) _xorr(_jit,r0,r1,r2) -static void _xorr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _xorr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define lshr(r0,r1,r2) _lshr(_jit,r0,r1,r2) -static void _lshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _lshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr(r0,r1,r2) _rshr(_jit,r0,r1,r2) -static void _rshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr_u(r0,r1,r2) _rshr_u(_jit,r0,r1,r2) -static void _rshr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ccr(ct,cf,r0,r1,r2) _ccr(_jit,ct,cf,r0,r1,r2) -static void _ccr(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ccr(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); # define cci(ct,cf,r0,r1,i0) _cci(_jit,ct,cf,r0,r1,i0) -static void _cci(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_word_t); +static void _cci(jit_state_t*,int,int,int32_t,jit_int32_t,jit_word_t); # define ltr(r0, r1, r2) ccr(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define lti(r0, r1, i0) cci(ARM_CC_LT,ARM_CC_GE,r0,r1,i0) # define ltr_u(r0, r1, r2) ccr(ARM_CC_LO,ARM_CC_HS,r0,r1,r2) @@ -962,19 +962,19 @@ static void _cci(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_word_t); # define gtr_u(r0, r1, r2) ccr(ARM_CC_HI,ARM_CC_LS,r0,r1,r2) # define gti_u(r0, r1, i0) cci(ARM_CC_HI,ARM_CC_LS,r0,r1,i0) # define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) -static void _ner(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) -static void _nei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define jmpr(r0) _jmpr(_jit,r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); # define jmpi(i0) _jmpi(_jit,i0) static void _jmpi(jit_state_t*,jit_word_t); # define jmpi_p(i0, i1) _jmpi_p(_jit,i0, i1) static jit_word_t _jmpi_p(jit_state_t*,jit_word_t,jit_bool_t); # define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1) -static jit_word_t _bccr(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bccr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1) -static jit_word_t _bcci(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bcci(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); # define bltr(i0, r0, r1) bccr(ARM_CC_LT,i0,r0,r1) # define blti(i0, r0, i1) bcci(ARM_CC_LT,i0,r0,i1) # define bltr_u(i0, r0, r1) bccr(ARM_CC_LO,i0,r0,r1) @@ -996,9 +996,9 @@ static jit_word_t _bcci(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); # define bner(i0, r0, r1) bccr(ARM_CC_NE,i0,r0,r1) # define bnei(i0, r0, i1) bcci(ARM_CC_NE,i0,r0,i1) # define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1) -static jit_word_t _baddr(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _baddr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define baddi(cc,i0,r0,r1) _baddi(_jit,cc,i0,r0,r1) -static jit_word_t _baddi(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _baddi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); # define boaddr(i0,r0,r1) baddr(ARM_CC_VS,i0,r0,r1) # define boaddi(i0,r0,i1) baddi(ARM_CC_VS,i0,r0,i1) # define boaddr_u(i0,r0,r1) baddr(ARM_CC_HS,i0,r0,r1) @@ -1008,9 +1008,9 @@ static jit_word_t _baddi(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); # define bxaddr_u(i0,r0,r1) baddr(ARM_CC_LO,i0,r0,r1) # define bxaddi_u(i0,r0,i1) baddi(ARM_CC_LO,i0,r0,i1) # define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1) -static jit_word_t _bsubr(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bsubr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define bsubi(cc,i0,r0,r1) _bsubi(_jit,cc,i0,r0,r1) -static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); # define bosubr(i0,r0,r1) bsubr(ARM_CC_VS,i0,r0,r1) # define bosubi(i0,r0,i1) bsubi(ARM_CC_VS,i0,r0,i1) # define bosubr_u(i0,r0,r1) bsubr(ARM_CC_LO,i0,r0,r1) @@ -1020,110 +1020,110 @@ static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); # define bxsubr_u(i0,r0,r1) bsubr(ARM_CC_HS,i0,r0,r1) # define bxsubi_u(i0,r0,i1) bsubi(ARM_CC_HS,i0,r0,i1) # define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1) -static jit_word_t _bmxr(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmxr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1) -static jit_word_t _bmxi(jit_state_t*,int,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmxi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); # define bmsr(i0,r0,r1) bmxr(ARM_CC_NE,i0,r0,r1) # define bmsi(i0,r0,i1) bmxi(ARM_CC_NE,i0,r0,i1) # define bmcr(i0,r0,r1) bmxr(ARM_CC_EQ,i0,r0,r1) # define bmci(i0,r0,i1) bmxi(ARM_CC_EQ,i0,r0,i1) # define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) -static void _ldr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1) -static void _ldr_uc(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_uc(jit_state_t*,int32_t,jit_int32_t); # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_s(r0,r1) _ldr_s(_jit,r0,r1) -static void _ldr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_s(jit_state_t*,int32_t,jit_int32_t); # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_us(r0,r1) _ldr_us(_jit,r0,r1) -static void _ldr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_us(jit_state_t*,int32_t,jit_int32_t); # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_i(r0,r1) _ldr_i(_jit,r0,r1) -static void _ldr_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_i(jit_state_t*,int32_t,jit_int32_t); # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_c(r0,r1) _str_c(_jit,r0,r1) -static void _str_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_c(jit_state_t*,int32_t,jit_int32_t); # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_c(r0,r1,i0) _stxi_c(_jit,r0,r1,i0) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_s(r0,r1) _str_s(_jit,r0,r1) -static void _str_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_s(jit_state_t*,int32_t,jit_int32_t); # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_s(r0,r1,i0) _stxi_s(_jit,r0,r1,i0) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_i(r0,r1) _str_i(_jit,r0,r1) -static void _str_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_i(jit_state_t*,int32_t,jit_int32_t); # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxi_i(r0,r1,i0) _stxi_i(_jit,r0,r1,i0) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __BYTE_ORDER == __LITTLE_ENDIAN # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # else # define htonr_us(r0,r1) extr_us(r0,r1) # define htonr(r0,r1) movr(r0,r1) # endif # define extr_c(r0,r1) _extr_c(_jit,r0,r1) -static void _extr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_c(jit_state_t*,int32_t,jit_int32_t); # define extr_uc(r0,r1) _extr_uc(_jit,r0,r1) -static void _extr_uc(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_uc(jit_state_t*,int32_t,jit_int32_t); # define extr_s(r0,r1) _extr_s(_jit,r0,r1) -static void _extr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_s(jit_state_t*,int32_t,jit_int32_t); # define extr_us(r0,r1) _extr_us(_jit,r0,r1) -static void _extr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_us(jit_state_t*,int32_t,jit_int32_t); # define prolog(i0) _prolog(_jit,i0) static void _prolog(jit_state_t*,jit_node_t*); # define epilog(i0) _epilog(_jit,i0) static void _epilog(jit_state_t*,jit_node_t*); # define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); # define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*,jit_word_t); # define calli_p(i0) _calli_p(_jit,i0) static jit_word_t _calli_p(jit_state_t*,jit_word_t); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define patch_at(kind,jump,label) _patch_at(_jit,kind,jump,label) -static void _patch_at(jit_state_t*,jit_int32_t,jit_word_t,jit_word_t); +static void _patch_at(jit_state_t*,int32_t,jit_word_t,jit_word_t); #endif #if CODE @@ -1406,7 +1406,7 @@ _tcb(jit_state_t *_jit, int cc, int im) jit_thumb_t thumb; assert(!(cc & 0xfffffff)); assert(cc != ARM_CC_AL && cc != ARM_CC_NV); - cc = ((jit_uint32_t)cc) >> 6; + cc = ((uint32_t)cc) >> 6; assert(!(im & (THUMB2_CC_B|cc))); thumb.i = THUMB2_CC_B|cc|im; iss(thumb.s[0], thumb.s[1]); @@ -1510,7 +1510,7 @@ _torl(jit_state_t *_jit, int o, int rn, int im) } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { if (jit_thumb_p()) { for (; i0 > 0; i0 -= 2) @@ -1524,7 +1524,7 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) { if (jit_thumb_p()) @@ -1535,7 +1535,7 @@ _movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { int i; if (jit_thumb_p()) { @@ -1546,9 +1546,9 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) else if ((i = encode_thumb_immediate(~i0)) != -1) T2_MVNI(r0, i); else { - T2_MOVWI(r0, (jit_uint16_t)i0); + T2_MOVWI(r0, (uint16_t)i0); if (i0 & 0xffff0000) - T2_MOVTI(r0, (jit_uint16_t)((unsigned)i0 >> 16)); + T2_MOVTI(r0, (uint16_t)((unsigned)i0 >> 16)); } } else { @@ -1559,9 +1559,9 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) else if ((i = encode_arm_immediate(~i0)) != -1) MVNI(r0, i); else if (jit_armv6_p()) { - MOVWI(r0, (jit_uint16_t)(i0)); + MOVWI(r0, (uint16_t)(i0)); if ((i0 & 0xffff0000)) - MOVTI(r0, (jit_uint16_t)((unsigned)i0 >> 16)); + MOVTI(r0, (uint16_t)((unsigned)i0 >> 16)); } else load_const(0, r0, i0); @@ -1569,13 +1569,13 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; w = _jit->pc.w; if (jit_thumb_p()) { - T2_MOVWI(r0, (jit_uint16_t)(i0)); - T2_MOVTI(r0, (jit_uint16_t)((unsigned)i0 >> 16)); + T2_MOVWI(r0, (uint16_t)(i0)); + T2_MOVTI(r0, (uint16_t)((unsigned)i0 >> 16)); } else load_const(1, r0, 0); @@ -1583,7 +1583,7 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_comr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1) < 8) @@ -1596,7 +1596,7 @@ _comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_negr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_negr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1) < 8) @@ -1609,7 +1609,7 @@ _negr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8) @@ -1624,10 +1624,10 @@ _addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1) < 8 && !(i0 & ~7)) T1_ADDI3(r0, r1, i0); @@ -1671,7 +1671,7 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { /* thumb auto set carry if not inside IT block */ @@ -1685,10 +1685,10 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && !(i0 & ~7)) T1_ADDI3(r0, r1, i0); @@ -1728,7 +1728,7 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { /* keep setting carry because don't know last ADC */ if (jit_thumb_p()) { @@ -1743,10 +1743,10 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; int no_set_flags; if (jit_thumb_p()) { no_set_flags = jit_no_set_flags(); @@ -1786,7 +1786,7 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8) @@ -1799,10 +1799,10 @@ _subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1) < 8 && !(i0 & ~7)) T1_SUBI3(r0, r1, i0); @@ -1846,7 +1846,7 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { /* thumb auto set carry if not inside IT block */ @@ -1860,10 +1860,10 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && !(i0 & ~7)) T1_SUBI3(r0, r1, i0); @@ -1903,7 +1903,7 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { /* keep setting carry because don't know last SBC */ if (jit_thumb_p()) { @@ -1918,10 +1918,10 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; int no_set_flags; if (jit_thumb_p()) { no_set_flags = jit_no_set_flags(); @@ -1961,16 +1961,16 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (!jit_no_set_flags() && r0 == r2 && (r0|r1) < 8) T1_MUL(r0, r1); @@ -1996,9 +1996,9 @@ _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); mulr(r0, r1, rn(reg)); @@ -2006,10 +2006,10 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (r2 == r3) { reg = jit_get_reg(jit_class_gpr); @@ -2059,10 +2059,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqmulr(r0, r1, r2, rn(reg), sign); @@ -2071,7 +2071,7 @@ _iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, static void _divrem(jit_state_t *_jit, int div, int sign, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t d; jit_word_t w; @@ -2101,7 +2101,7 @@ _divrem(jit_state_t *_jit, int div, int sign, } static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_armv7r_p() && jit_thumb_p()) T2_SDIV(r0, r1, r2); @@ -2110,9 +2110,9 @@ _divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr(r0, r1, rn(reg)); @@ -2120,7 +2120,7 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_armv7r_p() && jit_thumb_p()) T2_UDIV(r0, r1, r2); @@ -2129,9 +2129,9 @@ _divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr_u(r0, r1, rn(reg)); @@ -2139,8 +2139,8 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { jit_word_t d; jit_word_t w; @@ -2170,10 +2170,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqdivr(r0, r1, r2, rn(reg), sign); @@ -2181,15 +2181,15 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { divrem(0, 1, r0, r1, r2); } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr(r0, r1, rn(reg)); @@ -2197,15 +2197,15 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { divrem(0, 0, r0, r1, r2); } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr_u(r0, r1,rn(reg)); @@ -2213,7 +2213,7 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_andr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) @@ -2226,10 +2226,10 @@ _andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((i = encode_thumb_immediate(i0)) != -1) T2_ANDI(r0, r1, i); @@ -2265,7 +2265,7 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_orr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) @@ -2278,10 +2278,10 @@ _orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((i = encode_thumb_immediate(i0)) != -1) T2_ORRI(r0, r1, i); @@ -2313,7 +2313,7 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_xorr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) @@ -2326,10 +2326,10 @@ _xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((i = encode_thumb_immediate(i0)) != -1) T2_EORI(r0, r1, i); @@ -2361,7 +2361,7 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_lshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) @@ -2374,7 +2374,7 @@ _lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 31); if (i0 == 0) @@ -2390,7 +2390,7 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_rshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) @@ -2403,7 +2403,7 @@ _rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 31); if (i0 == 0) @@ -2419,7 +2419,7 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_rshr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) @@ -2432,7 +2432,7 @@ _rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 31); if (i0 == 0) @@ -2449,7 +2449,7 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) static void _ccr(jit_state_t *_jit, int ct, int cf, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { assert((ct ^ cf) >> 28 == 1); @@ -2478,10 +2478,10 @@ _ccr(jit_state_t *_jit, int ct, int cf, static void _cci(jit_state_t *_jit, int ct, int cf, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (r1 < 7 && !(i0 & 0xffffff00)) T1_CMPI(r1, i0); @@ -2527,7 +2527,7 @@ _cci(jit_state_t *_jit, int ct, int cf, } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) ccr(ARM_CC_NE, ARM_CC_EQ, r0, r1, r2); @@ -2538,10 +2538,10 @@ _ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) cci(ARM_CC_NE, ARM_CC_EQ, r0, r1, i0); else { @@ -2564,7 +2564,7 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { if (jit_thumb_p()) T1_MOV(_R15_REGNO, r0); @@ -2577,7 +2577,7 @@ _jmpi(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; w = _jit->pc.w; /* if thumb and in thumb mode */ if (jit_thumb_p() && _jitc->thumb) { @@ -2611,7 +2611,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0, jit_bool_t i1) { jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; if (i1) { /* Assume jump is not longer than 23 bits if inside jit */ w = _jit->pc.w; @@ -2637,7 +2637,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0, jit_bool_t i1) } static jit_word_t -_bccr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bccr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t d; @@ -2665,12 +2665,12 @@ _bccr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bcci(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bcci(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; jit_word_t d; int i; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (r0 < 7 && !(i1 & 0xffffff00)) T1_CMPI(r0, i1); @@ -2710,7 +2710,7 @@ _bcci(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_baddr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_baddr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t d; @@ -2735,12 +2735,12 @@ _baddr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_baddi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, int i1) +_baddi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int i1) { int i; jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (r0 < 8 && !(i1 & ~7)) T1_ADDI3(r0, r0, i1); @@ -2785,7 +2785,7 @@ _baddi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, int i1) } static jit_word_t -_bsubr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bsubr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t d; @@ -2810,12 +2810,12 @@ _bsubr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bsubi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, int i1) +_bsubi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int i1) { int i; jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (r0 < 8 && !(i1 & ~7)) T1_SUBI3(r0, r0, i1); @@ -2860,11 +2860,11 @@ _bsubi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, int i1) } static jit_word_t -_bmxr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmxr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8) T1_TST(r0, r1); @@ -2892,12 +2892,12 @@ _bmxr(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmxi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmxi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_word_t i1) { int i; jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((i = encode_thumb_immediate(i1)) != -1) T2_TSTI(r0, i); @@ -2944,7 +2944,7 @@ _bmxi(jit_state_t *_jit, int cc, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_LDRSBI(r0, r1, 0); @@ -2953,9 +2953,9 @@ _ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -2966,7 +2966,7 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -2979,9 +2979,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (jit_ldrt_strt_p() && i0 >= 0 && i0 <= 255) T2_LDRSBI(r0, r1, i0); @@ -3025,7 +3025,7 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_LDRBI(r0, r1, 0); @@ -3034,9 +3034,9 @@ _ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3047,7 +3047,7 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3060,9 +3060,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && i0 < 0x20) T1_LDRBI(r0, r1, i0); @@ -3108,7 +3108,7 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_LDRSHI(r0, r1, 0); @@ -3117,9 +3117,9 @@ _ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3130,7 +3130,7 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3143,9 +3143,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if (jit_ldrt_strt_p() && i0 >= 0 && i0 <= 255) T2_LDRSHI(r0, r1, i0); @@ -3189,7 +3189,7 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_LDRHI(r0, r1, 0); @@ -3198,9 +3198,9 @@ _ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3211,7 +3211,7 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3224,9 +3224,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && !(i0 & 1) && (i0 >> 1) < 0x20) T1_LDRHI(r0, r1, i0 >> 1); @@ -3272,7 +3272,7 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_LDRI(r0, r1, 0); @@ -3281,9 +3281,9 @@ _ldr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3294,7 +3294,7 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3307,9 +3307,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && !(i0 & 3) && (i0 >> 2) < 0x20) T1_LDRI(r0, r1, i0 >> 2); @@ -3358,7 +3358,7 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_str_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_STRBI(r1, r0, 0); @@ -3367,9 +3367,9 @@ _str_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3380,7 +3380,7 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3393,9 +3393,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && i0 < 0x20) T1_STRBI(r1, r0, i0); @@ -3430,7 +3430,7 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_str_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_STRHI(r1, r0, 0); @@ -3439,9 +3439,9 @@ _str_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3452,7 +3452,7 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3465,9 +3465,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && !(i0 & 1) && (i0 >> 1) < 0x20) T1_STRHI(r1, r0, i0 >> 1); @@ -3502,7 +3502,7 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_str_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) T2_STRI(r1, r0, 0); @@ -3511,9 +3511,9 @@ _str_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_thumb_p()) @@ -3524,7 +3524,7 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { if ((r0|r1|r2) < 8) @@ -3537,9 +3537,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8 && i0 >= 0 && !(i0 & 3) && (i0 >> 2) < 0x20) T1_STRI(r1, r0, i0 >> 2); @@ -3578,9 +3578,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # if __BYTE_ORDER == __LITTLE_ENDIAN static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; if (jit_thumb_p()) { if ((r0|r1) < 8) T1_REV(r0, r1); @@ -3607,9 +3607,9 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) /* inline glibc htonl (without register clobber) */ static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_thumb_p()) { if ((r0|r1) < 8) T1_REV(r0, r1); @@ -3632,7 +3632,7 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if ((r0|r1) < 8) @@ -3651,7 +3651,7 @@ _extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if ((r0|r1) < 8) @@ -3668,7 +3668,7 @@ _extr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if ((r0|r1) < 8) @@ -3687,7 +3687,7 @@ _extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_thumb_p()) { if ((r0|r1) < 8) @@ -3706,7 +3706,7 @@ _extr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { if (jit_thumb_p()) T1_BLX(r0); @@ -3718,7 +3718,7 @@ static void _calli(jit_state_t *_jit, jit_word_t i0) { jit_word_t d; - jit_int32_t reg; + int32_t reg; d = ((i0 - _jit->pc.w) >> 2) - 2; if (!jit_exchange_p() && !jit_thumb_p() && _s24P(d)) BLI(d & 0x00ffffff); @@ -3737,7 +3737,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); w = _jit->pc.w; movi_p(rn(reg), i0); @@ -3752,9 +3752,9 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg; + int32_t reg; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) { if (jit_thumb_p() && !_jitc->thumb) @@ -3833,7 +3833,7 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { assert(_jitc->function->self.call & jit_call_varargs); @@ -3846,7 +3846,7 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); @@ -3859,13 +3859,13 @@ _vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) static void _patch_at(jit_state_t *_jit, - jit_int32_t kind, jit_word_t instr, jit_word_t label) + int32_t kind, jit_word_t instr, jit_word_t label) { jit_word_t d; jit_thumb_t thumb; union { - jit_int16_t *s; - jit_int32_t *i; + int16_t *s; + int32_t *i; jit_word_t w; } u; u.w = instr; diff --git a/jit/arm-swf.c b/jit/arm-swf.c index 3ea2b2bb6..aee52a556 100644 --- a/jit/arm-swf.c +++ b/jit/arm-swf.c @@ -50,98 +50,98 @@ extern int __aeabi_fcmpun(float, float); extern int __aeabi_dcmpun(double, double); # define swf_ff(i0,r0,r1) _swf_ff(_jit,i0,r0,r1) static void -_swf_ff(jit_state_t*,float(*)(float),jit_int32_t,jit_int32_t) maybe_unused; +_swf_ff(jit_state_t*,float(*)(float),int32_t,jit_int32_t) maybe_unused; # define swf_dd(i0,r0,r1) _swf_dd(_jit,i0,r0,r1) static void -_swf_dd(jit_state_t*,double(*)(double),jit_int32_t,jit_int32_t) maybe_unused; +_swf_dd(jit_state_t*,double(*)(double),int32_t,jit_int32_t) maybe_unused; # define swf_fff(i0,r0,r1,r2) _swf_fff(_jit,i0,r0,r1,r2) static void _swf_fff(jit_state_t*,float(*)(float,float), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_ddd(i0,r0,r1,r2) _swf_ddd(_jit,i0,r0,r1,r2) static void _swf_ddd(jit_state_t*,double(*)(double,double), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_fff_(i0,r0,r1,i1) _swf_fff_(_jit,i0,r0,r1,i1) static void _swf_fff_(jit_state_t*,float(*)(float,float), - jit_int32_t,jit_int32_t,jit_float32_t); + int32_t,jit_int32_t,jit_float32_t); # define swf_ddd_(i0,r0,r1,i1) _swf_ddd_(_jit,i0,r0,r1,i1) static void _swf_ddd_(jit_state_t*,double(*)(double,double), - jit_int32_t,jit_int32_t,jit_float64_t); + int32_t,jit_int32_t,jit_float64_t); # define swf_iff(i0,r0,r1,r2) _swf_iff(_jit,i0,r0,r1,r2) static void _swf_iff(jit_state_t*,int(*)(float,float), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_idd(i0,r0,r1,r2) _swf_idd(_jit,i0,r0,r1,r2) static void _swf_idd(jit_state_t*,int(*)(double,double), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_iff_(i0,r0,r1,r2) _swf_iff_(_jit,i0,r0,r1,r2) static void _swf_iff_(jit_state_t*,int(*)(float,float), - jit_int32_t,jit_int32_t,jit_float32_t); + int32_t,jit_int32_t,jit_float32_t); # define swf_idd_(i0,r0,r1,r2) _swf_idd_(_jit,i0,r0,r1,r2) static void _swf_idd_(jit_state_t*,int(*)(double,double), - jit_int32_t,jit_int32_t,jit_float64_t); + int32_t,jit_int32_t,jit_float64_t); # define swf_iunff(i0,r0,r1,r2) _swf_iunff(_jit,i0,r0,r1,r2) static void _swf_iunff(jit_state_t*,int(*)(float,float), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_iundd(i0,r0,r1,r2) _swf_iundd(_jit,i0,r0,r1,r2) static void _swf_iundd(jit_state_t*,int(*)(double,double), - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); # define swf_iunff_(i0,r0,r1,i1) _swf_iunff_(_jit,i0,r0,r1,i1) static void _swf_iunff_(jit_state_t*,int(*)(float,float), - jit_int32_t,jit_int32_t,jit_float32_t); + int32_t,jit_int32_t,jit_float32_t); # define swf_iundd_(i0,r0,r1,i1) _swf_iundd_(_jit,i0,r0,r1,i1) static void _swf_iundd_(jit_state_t*,int(*)(double,double), - jit_int32_t,jit_int32_t,jit_float64_t); + int32_t,jit_int32_t,jit_float64_t); # define swf_bff(i0,cc,i1,r0,r1) _swf_bff(_jit,i0,cc,i1,r0,r1) static jit_word_t _swf_bff(jit_state_t*,int(*)(float,float),int, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); # define swf_bdd(i0,cc,i1,r0,r1) _swf_bdd(_jit,i0,cc,i1,r0,r1) static jit_word_t _swf_bdd(jit_state_t*,int(*)(double,double),int, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); # define swf_bff_(i0,cc,i1,r0,i2) _swf_bff_(_jit,i0,cc,i1,r0,i2) static jit_word_t _swf_bff_(jit_state_t*,int(*)(float,float),int, - jit_word_t,jit_int32_t,jit_float32_t); + jit_word_t,int32_t,jit_float32_t); # define swf_bdd_(i0,cc,i1,r0,i2) _swf_bdd_(_jit,i0,cc,i1,r0,i2) static jit_word_t _swf_bdd_(jit_state_t*,int(*)(double,double),int, - jit_word_t,jit_int32_t,jit_float64_t); + jit_word_t,int32_t,jit_float64_t); # define swf_bunff(eq,i0,r0,r1) _swf_bunff(_jit,eq,i0,r0,r1) static jit_word_t _swf_bunff(jit_state_t*,int, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); # define swf_bundd(eq,i0,r0,r1) _swf_bundd(_jit,eq,i0,r0,r1) static jit_word_t _swf_bundd(jit_state_t*,int, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); # define swf_bunff_(eq,i0,r0,i1) _swf_bunff_(_jit,eq,i0,r0,i1) static jit_word_t _swf_bunff_(jit_state_t*,int, - jit_word_t,jit_int32_t,jit_float32_t); + jit_word_t,int32_t,jit_float32_t); # define swf_bundd_(eq,i0,r0,i1) _swf_bundd_(_jit,eq,i0,r0,i1) static jit_word_t _swf_bundd_(jit_state_t*,int, - jit_word_t,jit_int32_t,jit_float64_t); + jit_word_t,int32_t,jit_float64_t); # define swf_extr_f(r0,r1) _swf_extr_f(_jit,r0,r1) -static void _swf_extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_extr_f(jit_state_t*,int32_t,jit_int32_t); # define swf_extr_d(r0,r1) _swf_extr_d(_jit,r0,r1) -static void _swf_extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_extr_d(jit_state_t*,int32_t,jit_int32_t); # define swf_extr_d_f(r0,r1) _swf_extr_d_f(_jit,r0,r1) -static void _swf_extr_d_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_extr_d_f(jit_state_t*,int32_t,jit_int32_t); # define swf_extr_f_d(r0,r1) _swf_extr_f_d(_jit,r0,r1) -static void _swf_extr_f_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_extr_f_d(jit_state_t*,int32_t,jit_int32_t); # define swf_truncr_f_i(r0,r1) _swf_truncr_f_i(_jit,r0,r1) -static void _swf_truncr_f_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_truncr_f_i(jit_state_t*,int32_t,jit_int32_t); # define swf_truncr_d_i(r0,r1) _swf_truncr_d_i(_jit,r0,r1) -static void _swf_truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_truncr_d_i(jit_state_t*,int32_t,jit_int32_t); # define swf_movr_f(r0,r1) _swf_movr_f(_jit,r0,r1) -static void _swf_movr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_movr_f(jit_state_t*,int32_t,jit_int32_t); # define swf_movr_d(r0,r1) _swf_movr_d(_jit,r0,r1) -static void _swf_movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_movr_d(jit_state_t*,int32_t,jit_int32_t); # define swf_movi_f(r0,i0) _swf_movi_f(_jit,r0,i0) -static void _swf_movi_f(jit_state_t*,jit_int32_t,jit_float32_t); +static void _swf_movi_f(jit_state_t*,int32_t,jit_float32_t); # define swf_movi_d(r0,i0) _swf_movi_d(_jit,r0,i0) -static void _swf_movi_d(jit_state_t*,jit_int32_t,jit_float64_t); +static void _swf_movi_d(jit_state_t*,int32_t,jit_float64_t); # define swf_absr_f(r0,r1) _swf_absr_f(_jit,r0,r1) -static void _swf_absr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_absr_f(jit_state_t*,int32_t,jit_int32_t); # define swf_absr_d(r0,r1) _swf_absr_d(_jit,r0,r1) -static void _swf_absr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_absr_d(jit_state_t*,int32_t,jit_int32_t); # define swf_negr_f(r0,r1) _swf_negr_f(_jit,r0,r1) -static void _swf_negr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_negr_f(jit_state_t*,int32_t,jit_int32_t); # define swf_negr_d(r0,r1) _swf_negr_d(_jit,r0,r1) -static void _swf_negr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_negr_d(jit_state_t*,int32_t,jit_int32_t); # define swf_sqrtr_f(r0,r1) swf_ff(sqrtf,r0,r1) # define swf_sqrtr_d(r0,r1) swf_dd(sqrt,r0,r1) # define swf_addr_f(r0,r1,r2) swf_fff(__addsf3,r0,r1,r2) @@ -154,10 +154,10 @@ static void _swf_negr_d(jit_state_t*,jit_int32_t,jit_int32_t); # define swf_subi_d(r0,r1,i0) swf_ddd_(__aeabi_dsub,r0,r1,i0) # define swf_rsbr_f(r0, r1, r2) swf_subr_f(r0, r2, r1) # define swf_rsbi_f(r0, r1, i0) _swf_rsbi_f(_jit, r0, r1, i0) -static void _swf_rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _swf_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define swf_rsbr_d(r0, r1, r2) swf_subr_d(r0, r2, r1) # define swf_rsbi_d(r0, r1, i0) _swf_rsbi_d(_jit, r0, r1, i0) -static void _swf_rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _swf_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define swf_mulr_f(r0,r1,r2) swf_fff(__aeabi_fmul,r0,r1,r2) # define swf_muli_f(r0,r1,i0) swf_fff_(__aeabi_fmul,r0,r1,i0) # define swf_mulr_d(r0,r1,r2) swf_ddd(__aeabi_dmul,r0,r1,r2) @@ -187,13 +187,13 @@ static void _swf_rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); # define swf_gtr_d(r0,r1,r2) swf_idd(__aeabi_dcmpgt,r0,r1,r2) # define swf_gti_d(r0,r1,i0) swf_idd_(__aeabi_dcmpgt,r0,r1,i0) # define swf_ner_f(r0,r1,r2) _swf_ner_f(_jit,r0,r1,r2) -static void _swf_ner_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ner_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_nei_f(r0,r1,i0) _swf_nei_f(_jit,r0,r1,i0) -static void _swf_nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _swf_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define swf_ner_d(r0,r1,r2) _swf_ner_d(_jit,r0,r1,r2) -static void _swf_ner_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_nei_d(r0,r1,i0) _swf_nei_d(_jit,r0,r1,i0) -static void _swf_nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _swf_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define swf_unltr_f(r0,r1,r2) swf_iunff(__aeabi_fcmplt,r0,r1,r2) # define swf_unlti_f(r0,r1,i0) swf_iunff_(__aeabi_fcmplt,r0,r1,i0) # define swf_unltr_d(r0,r1,r2) swf_iundd(__aeabi_dcmplt,r0,r1,r2) @@ -215,21 +215,21 @@ static void _swf_nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); # define swf_ungtr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpgt,r0,r1,r2) # define swf_ungti_d(r0,r1,i0) swf_iundd_(__aeabi_dcmpgt,r0,r1,i0) # define swf_ltgtr_f(r0,r1,r2) _swf_ltgtr_f(_jit,r0,r1,r2) -static void _swf_ltgtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ltgti_f(r0,r1,i0) _swf_ltgti_f(_jit,r0,r1,i0) -static void _swf_ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _swf_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define swf_ltgtr_d(r0,r1,r2) _swf_ltgtr_d(_jit,r0,r1,r2) -static void _swf_ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ltgti_d(r0,r1,i0) _swf_ltgti_d(_jit,r0,r1,i0) -static void _swf_ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _swf_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define swf_ordr_f(r0,r1,r2) _swf_ordr_f(_jit,r0,r1,r2) -static void _swf_ordr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ordi_f(r0,r1,i0) _swf_ordi_f(_jit,r0,r1,i0) -static void _swf_ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _swf_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define swf_ordr_d(r0,r1,r2) _swf_ordr_d(_jit,r0,r1,r2) -static void _swf_ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ordi_d(r0,r1,i0) _swf_ordi_d(_jit,r0,r1,i0) -static void _swf_ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _swf_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define swf_unordr_f(r0,r1,r2) swf_iunff(__aeabi_fcmpun,r0,r1,r2) # define swf_unordi_f(r0,r1,i0) swf_iunff_(__aeabi_fcmpun,r0,r1,i0) # define swf_unordr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpun,r0,r1,r2) @@ -291,39 +291,39 @@ static void _swf_ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); # define swf_bunordr_d(i0,r0,r1) swf_bdd(__aeabi_dcmpun,ARM_CC_NE,i0,r0,r1) # define swf_bunordi_d(i0,r0,i1) swf_bdd_(__aeabi_dcmpun,ARM_CC_NE,i0,r0,i1) # define swf_ldr_f(r0,r1) _swf_ldr_f(_jit,r0,r1) -static void _swf_ldr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_ldr_f(jit_state_t*,int32_t,jit_int32_t); # define swf_ldr_d(r0,r1) _swf_ldr_d(_jit,r0,r1) -static void _swf_ldr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_ldr_d(jit_state_t*,int32_t,jit_int32_t); # define swf_ldi_f(r0,i0) _swf_ldi_f(_jit,r0,i0) -static void _swf_ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _swf_ldi_f(jit_state_t*,int32_t,jit_word_t); # define swf_ldi_d(r0,i0) _swf_ldi_d(_jit,r0,i0) -static void _swf_ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _swf_ldi_d(jit_state_t*,int32_t,jit_word_t); # define swf_ldxr_f(r0,r1,r2) _swf_ldxr_f(_jit,r0,r1,r2) -static void _swf_ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ldxr_d(r0,r1,r2) _swf_ldxr_d(_jit,r0,r1,r2) -static void _swf_ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_ldxi_f(r0,r1,i0) _swf_ldxi_f(_jit,r0,r1,i0) -static void _swf_ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _swf_ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define swf_ldxi_d(r0,r1,i0) _swf_ldxi_d(_jit,r0,r1,i0) -static void _swf_ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _swf_ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define swf_str_f(r0,r1) _swf_str_f(_jit,r0,r1) -static void _swf_str_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_str_f(jit_state_t*,int32_t,jit_int32_t); # define swf_str_d(r0,r1) _swf_str_d(_jit,r0,r1) -static void _swf_str_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _swf_str_d(jit_state_t*,int32_t,jit_int32_t); # define swf_sti_f(r0,i0) _swf_sti_f(_jit,r0,i0) -static void _swf_sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _swf_sti_f(jit_state_t*,jit_word_t,int32_t); # define swf_sti_d(r0,i0) _swf_sti_d(_jit,r0,i0) -static void _swf_sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _swf_sti_d(jit_state_t*,jit_word_t,int32_t); # define swf_stxr_f(r0,r1,r2) _swf_stxr_f(_jit,r0,r1,r2) -static void _swf_stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_stxr_d(r0,r1,r2) _swf_stxr_d(_jit,r0,r1,r2) -static void _swf_stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _swf_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define swf_stxi_f(r0,r1,i0) _swf_stxi_f(_jit,r0,r1,i0) -static void _swf_stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _swf_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define swf_stxi_d(r0,r1,i0) _swf_stxi_d(_jit,r0,r1,i0) -static void _swf_stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _swf_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define swf_vaarg_d(r0, r1) _swf_vaarg_d(_jit, r0, r1) -static void _swf_vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _swf_vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE @@ -358,7 +358,7 @@ static void _swf_vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); #define swf_call_with_get_reg(function, label) \ do { \ jit_word_t d; \ - jit_int32_t reg; \ + int32_t reg; \ if (!jit_exchange_p()) { \ if (jit_thumb_p()) \ d = (((jit_word_t)function - _jit->pc.w) >> 1) - 2; \ @@ -561,7 +561,7 @@ __aeabi_dcmpun(double u, double v) static void _swf_ff(jit_state_t *_jit, float(*i0)(float), - jit_int32_t r0, jit_int32_t r1) + int32_t r0, jit_int32_t r1) { jit_get_reg_args(); if (jit_fpr_p(r1)) @@ -578,7 +578,7 @@ _swf_ff(jit_state_t *_jit, float(*i0)(float), static void _swf_dd(jit_state_t *_jit, double (*i0)(double), - jit_int32_t r0, jit_int32_t r1) + int32_t r0, jit_int32_t r1) { jit_get_reg_args(); if (jit_fpr_p(r1)) { @@ -611,7 +611,7 @@ _swf_dd(jit_state_t *_jit, double (*i0)(double), static void _swf_fff(jit_state_t *_jit, float (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_get_reg_args(); if (jit_fpr_p(r1)) @@ -632,7 +632,7 @@ _swf_fff(jit_state_t *_jit, float (*i0)(float, float), static void _swf_ddd(jit_state_t *_jit, double (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_get_reg_args(); if (jit_fpr_p(r1)) { @@ -677,10 +677,10 @@ _swf_ddd(jit_state_t *_jit, double (*i0)(double, double), static void _swf_fff_(jit_state_t *_jit, float (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_float32_t i1) + int32_t r0, jit_int32_t r1, jit_float32_t i1) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_get_reg_args(); @@ -699,10 +699,10 @@ _swf_fff_(jit_state_t *_jit, float (*i0)(float, float), } static void -_swf_rsbi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) +_swf_rsbi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_get_reg_args(); @@ -722,10 +722,10 @@ _swf_rsbi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) static void _swf_ddd_(jit_state_t *_jit, double (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_float64_t i1) + int32_t r0, jit_int32_t r1, jit_float64_t i1) { union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -762,10 +762,10 @@ _swf_ddd_(jit_state_t *_jit, double (*i0)(double, double), } static void -_swf_rsbi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) +_swf_rsbi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) { union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -802,7 +802,7 @@ _swf_rsbi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) static void _swf_iff(jit_state_t *_jit, int (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_get_reg_args(); if (jit_fpr_p(r1)) @@ -820,7 +820,7 @@ _swf_iff(jit_state_t *_jit, int (*i0)(float, float), static void _swf_idd(jit_state_t *_jit, int (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_get_reg_args(); if (jit_fpr_p(r1)) { @@ -854,10 +854,10 @@ _swf_idd(jit_state_t *_jit, int (*i0)(double, double), static void _swf_iff_(jit_state_t *_jit, int (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_float32_t i1) + int32_t r0, jit_int32_t r1, jit_float32_t i1) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_get_reg_args(); @@ -874,10 +874,10 @@ _swf_iff_(jit_state_t *_jit, int (*i0)(float, float), static void _swf_idd_(jit_state_t *_jit, int (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_float64_t i1) + int32_t r0, jit_int32_t r1, jit_float64_t i1) { union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -903,7 +903,7 @@ _swf_idd_(jit_state_t *_jit, int (*i0)(double, double), static void _swf_iunff(jit_state_t *_jit, int (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t instr; jit_get_reg_args(); @@ -948,7 +948,7 @@ _swf_iunff(jit_state_t *_jit, int (*i0)(float, float), static void _swf_iundd(jit_state_t *_jit, int (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t instr; jit_get_reg_args(); @@ -1025,11 +1025,11 @@ _swf_iundd(jit_state_t *_jit, int (*i0)(double, double), static void _swf_iunff_(jit_state_t *_jit, int (*i0)(float, float), - jit_int32_t r0, jit_int32_t r1, jit_float32_t i1) + int32_t r0, jit_int32_t r1, jit_float32_t i1) { jit_word_t instr; union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_get_reg_args(); @@ -1069,11 +1069,11 @@ _swf_iunff_(jit_state_t *_jit, int (*i0)(float, float), static void _swf_iundd_(jit_state_t *_jit, int (*i0)(double, double), - jit_int32_t r0, jit_int32_t r1, jit_float64_t i1) + int32_t r0, jit_int32_t r1, jit_float64_t i1) { jit_word_t instr; union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -1131,7 +1131,7 @@ _swf_iundd_(jit_state_t *_jit, int (*i0)(double, double), static jit_word_t _swf_bff(jit_state_t *_jit, int (*i0)(float, float), int cc, - jit_word_t i1, jit_int32_t r0, jit_int32_t r1) + jit_word_t i1, int32_t r0, jit_int32_t r1) { jit_word_t w, d; jit_get_reg_args(); @@ -1164,7 +1164,7 @@ _swf_bff(jit_state_t *_jit, int (*i0)(float, float), int cc, static jit_word_t _swf_bdd(jit_state_t *_jit, int (*i0)(double, double), int cc, - jit_word_t i1, jit_int32_t r0, jit_int32_t r1) + jit_word_t i1, int32_t r0, jit_int32_t r1) { jit_word_t w, d; jit_get_reg_args(); @@ -1213,10 +1213,10 @@ _swf_bdd(jit_state_t *_jit, int (*i0)(double, double), int cc, static jit_word_t _swf_bff_(jit_state_t *_jit, int (*i0)(float, float), int cc, - jit_word_t i1, jit_int32_t r0, jit_float32_t i2) + jit_word_t i1, int32_t r0, jit_float32_t i2) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_word_t w, d; @@ -1248,11 +1248,11 @@ _swf_bff_(jit_state_t *_jit, int (*i0)(float, float), int cc, static jit_word_t _swf_bdd_(jit_state_t *_jit, int (*i0)(double, double), int cc, - jit_word_t i1, jit_int32_t r0, jit_float64_t i2) + jit_word_t i1, int32_t r0, jit_float64_t i2) { jit_word_t w, d; union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -1292,7 +1292,7 @@ _swf_bdd_(jit_state_t *_jit, int (*i0)(double, double), int cc, static jit_word_t _swf_bunff(jit_state_t *_jit, int eq, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w, d, j0, j1; jit_get_reg_args(); @@ -1362,7 +1362,7 @@ _swf_bunff(jit_state_t *_jit, int eq, static jit_word_t _swf_bundd(jit_state_t *_jit, int eq, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w, d, j0, j1; jit_get_reg_args(); @@ -1464,10 +1464,10 @@ _swf_bundd(jit_state_t *_jit, int eq, static jit_word_t _swf_bunff_(jit_state_t *_jit, int eq, - jit_word_t i0, jit_int32_t r0, jit_float32_t i1) + jit_word_t i0, int32_t r0, jit_float32_t i1) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; jit_word_t w, d, j0, j1; @@ -1533,11 +1533,11 @@ _swf_bunff_(jit_state_t *_jit, int eq, static jit_word_t _swf_bundd_(jit_state_t *_jit, int eq, - jit_word_t i0, jit_int32_t r0, jit_float64_t i1) + jit_word_t i0, int32_t r0, jit_float64_t i1) { jit_word_t w, d, j0, j1; union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; jit_get_reg_args(); @@ -1619,7 +1619,7 @@ _swf_bundd_(jit_state_t *_jit, int eq, } static void -_swf_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_get_reg_args(); movr(_R0_REGNO, r1); @@ -1632,7 +1632,7 @@ _swf_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_get_reg_args(); movr(_R0_REGNO, r1); @@ -1653,7 +1653,7 @@ _swf_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_get_reg_args(); if (jit_fpr_p(r1)) { @@ -1677,7 +1677,7 @@ _swf_extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { jit_get_reg_args(); if (jit_fpr_p(r1)) @@ -1701,7 +1701,7 @@ _swf_extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if !NAN_TO_INT_IS_ZERO jit_word_t is_nan; @@ -1755,7 +1755,7 @@ _swf_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if !NAN_TO_INT_IS_ZERO jit_word_t is_nan; @@ -1819,9 +1819,9 @@ _swf_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (r0 != r1) { if (jit_fpr_p(r1)) { reg = jit_get_reg(jit_class_gpr); @@ -1840,9 +1840,9 @@ _swf_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (r0 != r1) { if (jit_fpr_p(r1)) { if (!jit_thumb_p() && jit_armv5e_p() && @@ -1887,13 +1887,13 @@ _swf_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) +_swf_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; data.f = i0; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); @@ -1906,11 +1906,11 @@ _swf_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) } static void -_swf_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) +_swf_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0) { - jit_int32_t reg; + int32_t reg; union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } data; data.d = i0; @@ -1938,9 +1938,9 @@ _swf_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) } static void -_swf_absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); @@ -1963,9 +1963,9 @@ _swf_absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (jit_fpr_p(r0) && !jit_thumb_p() && jit_armv5e_p() && r0 != r1 && (reg = jit_get_reg_pair()) != JIT_NOREG) { @@ -2010,9 +2010,9 @@ _swf_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); @@ -2035,9 +2035,9 @@ _swf_negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (jit_fpr_p(r0) && !jit_thumb_p() && jit_armv5e_p() && r0 != r1 && (reg = jit_get_reg_pair()) != JIT_NOREG) { @@ -2082,93 +2082,93 @@ _swf_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_ner_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ner_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_iff(__aeabi_fcmpeq, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_nei_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) +_swf_nei_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) { swf_iff_(__aeabi_fcmpeq, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_idd(__aeabi_dcmpeq, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_nei_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) +_swf_nei_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) { swf_idd_(__aeabi_dcmpeq, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_iunff(__aeabi_fcmpeq, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_ltgti_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) +_swf_ltgti_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) { swf_iunff_(__aeabi_fcmpeq, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_iundd(__aeabi_dcmpeq, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_ltgti_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) +_swf_ltgti_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) { swf_iundd_(__aeabi_dcmpeq, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_iff(__aeabi_fcmpun, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_ordi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) +_swf_ordi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) { swf_iff_(__aeabi_fcmpun, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { swf_idd(__aeabi_dcmpun, r0, r1, r2); xori(r0, r0, 1); } static void -_swf_ordi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) +_swf_ordi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) { swf_idd_(__aeabi_dcmpun, r0, r1, i0); xori(r0, r0, 1); } static void -_swf_ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); ldxi_i(rn(reg), r1, 0); @@ -2180,9 +2180,9 @@ _swf_ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { if (!jit_thumb_p() && jit_armv5e_p() && (reg = jit_get_reg_pair()) != JIT_NOREG) { @@ -2208,9 +2208,9 @@ _swf_ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_swf_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); ldi_i(rn(reg), i0); @@ -2222,9 +2222,9 @@ _swf_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_swf_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_swf_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0) && !jit_thumb_p() && jit_armv5e_p() && (rg0 = jit_get_reg_pair()) != JIT_NOREG) { movi(rn(rg0), i0); @@ -2254,9 +2254,9 @@ _swf_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_swf_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); ldxr_i(rn(reg), r1, r2); @@ -2268,9 +2268,9 @@ _swf_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_swf_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0)) { if (!jit_thumb_p() && jit_armv5e_p() && (rg0 = jit_get_reg_pair()) != JIT_NOREG) { @@ -2304,9 +2304,9 @@ _swf_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_swf_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_swf_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); ldxi_i(rn(reg), r1, i0); @@ -2318,9 +2318,9 @@ _swf_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_swf_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_swf_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0)) { if (!jit_thumb_p() && jit_armv5e_p() && ((i0 >= 0 && i0 <= 255) || (i0 < 0 && i0 >= -255)) && @@ -2387,9 +2387,9 @@ _swf_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_swf_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); @@ -2401,9 +2401,9 @@ _swf_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (!jit_thumb_p() && jit_armv5e_p() && (reg = jit_get_reg_pair()) != JIT_NOREG) { @@ -2431,9 +2431,9 @@ _swf_str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_swf_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_swf_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r0) + 8); @@ -2445,9 +2445,9 @@ _swf_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_swf_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_swf_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0)) { if (!jit_thumb_p() && jit_armv5e_p() && (rg0 = jit_get_reg_pair()) != JIT_NOREG) { @@ -2484,9 +2484,9 @@ _swf_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_swf_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r2)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r2) + 8); @@ -2498,9 +2498,9 @@ _swf_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_swf_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_swf_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r2)) { if (!jit_thumb_p() && jit_armv5e_p() && (rg0 = jit_get_reg_pair()) != JIT_NOREG) { @@ -2534,9 +2534,9 @@ _swf_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_swf_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_swf_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { reg = jit_get_reg(jit_class_gpr); swf_ldrin(rn(reg), _FP_REGNO, swf_off(r1) + 8); @@ -2548,9 +2548,9 @@ _swf_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_swf_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_swf_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r1)) { if (!jit_thumb_p() && jit_armv5e_p() && ((i0 >= 0 && i0 <= 255) || (i0 < 0 && i0 >= -255)) && @@ -2618,9 +2618,9 @@ _swf_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_swf_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_swf_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/arm-vfp.c b/jit/arm-vfp.c index 2964ef42e..d290727b2 100644 --- a/jit/arm-vfp.c +++ b/jit/arm-vfp.c @@ -467,25 +467,25 @@ static void _cc_vorsl(jit_state_t*,int,int,int,int,int); # define CC_VSTR_F64(cc,r0,r1,i0) cc_vldst(cc,ARM_VSTR|ARM_V_F64|ARM_P,r0,r1,i0) # define VSTR_F64(r0,r1,i0) CC_VSTR_F64(ARM_CC_AL,r0,r1,i0) # define vfp_movr_f(r0,r1) _vfp_movr_f(_jit,r0,r1) -static void _vfp_movr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_movr_f(jit_state_t*,int32_t,jit_int32_t); # define vfp_movr_d(r0,r1) _vfp_movr_d(_jit,r0,r1) -static void _vfp_movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_movr_d(jit_state_t*,int32_t,jit_int32_t); # define vfp_movi_f(r0,i0) _vfp_movi_f(_jit,r0,i0) -static void _vfp_movi_f(jit_state_t*,jit_int32_t,jit_float32_t); +static void _vfp_movi_f(jit_state_t*,int32_t,jit_float32_t); # define vfp_movi_d(r0,i0) _vfp_movi_d(_jit,r0,i0) -static void _vfp_movi_d(jit_state_t*,jit_int32_t,jit_float64_t); +static void _vfp_movi_d(jit_state_t*,int32_t,jit_float64_t); # define vfp_extr_f(r0,r1) _vfp_extr_f(_jit,r0,r1) -static void _vfp_extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_extr_f(jit_state_t*,int32_t,jit_int32_t); # define vfp_extr_d(r0,r1) _vfp_extr_d(_jit,r0,r1) -static void _vfp_extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_extr_d(jit_state_t*,int32_t,jit_int32_t); # define vfp_extr_d_f(r0,r1) _vfp_extr_d_f(_jit,r0,r1) -static void _vfp_extr_d_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_extr_d_f(jit_state_t*,int32_t,jit_int32_t); # define vfp_extr_f_d(r0,r1) _vfp_extr_f_d(_jit,r0,r1) -static void _vfp_extr_f_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_extr_f_d(jit_state_t*,int32_t,jit_int32_t); # define vfp_truncr_f_i(r0,r1) _vfp_truncr_f_i(_jit,r0,r1) -static void _vfp_truncr_f_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_truncr_f_i(jit_state_t*,int32_t,jit_int32_t); # define vfp_truncr_d_i(r0,r1) _vfp_truncr_d_i(_jit,r0,r1) -static void _vfp_truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_truncr_d_i(jit_state_t*,int32_t,jit_int32_t); # define vfp_absr_f(r0,r1) VABS_F32(r0,r1) # define vfp_absr_d(r0,r1) VABS_F64(r0,r1) # define vfp_negr_f(r0,r1) VNEG_F32(r0,r1) @@ -494,318 +494,318 @@ static void _vfp_truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); # define vfp_sqrtr_d(r0,r1) VSQRT_F64(r0,r1) # define vfp_addr_f(r0,r1,r2) VADD_F32(r0,r1,r2) # define vfp_addi_f(r0,r1,i0) _vfp_addi_f(_jit,r0,r1,i0) -static void _vfp_addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_addr_d(r0,r1,r2) VADD_F64(r0,r1,r2) # define vfp_addi_d(r0,r1,i0) _vfp_addi_d(_jit,r0,r1,i0) -static void _vfp_addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_subr_f(r0,r1,r2) VSUB_F32(r0,r1,r2) # define vfp_subi_f(r0,r1,i0) _vfp_subi_f(_jit,r0,r1,i0) -static void _vfp_subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_subr_d(r0,r1,r2) VSUB_F64(r0,r1,r2) # define vfp_subi_d(r0,r1,i0) _vfp_subi_d(_jit,r0,r1,i0) -static void _vfp_subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_rsbr_f(r0,r1,r2) vfp_subr_f(r0,r2,r1) # define vfp_rsbi_f(r0,r1,i0) _vfp_rsbi_f(_jit,r0,r1,i0) -static void _vfp_rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_rsbr_d(r0,r1,r2) vfp_subr_d(r0,r2,r1) # define vfp_rsbi_d(r0,r1,i0) _vfp_rsbi_d(_jit,r0,r1,i0) -static void _vfp_rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_mulr_f(r0,r1,r2) VMUL_F32(r0,r1,r2) # define vfp_muli_f(r0,r1,i0) _vfp_muli_f(_jit,r0,r1,i0) -static void _vfp_muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_mulr_d(r0,r1,r2) VMUL_F64(r0,r1,r2) # define vfp_muli_d(r0,r1,i0) _vfp_muli_d(_jit,r0,r1,i0) -static void _vfp_muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_divr_f(r0,r1,r2) VDIV_F32(r0,r1,r2) # define vfp_divi_f(r0,r1,i0) _vfp_divi_f(_jit,r0,r1,i0) -static void _vfp_divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_divr_d(r0,r1,r2) VDIV_F64(r0,r1,r2) # define vfp_divi_d(r0,r1,i0) _vfp_divi_d(_jit,r0,r1,i0) -static void _vfp_divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_cmp_f(r0,r1) _vfp_cmp_f(_jit,r0,r1) -static void _vfp_cmp_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_cmp_f(jit_state_t*,int32_t,jit_int32_t); # define vfp_cmp_d(r0,r1) _vfp_cmp_d(_jit,r0,r1) -static void _vfp_cmp_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _vfp_cmp_d(jit_state_t*,int32_t,jit_int32_t); # define vcmp01_x(c0,c1,r0) _vcmp01_x(_jit,c0,c1,r0) -static void _vcmp01_x(jit_state_t*,int,int,jit_int32_t); +static void _vcmp01_x(jit_state_t*,int,int,int32_t); # define vcmp01_f(c0,c1,r0,r1,r2) _vcmp01_f(_jit,c0,c1,r0,r1,r2) -static void _vcmp01_f(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp01_f(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); # define vcmp01_d(c0,c1,r0,r1,r2) _vcmp01_d(_jit,c0,c1,r0,r1,r2) -static void _vcmp01_d(jit_state_t*,int,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp01_d(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); # define vfp_ltr_f(r0,r1,r2) vcmp01_f(ARM_CC_PL,ARM_CC_MI,r0,r1,r2) # define vfp_lti_f(r0,r1,i0) _vfp_lti_f(_jit,r0,r1,i0) -static void _vfp_lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ltr_d(r0,r1,r2) vcmp01_d(ARM_CC_PL,ARM_CC_MI,r0,r1,r2) # define vfp_lti_d(r0,r1,i0) _vfp_lti_d(_jit,r0,r1,i0) -static void _vfp_lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ler_f(r0,r1,r2) vcmp01_f(ARM_CC_HS,ARM_CC_LS,r0,r1,r2) # define vfp_lei_f(r0,r1,i0) _vfp_lei_f(_jit,r0,r1,i0) -static void _vfp_lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ler_d(r0,r1,r2) vcmp01_d(ARM_CC_HS,ARM_CC_LS,r0,r1,r2) # define vfp_lei_d(r0,r1,i0) _vfp_lei_d(_jit,r0,r1,i0) -static void _vfp_lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_eqr_f(r0,r1,r2) vcmp01_f(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2) # define vfp_eqi_f(r0,r1,i0) _vfp_eqi_f(_jit,r0,r1,i0) -static void _vfp_eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_eqr_d(r0,r1,r2) vcmp01_d(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2) # define vfp_eqi_d(r0,r1,i0) _vfp_eqi_d(_jit,r0,r1,i0) -static void _vfp_eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ger_f(r0,r1,r2) vcmp01_f(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define vfp_gei_f(r0,r1,i0) _vfp_gei_f(_jit,r0,r1,i0) -static void _vfp_gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ger_d(r0,r1,r2) vcmp01_d(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define vfp_gei_d(r0,r1,i0) _vfp_gei_d(_jit,r0,r1,i0) -static void _vfp_gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_gtr_f(r0,r1,r2) vcmp01_f(ARM_CC_LE,ARM_CC_GT,r0,r1,r2) # define vfp_gti_f(r0,r1,i0) _vfp_gti_f(_jit,r0,r1,i0) -static void _vfp_gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_gtr_d(r0,r1,r2) vcmp01_d(ARM_CC_LE,ARM_CC_GT,r0,r1,r2) # define vfp_gti_d(r0,r1,i0) _vfp_gti_d(_jit,r0,r1,i0) -static void _vfp_gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ner_f(r0,r1,r2) vcmp01_f(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2) # define vfp_nei_f(r0,r1,i0) _vfp_nei_f(_jit,r0,r1,i0) -static void _vfp_nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ner_d(r0,r1,r2) vcmp01_d(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2) # define vfp_nei_d(r0,r1,i0) _vfp_nei_d(_jit,r0,r1,i0) -static void _vfp_nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vcmp10_x(c0,r0) _vcmp10_x(_jit,c0,r0) -static void _vcmp10_x(jit_state_t*,int,jit_int32_t); +static void _vcmp10_x(jit_state_t*,int,int32_t); # define vcmp_10_f(c0,r0,r1,r2) _vcmp_10_f(_jit,c0,r0,r1,r2) -static void _vcmp_10_f(jit_state_t*,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp_10_f(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); # define vcmp_10_d(c0,r0,r1,r2) _vcmp_10_d(_jit,c0,r0,r1,r2) -static void _vcmp_10_d(jit_state_t*,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp_10_d(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); # define vfp_unltr_f(r0,r1,r2) vcmp_10_f(ARM_CC_GE,r0,r1,r2) # define vfp_unlti_f(r0,r1,i0) _vfp_unlti_f(_jit,r0,r1,i0) -static void _vfp_unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_unltr_d(r0,r1,r2) vcmp_10_d(ARM_CC_GE,r0,r1,r2) # define vfp_unlti_d(r0,r1,i0) _vfp_unlti_d(_jit,r0,r1,i0) -static void _vfp_unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_unler_f(r0,r1,r2) vcmp_10_f(ARM_CC_GT,r0,r1,r2) # define vfp_unlei_f(r0,r1,i0) _vfp_unlei_f(_jit,r0,r1,i0) -static void _vfp_unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_unler_d(r0,r1,r2) vcmp_10_d(ARM_CC_GT,r0,r1,r2) # define vfp_unlei_d(r0,r1,i0) _vfp_unlei_d(_jit,r0,r1,i0) -static void _vfp_unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_uneqr_x(r0) _vfp_uneqr_x(_jit,r0) -static void _vfp_uneqr_x(jit_state_t*,jit_int32_t); +static void _vfp_uneqr_x(jit_state_t*,int32_t); # define vfp_uneqr_f(r0,r1,r2) _vfp_uneqr_f(_jit,r0,r1,r2) -static void _vfp_uneqr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_uneqi_f(r0,r1,i0) _vfp_uneqi_f(_jit,r0,r1,i0) -static void _vfp_uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_uneqr_d(r0,r1,r2) _vfp_uneqr_d(_jit,r0,r1,r2) -static void _vfp_uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_uneqi_d(r0,r1,i0) _vfp_uneqi_d(_jit,r0,r1,i0) -static void _vfp_uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vcmp_01_x(c0,r0) _vcmp_01_x(_jit,c0,r0) -static void _vcmp_01_x(jit_state_t*,int,jit_int32_t); +static void _vcmp_01_x(jit_state_t*,int,int32_t); # define vcmp_01_f(c0,r0,r1,r2) _vcmp_01_f(_jit,c0,r0,r1,r2) -static void _vcmp_01_f(jit_state_t*,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp_01_f(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); # define vcmp_01_d(c0,r0,r1,r2) _vcmp_01_d(_jit,c0,r0,r1,r2) -static void _vcmp_01_d(jit_state_t*,int,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vcmp_01_d(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); # define vfp_unger_f(r0,r1,r2) vcmp_01_f(ARM_CC_CS,r0,r1,r2) # define vfp_ungei_f(r0,r1,i0) _vfp_ungei_f(_jit,r0,r1,i0) -static void _vfp_ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_unger_d(r0,r1,r2) vcmp_01_d(ARM_CC_CS,r0,r1,r2) # define vfp_ungei_d(r0,r1,i0) _vfp_ungei_d(_jit,r0,r1,i0) -static void _vfp_ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ungtr_f(r0,r1,r2) vcmp_01_f(ARM_CC_HI,r0,r1,r2) # define vfp_ungti_f(r0,r1,i0) _vfp_ungti_f(_jit,r0,r1,i0) -static void _vfp_ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ungtr_d(r0,r1,r2) vcmp_01_d(ARM_CC_HI,r0,r1,r2) # define vfp_ungti_d(r0,r1,i0) _vfp_ungti_d(_jit,r0,r1,i0) -static void _vfp_ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ltgtr_x(r0) _vfp_ltgtr_x(_jit,r0) -static void _vfp_ltgtr_x(jit_state_t*,jit_int32_t); +static void _vfp_ltgtr_x(jit_state_t*,int32_t); # define vfp_ltgtr_f(r0,r1,r2) _vfp_ltgtr_f(_jit,r0,r1,r2) -static void _vfp_ltgtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ltgti_f(r0,r1,i0) _vfp_ltgti_f(_jit,r0,r1,i0) -static void _vfp_ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ltgtr_d(r0,r1,r2) _vfp_ltgtr_d(_jit,r0,r1,r2) -static void _vfp_ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ltgti_d(r0,r1,i0) _vfp_ltgti_d(_jit,r0,r1,i0) -static void _vfp_ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_ordr_f(r0,r1,r2) _vfp_ordr_f(_jit,r0,r1,r2) -static void _vfp_ordr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ordi_f(r0,r1,i0) _vfp_ordi_f(_jit,r0,r1,i0) -static void _vfp_ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_ordr_d(r0,r1,r2) _vfp_ordr_d(_jit,r0,r1,r2) -static void _vfp_ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ordi_d(r0,r1,i0) _vfp_ordi_d(_jit,r0,r1,i0) -static void _vfp_ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vfp_unordr_f(r0,r1,r2) _vfp_unordr_f(_jit,r0,r1,r2) -static void _vfp_unordr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_unordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_unordi_f(r0,r1,i0) _vfp_unordi_f(_jit,r0,r1,i0) -static void _vfp_unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t); +static void _vfp_unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); # define vfp_unordr_d(r0,r1,r2) _vfp_unordr_d(_jit,r0,r1,r2) -static void _vfp_unordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_unordi_d(r0,r1,i0) _vfp_unordi_d(_jit,r0,r1,i0) -static void _vfp_unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t); +static void _vfp_unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); # define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0) static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t); # define vbcmp_f(cc,i0,r0,r1) _vbcmp_f(_jit,cc,i0,r0,r1) static jit_word_t -_vbcmp_f(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +_vbcmp_f(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0) static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t); # define vbcmp_d(cc,i0,r0,r1) _vbcmp_d(_jit,cc,i0,r0,r1) static jit_word_t -_vbcmp_d(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +_vbcmp_d(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define vfp_bltr_f(i0,r0,r1) vbcmp_f(ARM_CC_MI,i0,r0,r1) # define vfp_blti_f(i0,r0,i1) _vfp_blti_f(_jit,i0,r0,i1) -static jit_word_t _vfp_blti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bltr_d(i0,r0,r1) vbcmp_d(ARM_CC_MI,i0,r0,r1) -static jit_word_t _vfp_blti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_blti_d(i0,r0,i1) _vfp_blti_d(_jit,i0,r0,i1) # define vfp_bler_f(i0,r0,r1) vbcmp_f(ARM_CC_LS,i0,r0,r1) # define vfp_blei_f(i0,r0,i1) _vfp_blei_f(_jit,i0,r0,i1) -static jit_word_t _vfp_blei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bler_d(i0,r0,r1) vbcmp_d(ARM_CC_LS,i0,r0,r1) # define vfp_blei_d(i0,r0,i1) _vfp_blei_d(_jit,i0,r0,i1) -static jit_word_t _vfp_blei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_beqr_f(i0,r0,r1) vbcmp_f(ARM_CC_EQ,i0,r0,r1) # define vfp_beqi_f(i0,r0,i1) _vfp_beqi_f(_jit,i0,r0,i1) -static jit_word_t _vfp_beqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_beqr_d(i0,r0,r1) vbcmp_d(ARM_CC_EQ,i0,r0,r1) # define vfp_beqi_d(i0,r0,i1) _vfp_beqi_d(_jit,i0,r0,i1) -static jit_word_t _vfp_beqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bger_f(i0,r0,r1) vbcmp_f(ARM_CC_GE,i0,r0,r1) # define vfp_bgei_f(i0,r0,i1) _vfp_bgei_f(_jit,i0,r0,i1) -static jit_word_t _vfp_bgei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bger_d(i0,r0,r1) vbcmp_d(ARM_CC_GE,i0,r0,r1) # define vfp_bgei_d(i0,r0,i1) _vfp_bgei_d(_jit,i0,r0,i1) -static jit_word_t _vfp_bgei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bgtr_f(i0,r0,r1) vbcmp_f(ARM_CC_GT,i0,r0,r1) # define vfp_bgti_f(i0,r0,i1) _vfp_bgti_f(_jit,i0,r0,i1) -static jit_word_t _vfp_bgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bgtr_d(i0,r0,r1) vbcmp_d(ARM_CC_GT,i0,r0,r1) # define vfp_bgti_d(i0,r0,i1) _vfp_bgti_d(_jit,i0,r0,i1) -static jit_word_t _vfp_bgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bner_f(i0,r0,r1) vbcmp_f(ARM_CC_NE,i0,r0,r1) # define vfp_bnei_f(i0,r0,i1) _vfp_bnei_f(_jit,i0,r0,i1) -static jit_word_t _vfp_bnei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +static jit_word_t _vfp_bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bner_d(i0,r0,r1) vbcmp_d(ARM_CC_NE,i0,r0,r1) # define vfp_bnei_d(i0,r0,i1) _vfp_bnei_d(_jit,i0,r0,i1) -static jit_word_t _vfp_bnei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +static jit_word_t _vfp_bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vbncmp_x(cc,i0) _vbncmp_x(_jit,cc,i0) static jit_word_t _vbncmp_x(jit_state_t*,int,jit_word_t); # define vbncmp_f(cc,i0,r0,r1) _vbncmp_f(_jit,cc,i0,r0,r1) static jit_word_t -_vbncmp_f(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +_vbncmp_f(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define vbncmp_d(cc,i0,r0,r1) _vbncmp_d(_jit,cc,i0,r0,r1) static jit_word_t -_vbncmp_d(jit_state_t*,int,jit_word_t,jit_int32_t,jit_int32_t); +_vbncmp_d(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); # define vfp_bunltr_f(i0,r0,r1) vbncmp_f(ARM_CC_GE,i0,r0,r1) # define vfp_bunlti_f(i0,r0,i1) _vfp_bunlti_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bunlti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bunltr_d(i0,r0,r1) vbncmp_d(ARM_CC_GE,i0,r0,r1) # define vfp_bunlti_d(i0,r0,i1) _vfp_bunlti_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bunlti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bunler_f(i0,r0,r1) vbncmp_f(ARM_CC_GT,i0,r0,r1) # define vfp_bunlei_f(i0,r0,i1) _vfp_bunlei_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bunlei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bunler_d(i0,r0,r1) vbncmp_d(ARM_CC_GT,i0,r0,r1) # define vfp_bunlei_d(i0,r0,i1) _vfp_bunlei_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bunlei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_buneqr_x(i0) _vfp_buneqr_x(_jit,i0) static jit_word_t _vfp_buneqr_x(jit_state_t*,jit_word_t); # define vfp_buneqr_f(i0,r0,r1) _vfp_buneqr_f(_jit,i0,r0,r1) static jit_word_t -_vfp_buneqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_buneqi_f(i0,r0,i1) _vfp_buneqi_f(_jit,i0,r0,i1) static jit_word_t -_vfp_buneqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_buneqr_d(i0,r0,r1) _vfp_buneqr_d(_jit,i0,r0,r1) static jit_word_t -_vfp_buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_buneqi_d(i0,r0,i1) _vfp_buneqi_d(_jit,i0,r0,i1) static jit_word_t -_vfp_buneqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bunger_x(i0) _vfp_bunger_x(_jit,i0) static jit_word_t _vfp_bunger_x(jit_state_t*,jit_word_t); # define vfp_bunger_f(i0,r0,r1) _vfp_bunger_f(_jit,i0,r0,r1) static jit_word_t -_vfp_bunger_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_bunger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_bungei_f(i0,r0,i1) _vfp_bungei_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bungei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bunger_d(i0,r0,r1) _vfp_bunger_d(_jit,i0,r0,r1) static jit_word_t -_vfp_bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_bungei_d(i0,r0,i1) _vfp_bungei_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bungei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bungtr_f(i0,r0,r1) vbcmp_f(ARM_CC_HI,i0,r0,r1) # define vfp_bungti_f(i0,r0,i1) _vfp_bungti_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bungti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bungtr_d(i0,r0,r1) vbcmp_d(ARM_CC_HI,i0,r0,r1) # define vfp_bungti_d(i0,r0,i1) _vfp_bungti_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bungti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bltgtr_x(i0) _vfp_bltgtr_x(_jit,i0) static jit_word_t _vfp_bltgtr_x(jit_state_t*,jit_word_t); # define vfp_bltgtr_f(i0,r0,r1) _vfp_bltgtr_f(_jit,i0,r0,r1) static jit_word_t -_vfp_bltgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_bltgti_f(i0,r0,i1) _vfp_bltgti_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bltgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bltgtr_d(i0,r0,r1) _vfp_bltgtr_d(_jit,i0,r0,r1) static jit_word_t -_vfp_bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +_vfp_bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_bltgti_d(i0,r0,i1) _vfp_bltgti_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bltgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bordr_f(i0,r0,r1) vbcmp_f(ARM_CC_VC,i0,r0,r1) # define vfp_bordi_f(i0,r0,i1) _vfp_bordi_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bordr_d(i0,r0,r1) vbcmp_d(ARM_CC_VC,i0,r0,r1) # define vfp_bordi_d(i0,r0,i1) _vfp_bordi_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_bunordr_f(i0,r0,r1) vbcmp_f(ARM_CC_VS,i0,r0,r1) # define vfp_bunordi_f(i0,r0,i1) _vfp_bunordi_f(_jit,i0,r0,i1) static jit_word_t -_vfp_bunordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t); +_vfp_bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); # define vfp_bunordr_d(i0,r0,r1) vbcmp_d(ARM_CC_VS,i0,r0,r1) # define vfp_bunordi_d(i0,r0,i1) _vfp_bunordi_d(_jit,i0,r0,i1) static jit_word_t -_vfp_bunordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t); +_vfp_bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); # define vfp_ldr_f(r0,r1) VLDR_F32(r0,r1,0) # define vfp_ldr_d(r0,r1) VLDR_F64(r0,r1,0) # define vfp_ldi_f(r0,i0) _vfp_ldi_f(_jit,r0,i0) -static void _vfp_ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _vfp_ldi_f(jit_state_t*,int32_t,jit_word_t); # define vfp_ldi_d(r0,i0) _vfp_ldi_d(_jit,r0,i0) -static void _vfp_ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _vfp_ldi_d(jit_state_t*,int32_t,jit_word_t); # define vfp_ldxr_f(r0,r1,r2) _vfp_ldxr_f(_jit,r0,r1,r2) -static void _vfp_ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ldxr_d(r0,r1,r2) _vfp_ldxr_d(_jit,r0,r1,r2) -static void _vfp_ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_ldxi_f(r0,r1,i0) _vfp_ldxi_f(_jit,r0,r1,i0) -static void _vfp_ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _vfp_ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define vfp_ldxi_d(r0,r1,i0) _vfp_ldxi_d(_jit,r0,r1,i0) -static void _vfp_ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _vfp_ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define vfp_str_f(r0,r1) VSTR_F32(r1,r0,0) # define vfp_str_d(r0,r1) VSTR_F64(r1,r0,0) # define vfp_sti_f(i0,r0) _vfp_sti_f(_jit,i0,r0) -static void _vfp_sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _vfp_sti_f(jit_state_t*,jit_word_t,int32_t); # define vfp_sti_d(i0,r0) _vfp_sti_d(_jit,i0,r0) -static void _vfp_sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _vfp_sti_d(jit_state_t*,jit_word_t,int32_t); # define vfp_stxr_f(r0,r1,r2) _vfp_stxr_f(_jit,r0,r1,r2) -static void _vfp_stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_stxr_d(r0,r1,r2) _vfp_stxr_d(_jit,r0,r1,r2) -static void _vfp_stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _vfp_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define vfp_stxi_f(i0,r0,r1) _vfp_stxi_f(_jit,i0,r0,r1) -static void _vfp_stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _vfp_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_stxi_d(i0,r0,r1) _vfp_stxi_d(_jit,i0,r0,r1) -static void _vfp_stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _vfp_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vfp_vaarg_d(r0, r1) _vfp_vaarg_d(_jit, r0, r1) -static void _vfp_vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vfp_vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE @@ -1205,7 +1205,7 @@ _cc_vorsl(jit_state_t *_jit, int cc, int o, int r0, int r1, int i0) } static void -_vfp_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) { if (jit_fpr_p(r1)) { @@ -1222,7 +1222,7 @@ _vfp_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) { if (jit_fpr_p(r1)) { @@ -1243,14 +1243,14 @@ _vfp_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) +_vfp_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } u; - jit_int32_t reg; - jit_int32_t code; + int32_t reg; + int32_t code; u.f = i0; if (jit_fpr_p(r0)) { /* float arguments are packed, for others, @@ -1271,14 +1271,14 @@ _vfp_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t i0) } static void -_vfp_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) +_vfp_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0) { union { - jit_int32_t i[2]; + int32_t i[2]; jit_float64_t d; } u; - jit_int32_t code; - jit_int32_t rg0, rg1; + int32_t code; + int32_t rg0, rg1; u.d = i0; if (jit_fpr_p(r0)) { if ((code = encode_vfp_double(1, 0, u.i[0], u.i[1])) != -1 || @@ -1301,9 +1301,9 @@ _vfp_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t i0) } static void -_vfp_extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (jit_fpr_p(r0)) VCVT_F64_F32(r0, r1); @@ -1327,9 +1327,9 @@ _vfp_extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (jit_fpr_p(r0)) VCVT_F32_F64(r0, r1); @@ -1353,9 +1353,9 @@ _vfp_extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { VMOV_V_I32(r0, r1); VCVT_F32_S32(r0, r0); @@ -1370,9 +1370,9 @@ _vfp_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { VMOV_V_I32(r0, r1); VCVT_F64_S32(r0, r0); @@ -1387,9 +1387,9 @@ _vfp_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); if (jit_fpr_p(r1)) VCVT_S32_F32(rn(reg), r1); @@ -1402,9 +1402,9 @@ _vfp_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); if (jit_fpr_p(r1)) VCVT_S32_F64(rn(reg), r1); @@ -1419,9 +1419,9 @@ _vfp_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # define fopi(name) \ static void \ _vfp_##name##i_f(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) \ + int32_t r0, jit_int32_t r1, jit_float32_t i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ vfp_movi_f(rn(reg), i0); \ vfp_##name##r_f(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -1429,9 +1429,9 @@ _vfp_##name##i_f(jit_state_t *_jit, \ # define dopi(name) \ static void \ _vfp_##name##i_d(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) \ + int32_t r0, jit_int32_t r1, jit_float64_t i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ vfp_movi_d(rn(reg), i0); \ vfp_##name##r_d(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -1439,10 +1439,10 @@ _vfp_##name##i_d(jit_state_t *_jit, \ # define fbopi(name) \ static jit_word_t \ _vfp_b##name##i_f(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float32_t i0) \ + int32_t r0, jit_int32_t r1, jit_float32_t i0) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ vfp_movi_f(rn(reg), i0); \ word = vfp_b##name##r_f(r0, r1, rn(reg)); \ @@ -1452,10 +1452,10 @@ _vfp_b##name##i_f(jit_state_t *_jit, \ # define dbopi(name) \ static jit_word_t \ _vfp_b##name##i_d(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, jit_float64_t i0) \ + int32_t r0, jit_int32_t r1, jit_float64_t i0) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ vfp_movi_d(rn(reg), i0); \ word = vfp_b##name##r_d(r0, r1, rn(reg)); \ @@ -1475,9 +1475,9 @@ fopi(div) dopi(div) static void -_vfp_cmp_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_cmp_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0)) { if (jit_fpr_p(r1)) VCMP_F32(r0, r1); @@ -1504,9 +1504,9 @@ _vfp_cmp_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_cmp_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_cmp_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0, rg1; + int32_t rg0, rg1; if (jit_fpr_p(r0)) { if (jit_fpr_p(r1)) VCMP_F64(r0, r1); @@ -1533,7 +1533,7 @@ _vfp_cmp_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_vcmp01_x(jit_state_t *_jit, int c0, int c1, jit_int32_t r0) +_vcmp01_x(jit_state_t *_jit, int c0, int c1, int32_t r0) { VMRS(_R15_REGNO); if (jit_thumb_p()) { @@ -1571,7 +1571,7 @@ _vcmp01_x(jit_state_t *_jit, int c0, int c1, jit_int32_t r0) static void _vcmp01_f(jit_state_t *_jit, int c0, int c1, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vcmp01_x(c0, c1, r0); @@ -1579,14 +1579,14 @@ _vcmp01_f(jit_state_t *_jit, int c0, int c1, static void _vcmp01_d(jit_state_t *_jit, int c0, int c1, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vcmp01_x(c0, c1, r0); } static void -_vcmp10_x(jit_state_t *_jit, int cc, jit_int32_t r0) +_vcmp10_x(jit_state_t *_jit, int cc, int32_t r0) { if (jit_thumb_p()) { if (r0 < 8) { @@ -1610,7 +1610,7 @@ _vcmp10_x(jit_state_t *_jit, int cc, jit_int32_t r0) } static void _vcmp_10_f(jit_state_t *_jit, int cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vcmp10_x(cc, r0); @@ -1618,7 +1618,7 @@ _vcmp_10_f(jit_state_t *_jit, int cc, static void _vcmp_10_d(jit_state_t *_jit, int cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vcmp10_x(cc, r0); @@ -1642,7 +1642,7 @@ fopi(unle) dopi(unle) static void -_vfp_uneqr_x(jit_state_t *_jit, jit_int32_t r0) +_vfp_uneqr_x(jit_state_t *_jit, int32_t r0) { VMRS(_R15_REGNO); if (jit_thumb_p()) { @@ -1668,7 +1668,7 @@ _vfp_uneqr_x(jit_state_t *_jit, jit_int32_t r0) } static void -_vfp_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vfp_uneqr_x(r0); @@ -1677,7 +1677,7 @@ _vfp_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(uneq) static void -_vfp_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vfp_uneqr_x(r0); @@ -1686,7 +1686,7 @@ _vfp_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(uneq) static void -_vcmp_01_x(jit_state_t *_jit, int cc, jit_int32_t r0) +_vcmp_01_x(jit_state_t *_jit, int cc, int32_t r0) { if (jit_thumb_p()) { if (r0 < 8) { @@ -1711,7 +1711,7 @@ _vcmp_01_x(jit_state_t *_jit, int cc, jit_int32_t r0) static void _vcmp_01_f(jit_state_t *_jit, int cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vcmp_01_x(cc, r0); @@ -1719,7 +1719,7 @@ _vcmp_01_f(jit_state_t *_jit, int cc, static void _vcmp_01_d(jit_state_t *_jit, int cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vcmp_01_x(cc, r0); @@ -1731,7 +1731,7 @@ fopi(ungt) dopi(ungt) static void -_vfp_ltgtr_x(jit_state_t *_jit, jit_int32_t r0) +_vfp_ltgtr_x(jit_state_t *_jit, int32_t r0) { VMRS(_R15_REGNO); if (jit_thumb_p()) { @@ -1757,7 +1757,7 @@ _vfp_ltgtr_x(jit_state_t *_jit, jit_int32_t r0) } static void -_vfp_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vfp_ltgtr_x(r0); @@ -1766,7 +1766,7 @@ _vfp_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ltgt) static void -_vfp_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vfp_ltgtr_x(r0); @@ -1775,7 +1775,7 @@ _vfp_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ltgt) static void -_vfp_ordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vcmp10_x(ARM_CC_VS, r0); @@ -1784,7 +1784,7 @@ _vfp_ordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ord) static void -_vfp_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vcmp10_x(ARM_CC_VS, r0); @@ -1793,7 +1793,7 @@ _vfp_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ord) static void -_vfp_unordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_unordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_f(r1, r2); vcmp_01_x(ARM_CC_VS, r0); @@ -1802,7 +1802,7 @@ _vfp_unordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unord) static void -_vfp_unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { vfp_cmp_d(r1, r2); vcmp_01_x(ARM_CC_VS, r0); @@ -1832,7 +1832,7 @@ _vbcmp_x(jit_state_t *_jit, int cc, jit_word_t i0) static jit_word_t _vbcmp_f(jit_state_t *_jit, int cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_f(r0, r1); return (vbcmp_x(cc, i0)); @@ -1840,7 +1840,7 @@ _vbcmp_f(jit_state_t *_jit, int cc, static jit_word_t _vbcmp_d(jit_state_t *_jit, int cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_d(r0, r1); return (vbcmp_x(cc, i0)); @@ -1872,7 +1872,7 @@ _vbncmp_x(jit_state_t *_jit, int cc, jit_word_t i0) static jit_word_t _vbncmp_f(jit_state_t *_jit, int cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_f(r0, r1); return (vbncmp_x(cc, i0)); @@ -1880,7 +1880,7 @@ _vbncmp_f(jit_state_t *_jit, int cc, static jit_word_t _vbncmp_d(jit_state_t *_jit, int cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_d(r0, r1); return (vbncmp_x(cc, i0)); @@ -1934,7 +1934,7 @@ _vfp_buneqr_x(jit_state_t *_jit, jit_word_t i0) } static jit_word_t -_vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_f(r0, r1); return (vfp_buneqr_x(i0)); @@ -1943,7 +1943,7 @@ _vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(uneq) static jit_word_t -_vfp_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_d(r0, r1); return (vfp_buneqr_x(i0)); @@ -1976,7 +1976,7 @@ _vfp_bunger_x(jit_state_t *_jit, jit_word_t i0) } static jit_word_t -_vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_f(r0, r1); return (vfp_bunger_x(i0)); @@ -1985,7 +1985,7 @@ _vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(unge) static jit_word_t -_vfp_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_d(r0, r1); return (vfp_bunger_x(i0)); @@ -2023,7 +2023,7 @@ _vfp_bltgtr_x(jit_state_t *_jit, jit_word_t i0) } static jit_word_t -_vfp_bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_f(r0, r1); return (vfp_bltgtr_x(i0)); @@ -2034,7 +2034,7 @@ dbopi(ungt) fbopi(ltgt) static jit_word_t -_vfp_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { vfp_cmp_d(r0, r1); return (vfp_bltgtr_x(i0)); @@ -2047,9 +2047,9 @@ fbopi(unord) dbopi(unord) static void -_vfp_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_vfp_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t gpr; + int32_t gpr; if (jit_fpr_p(r0)) { gpr = jit_get_reg(jit_class_gpr); movi(rn(gpr), i0); @@ -2061,9 +2061,9 @@ _vfp_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_vfp_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_vfp_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_fpr_p(r0)) @@ -2076,9 +2076,9 @@ _vfp_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_vfp_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); @@ -2090,9 +2090,9 @@ _vfp_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_vfp_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); if (jit_fpr_p(r0)) @@ -2105,9 +2105,9 @@ _vfp_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_vfp_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_vfp_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { if (i0 >= 0) { assert(!(i0 & 3)); @@ -2138,9 +2138,9 @@ _vfp_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_vfp_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_vfp_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { if (i0 >= 0) { assert(!(i0 & 3)); @@ -2176,9 +2176,9 @@ _vfp_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_vfp_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_vfp_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r0)) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -2190,9 +2190,9 @@ _vfp_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_vfp_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_vfp_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); if (jit_fpr_p(r0)) @@ -2205,9 +2205,9 @@ _vfp_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_vfp_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r2)) { reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); @@ -2219,9 +2219,9 @@ _vfp_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_vfp_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_vfp_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); if (jit_fpr_p(r2)) @@ -2234,9 +2234,9 @@ _vfp_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (i0 >= 0) { assert(!(i0 & 3)); @@ -2267,9 +2267,9 @@ _vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (jit_fpr_p(r1)) { if (i0 >= 0) { assert(!(i0 & 3)); @@ -2305,9 +2305,9 @@ _vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_vfp_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vfp_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/arm.c b/jit/arm.c index ee98c4749..9aeff94af 100644 --- a/jit/arm.c +++ b/jit/arm.c @@ -50,8 +50,8 @@ * Types */ typedef union _jit_thumb_t { - jit_int32_t i; - jit_int16_t s[2]; + int32_t i; + int16_t s[2]; } jit_thumb_t; typedef jit_pointer_t jit_va_list; @@ -66,13 +66,13 @@ static jit_node_t *_jit_make_arg_f(jit_state_t*,jit_node_t*); #define jit_make_arg_d(node) _jit_make_arg_d(_jit,node) static jit_node_t *_jit_make_arg_d(jit_state_t*,jit_node_t*); #define jit_get_reg_pair() _jit_get_reg_pair(_jit) -static jit_int32_t _jit_get_reg_pair(jit_state_t*); +static int32_t _jit_get_reg_pair(jit_state_t*); #define jit_unget_reg_pair(rn) _jit_unget_reg_pair(_jit,rn) -static void _jit_unget_reg_pair(jit_state_t*,jit_int32_t); +static void _jit_unget_reg_pair(jit_state_t*,int32_t); # define must_align_p(node) _must_align_p(_jit, node) static jit_bool_t _must_align_p(jit_state_t*,jit_node_t*); #define load_const(uniq,r0,i0) _load_const(_jit,uniq,r0,i0) -static void _load_const(jit_state_t*,jit_bool_t,jit_int32_t,jit_word_t); +static void _load_const(jit_state_t*,jit_bool_t,int32_t,jit_word_t); #define flush_consts() _flush_consts(_jit) static void _flush_consts(jit_state_t*); #define invalidate_consts() _invalidate_consts(_jit) @@ -206,7 +206,7 @@ jit_get_cpu(void) void _jit_init(jit_state_t *_jit) { - jit_int32_t regno; + int32_t regno; static jit_bool_t first = 1; _jitc->reglen = jit_size(_rvs) - 1; @@ -229,7 +229,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -255,7 +255,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = 0; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -274,8 +274,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -293,13 +293,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -326,7 +326,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -346,7 +346,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (jit_cpu.abi) { @@ -378,7 +378,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (jit_cpu.abi) { @@ -438,7 +438,7 @@ _jit_arg_register_p(jit_state_t *_jit, jit_node_t *u) static jit_node_t * _jit_make_arg(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; else { @@ -458,7 +458,7 @@ _jit_make_arg(jit_state_t *_jit, jit_node_t *node) jit_node_t * _jit_make_arg_f(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; if (jit_cpu.abi && !(_jitc->function->self.call & jit_call_varargs)) { if (jit_arg_f_reg_p(_jitc->function->self.argf)) { offset = _jitc->function->self.argf++; @@ -487,7 +487,7 @@ done: jit_node_t * _jit_make_arg_d(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; if (jit_cpu.abi && !(_jitc->function->self.call & jit_call_varargs)) { if (jit_arg_d_reg_p(_jitc->function->self.argf)) { if (_jitc->function->self.argf & 1) @@ -550,7 +550,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -579,7 +579,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -593,7 +593,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -607,7 +607,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -621,7 +621,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -635,7 +635,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -649,7 +649,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -665,7 +665,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_swf_p()) { @@ -686,7 +686,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -708,7 +708,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -732,7 +732,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_cpu.abi) { @@ -764,7 +764,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -786,7 +786,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -810,7 +810,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_cpu.abi) { @@ -842,7 +842,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -861,7 +861,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -880,7 +880,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -908,7 +908,7 @@ done: void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -943,7 +943,7 @@ done: } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -979,7 +979,7 @@ done: void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -1015,9 +1015,9 @@ done: } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { regno = JIT_RA0 - regno; @@ -1034,7 +1034,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *node; assert(_jitc->function); @@ -1069,7 +1069,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -1077,7 +1077,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -1085,7 +1085,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -1093,7 +1093,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -1101,7 +1101,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); if (r0 != JIT_RET) @@ -1110,7 +1110,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); if (jit_cpu.abi) { @@ -1123,7 +1123,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); if (jit_cpu.abi) { @@ -1141,21 +1141,21 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; - jit_uint8_t *data; + uint8_t *data; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif jit_uword_t thumb; #if DISASSEMBLER - jit_int32_t info_offset; + int32_t info_offset; #endif - jit_int32_t const_offset; - jit_int32_t patch_offset; + int32_t const_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1974,7 +1974,7 @@ _emit_code(jit_state_t *_jit) if (!jit_thumb_p() && (node->code == jit_code_movi || node->code == jit_code_calli)) { /* calculate where to patch word */ - value = *(jit_int32_t *)word; + value = *(int32_t *)word; assert((value & 0x0f700000) == ARM_LDRI); /* offset may become negative (-4) if last instruction * before unconditional branch and data following @@ -2016,19 +2016,19 @@ jit_flush(void *fptr, void *tptr) } void -_emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_i(rn(r0), rn(r1), i0); } void -_emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi_i(i0, rn(r0), rn(r1)); } void -_emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (jit_swf_p()) swf_ldxi_d(rn(r0), rn(r1), i0); @@ -2037,7 +2037,7 @@ _emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } void -_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (jit_swf_p()) swf_stxi_d(i0, rn(r0), rn(r1)); @@ -2045,7 +2045,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) vfp_stxi_d(i0, rn(r0), rn(r1)); } -static jit_int32_t +static int32_t _jit_get_reg_pair(jit_state_t *_jit) { /* bypass jit_get_reg() with argument or'ed with jit_class_chk @@ -2081,7 +2081,7 @@ _jit_get_reg_pair(jit_state_t *_jit) } static void -_jit_unget_reg_pair(jit_state_t *_jit, jit_int32_t reg) +_jit_unget_reg_pair(jit_state_t *_jit, int32_t reg) { jit_unget_reg(reg); switch (reg) { @@ -2119,14 +2119,14 @@ _must_align_p(jit_state_t *_jit, jit_node_t *node) } static void -_load_const(jit_state_t *_jit, jit_bool_t uniq, jit_int32_t r0, jit_word_t i0) +_load_const(jit_state_t *_jit, jit_bool_t uniq, int32_t r0, jit_word_t i0) { jit_word_t w; jit_word_t d; jit_word_t base; - jit_int32_t *data; - jit_int32_t size; - jit_int32_t offset; + int32_t *data; + int32_t size; + int32_t offset; assert(!jit_thumb_p()); if (!uniq) { @@ -2145,7 +2145,7 @@ _load_const(jit_state_t *_jit, jit_bool_t uniq, jit_int32_t r0, jit_word_t i0) */ /* search in previous constant pool */ - if ((data = (jit_int32_t *)_jitc->consts.data)) { + if ((data = (int32_t *)_jitc->consts.data)) { w = (jit_word_t)data; /* maximum backwards offset */ base = (_jit->pc.w + 8) - 4092; @@ -2196,7 +2196,7 @@ static void _flush_consts(jit_state_t *_jit) { jit_word_t word; - jit_int32_t offset; + int32_t offset; /* if no forward constants */ if (!_jitc->consts.length) @@ -2243,8 +2243,8 @@ _invalidate_consts(jit_state_t *_jit) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; - jit_int32_t kind; + int32_t flag; + int32_t kind; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) { diff --git a/jit/arm.h b/jit/arm.h index 496e89b1b..a45625453 100644 --- a/jit/arm.h +++ b/jit/arm.h @@ -105,18 +105,18 @@ typedef enum { } jit_reg_t; typedef struct { - jit_uint32_t version : 4; - jit_uint32_t extend : 1; + uint32_t version : 4; + uint32_t extend : 1; /* only generate thumb instructions for thumb2 */ - jit_uint32_t thumb : 1; - jit_uint32_t vfp : 3; - jit_uint32_t neon : 1; - jit_uint32_t abi : 2; + uint32_t thumb : 1; + uint32_t vfp : 3; + uint32_t neon : 1; + uint32_t abi : 2; /* use strt+offset instead of str.w? * on special cases it causes a SIGILL at least on qemu, probably * due to some memory ordering constraint not being respected, so, * disable by default */ - jit_uint32_t ldrt_strt : 1; + uint32_t ldrt_strt : 1; } jit_cpu_t; /* diff --git a/jit/hppa-cpu.c b/jit/hppa-cpu.c index 4318f062a..59ec844eb 100644 --- a/jit/hppa-cpu.c +++ b/jit/hppa-cpu.c @@ -48,142 +48,142 @@ typedef struct udiv { #define _CR11_REGNO 11 #define ii(v) *_jit->pc.ui++ = v #define f1(o,b,t,i) _f1(_jit,o,b,t,i) -static void _f1(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f1(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f2(o,b,r,i,j) _f2(_jit,o,b,r,i,j) -static void _f2(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f2(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f3(o,b,t,i,j) _f3(_jit,o,b,t,i,j) -static void _f3(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f3(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f4(o,b,x,s,u,y,c,z,m,t) _f4(_jit,o,b,x,s,u,y,c,z,m,t) -static void _f4(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f4(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f5(o,b,i,s,a,y,c,z,m,t) _f5(_jit,o,b,i,s,a,y,c,z,m,t) -static void _f5(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f5(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f6(o,b,r,s,a,x,c,y,m,i) _f6(_jit,o,b,r,s,a,x,c,y,m,i) -static void _f6(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f6(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f7(o,r,i) _f7(_jit,o,r,i) -static void _f7(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f7(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define f8(o,r2,r1,cf,e1,x,e2,y,d,t) _f8(_jit,o,r2,r1,cf,e1,x,e2,y,d,t) -static void _f8(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f8(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f9(o,r,t,cf,e1,im) _f9(_jit,o,r,t,cf,e1,im) static void _f9(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f10(o,r2,r1,u,v,w,x,sa,y,t) _f10(_jit,o,r2,r1,u,v,w,x,sa,y,t) -static void _f10(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f10(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f11(o,r2,r1,c,x,y,z,u,t) _f11(_jit,o,r2,r1,c,x,y,z,u,t) -static void _f11(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f11(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f12(o,r,t,c,x,se,y,c1,z,clen) _f12(_jit,o,r,t,c,x,se,y,c1,z,clen) -static void _f12(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f12(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f13(o,t,r,c,x,nz,c1,clen) _f13(_jit,o,t,r,c,x,nz,c1,clen) -static void _f13(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f13(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f13x(o,t,i,c,x,nz,c1,clen) _f13x(_jit,o,t,i,c,x,nz,c1,clen) -static void _f13x(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f13x(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f14(o,r2,r1,c,x,cp,y,cpos,t) _f14(_jit,o,r2,r1,c,x,cp,y,cpos,t) -static void _f14(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f14(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f15(o,r,t,c,c1,p,se,pos,clen) _f15(_jit,o,r,t,c,c1,p,se,pos,clen) -static void _f15(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f15(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f16(o,t,r,c,c1,cp,nz,cpos,clen) _f16(_jit,o,t,r,c,c1,cp,nz,cpos,clen) -static void _f16(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f16(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f16x(o,t,i,c,c1,cp,nz,cpos,clen) _f16x(_jit,o,t,i,c,c1,cp,nz,cpos,clen) -static void _f16x(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f16x(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f17(o,r2,r1,c,i,n) _f17(_jit,o,r2,r1,c,i,n) -static void _f17(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f17(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f17x(o,r2,r1,c,i,n) _f17x(_jit,o,r2,r1,c,i,n) -static void _f17x(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f17x(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f18(o,p,r,c,i,n) _f18(_jit,o,p,r,c,i,n) -static void _f18(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f18(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f19(o,b,s,i,n) _f19(_jit,o,b,s,i,n) -static void _f19(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f19(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f20(o,t,i,g,n) _f20(_jit,o,t,i,g,n) -static void _f20(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f20(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f21(o,t,x,y,n) _f21(_jit,o,t,x,y,n) -static void _f21(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _f21(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); #define f22(o,b,x,r,n,p) _f22(_jit,o,b,x,r,n,p) -static void _f22(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f22(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f23(o,a,b,c,d,e,f,g,h) _f23(_jit,o,a,b,c,d,e,f,g,h) -static void _f23(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f23(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f24(o,b,x,s,y,m,r) _f24(_jit,o,b,x,s,y,m,r) -static void _f24(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f24(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f25(o,b,i,s,y,m,r) _f25(_jit,o,b,i,s,y,m,r) -static void _f25(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f25(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f26(o,b,x,s,y,m,r) _f26(_jit,o,b,x,s,y,m,r) -static void _f26(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f26(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f27(o,i,j) _f27(_jit,o,i,j) -static void _f27(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f27(jit_state_t*,int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f28(o,i) _f28(_jit,o,i) -static void _f28(jit_state_t*,jit_int32_t,jit_int32_t) maybe_unused; +static void _f28(jit_state_t*,int32_t,jit_int32_t) maybe_unused; #define f29(o,r,x,s,y,t) _f29(_jit,o,r,x,s,y,t) -static void _f29(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f29(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f30(o,b,r,s,x,y,t) _f30(_jit,o,b,r,s,x,y,t) -static void _f30(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f30(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f31(o,t,r,v,x,y) _f31(_jit,o,t,r,v,x,y) -static void _f31(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f31(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f33(o,x,r,y,z,u) _f33(_jit,o,x,r,y,z,u) -static void _f33(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f33(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f34(o,o1,x,sf,n,o2) _f34(_jit,o,o1,x,sf,n,o2) -static void _f34(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f34(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f35(o,op,x,sf,n,t) _f35(_jit,o,op,x,sf,n,t) -static void _f35(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f35(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f36(o,r,o1,x,sf,n,o2) _f36(_jit,o,r,o1,x,sf,n,o2) -static void _f36(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f36(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f37(o,r2,r1,o1,x,sf,n,o2) _f37(_jit,o,r2,r1,o1,x,sf,n,o2) -static void _f37(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f37(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f38(o,s,u,n) _f38(_jit,o,s,u,n) -static void _f38(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f38(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t) maybe_unused; /* nulify next instruction if condition is met with addition */ #define ADD_CF_NV 0 /* never */ #define ADD_CF_EQ 2 /* O1 == -O2 (word) */ @@ -641,13 +641,13 @@ static void _f38(jit_state_t*,jit_int32_t, #define UXOR(r1,r2,t) f8(0x2,r2,r1,LOG_CC_NV,0,1,1,2,0,t) #define XOR(r1,r2,t) f8(0x2,r2,r1,LOG_CC_NV,0,1,0,2,0,t) # define nop(c) _nop(_jit,c) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); #define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); #define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); #define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); #define comr(r0,r1) UADDCM(_R0_REGNO,r1,r0) #define negr(r0,r1) SUB(_R0_REGNO,r1,r0) #define extr_c(r0,r1) EXTRWR(r1,31,8,r0) @@ -662,98 +662,98 @@ static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); #endif #define addr(r0,r1,r2) ADD(r1,r2,r0) #define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define addcr(r0,r1,r2) addr(r0,r1,r2) #define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define addxr(r0,r1,r2) ADD_C(r1,r2,r0) #define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define subr(r0,r1,r2) SUB(r1,r2,r0) #define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define subcr(r0,r1,r2) subr(r0,r1,r2) #define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define subxr(r0,r1,r2) SUB_B(r1,r2,r0) #define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) -static void _mulr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static long long __llmul(int, int); #define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) static void _qmulr(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) static void _qmuli(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); #define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) static void _qmulr_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) static void _qmuli_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); static int __idiv(int, int); #define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static unsigned int __udiv(unsigned int, unsigned int); #define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static int __irem(int, int); #define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static unsigned int __urem(unsigned int, unsigned int); #define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static idiv_t __idivrem(int, int); #define qdivr(r0,r1,r2,r3) _qdivr(_jit,r0,r1,r2,r3) static void _qdivr(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0) static void _qdivi(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); static udiv_t __udivrem(unsigned int, unsigned int); #define qdivr_u(r0,r1,r2,r3) _qdivr_u(_jit,r0,r1,r2,r3) static void _qdivr_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0) static void _qdivi_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); #define andr(r0,r1,r2) AND(r1,r2,r0) #define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define orr(r0,r1,r2) OR(r1,r2,r0) #define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define xorr(r0,r1,r2) XOR(r1,r2,r0) #define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define lshr(r0,r1,r2) _lshr(_jit,r0,r1,r2) -static void _lshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _lshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lshi(r0,r1,i0) SHLWI(r1,i0,r0) #define rshr(r0,r1,r2) _rshr(_jit,r0,r1,r2) -static void _rshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define rshi(r0,r1,i0) SHRWI(r1,i0,r0) #define rshr_u(r0,r1,r2) _rshr_u(_jit,r0,r1,r2) -static void _rshr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define rshi_u(r0,r1,i0) SHRWI_U(r1,i0,r0) #define cmpr(c,r0,r1,r2) _cmpr(_jit,c,r0,r1,r2) -static void _cmpr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _cmpr(jit_state_t*,jit_word_t,int32_t,jit_int32_t,jit_int32_t); #define cmpi(c,ci,r0,r1,i0) _cmpi(_jit,c,ci,r0,r1,i0) static void _cmpi(jit_state_t*,jit_word_t,jit_word_t, - jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_word_t); #define ltr(r0,r1,r2) cmpr(CS_CC_GE,r0,r1,r2) #define lti(r0,r1,i0) cmpi(CS_CC_GE,CS_CC_LE,r0,r1,i0) #define ltr_u(r0,r1,r2) cmpr(CS_CC_UGE,r0,r1,r2) @@ -775,73 +775,73 @@ static void _cmpi(jit_state_t*,jit_word_t,jit_word_t, #define ner(r0,r1,r2) cmpr(CS_CC_EQ,r0,r1,r2) #define nei(r0,r1,i0) cmpi(CS_CC_EQ,CS_CC_EQ,r0,r1,i0) #define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) -static void _ldr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); #define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); #define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr_uc(r0,r1) LDBI(_R0_REGNO,r1,r0) #define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); #define ldxr_uc(r0,r1,r2) LDB(r2,r1,r0) #define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr_s(r0,r1) _ldr_s(_jit,r0,r1) -static void _ldr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_s(jit_state_t*,int32_t,jit_int32_t); #define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); #define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr_us(r0,r1) LDHI(_R0_REGNO,r1,r0) #define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); #define ldxr_us(r0,r1,r2) LDH(r2,r1,r0) #define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr(r0,r1) ldr_ui(r0,r1) #define ldr_i(r0,r1) ldr_ui(r0,r1) #define ldr_ui(r0,r1) LDWI(_R0_REGNO,r1,r0) #define ldi_i(r0,i0) ldi_ui(r0,i0) #define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); #define ldxr_i(r0,r1,r2) ldxr_ui(r0,r1,r2) #define ldxr_ui(r0,r1,r2) LDW(r2,r1,r0) #define ldxi(r0,r1,i0) ldxi_ui(r0,r1,i0) #define ldxi_i(r0,r1,i0) ldxi_ui(r0,r1,i0) #define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define str_c(r0,r1) STBI(r1,_R0_REGNO,r0) #define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); #define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define str_s(r0,r1) STHI(r1,_R0_REGNO,r0) #define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); #define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define str_i(r0,r1) STWI(r1,_R0_REGNO,r0) #define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); #define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi(i0,r0,r1) stxi_i(i0,r0,r1) #define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bcmpr(c,i0,r0,r1) _bcmpr(_jit,c,i0,r0,r1) static jit_word_t _bcmpr(jit_state_t*,jit_word_t, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); #define bcmpi(c,ci,i0,r0,i1) _bcmpi(_jit,c,ci,i0,r0,i1) static jit_word_t _bcmpi(jit_state_t*,jit_word_t,jit_word_t, - jit_word_t,jit_int32_t,jit_word_t); + jit_word_t,int32_t,jit_word_t); #define bltr(i0,r0,r1) bcmpr(CS_CC_LT,i0,r0,r1) #define blti(i0,r0,r1) bcmpi(CS_CC_LT,CS_CC_GT,i0,r0,r1) #define bltr_u(i0,r0,r1) bcmpr(CS_CC_ULT,i0,r0,r1) @@ -864,54 +864,54 @@ static jit_word_t _bcmpi(jit_state_t*,jit_word_t,jit_word_t, #define bnei(i0,r0,r1) bcmpi(CS_CC_NE,CS_CC_NE,i0,r0,r1) #define bmxr(c,i0,r0,r1) _bmxr(_jit,c,i0,r0,r1) static jit_word_t _bmxr(jit_state_t*,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); #define bmxi(c,i0,r0,i1) _bmxi(_jit,c,i0,r0,i1) static jit_word_t _bmxi(jit_state_t*,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); + jit_word_t,int32_t,jit_word_t); #define bmcr(r0,r1,r2) bmxr(0,r0,r1,r2) #define bmci(r0,r1,r2) bmxi(0,r0,r1,r2) #define bmsr(r0,r1,r2) bmxr(1,r0,r1,r2) #define bmsi(r0,r1,r2) bmxi(1,r0,r1,r2) #define boaddr(i0,r0,r1) _boaddr(_jit,i0,r0,r1) -static jit_word_t _boaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define boaddi(i0,r0,i1) _boaddi(_jit,i0,r0,i1) -static jit_word_t _boaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define boaddr_u(i0,r0,r1) _boaddr_u(_jit,i0,r0,r1) -static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define boaddi_u(i0,r0,i1) _boaddi_u(_jit,i0,r0,i1) -static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxaddr(i0,r0,r1) _bxaddr(_jit,i0,r0,r1) -static jit_word_t _bxaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxaddi(i0,r0,i1) _bxaddi(_jit,i0,r0,i1) -static jit_word_t _bxaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxaddr_u(i0,r0,r1) _bxaddr_u(_jit,i0,r0,r1) -static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxaddi_u(i0,r0,i1) _bxaddi_u(_jit,i0,r0,i1) -static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bosubr(i0,r0,r1) _bosubr(_jit,i0,r0,r1) -static jit_word_t _bosubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bosubi(i0,r0,i1) _bosubi(_jit,i0,r0,i1) -static jit_word_t _bosubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bosubr_u(i0,r0,r1) _bosubr_u(_jit,i0,r0,r1) -static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bosubi_u(i0,r0,i1) _bosubi_u(_jit,i0,r0,i1) -static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxsubr(i0,r0,r1) _bxsubr(_jit,i0,r0,r1) -static jit_word_t _bxsubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxsubi(i0,r0,i1) _bxsubi(_jit,i0,r0,i1) -static jit_word_t _bxsubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxsubr_u(i0,r0,r1) _bxsubr_u(_jit,i0,r0,r1) -static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxsubi_u(i0,r0,i1) _bxsubi_u(_jit,i0,r0,i1) -static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define jmpr(r0) _jmpr(_jit,r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); #define jmpi(i0) _jmpi(_jit,i0) static void _jmpi(jit_state_t*,jit_word_t); #define jmpi_p(i0) _jmpi_p(_jit,i0) static jit_word_t _jmpi_p(jit_state_t*,jit_word_t); #define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); #define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*,jit_word_t); #define calli_p(i0) _calli_p(_jit,i0) @@ -921,9 +921,9 @@ static void _prolog(jit_state_t*, jit_node_t*); #define epilog(node) _epilog(_jit, node) static void _epilog(jit_state_t*, jit_node_t*); #define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); #define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); #define patch_at(i,l) _patch_at(_jit,i,l) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif @@ -1017,8 +1017,8 @@ re_assemble_22 (int as22) } static void -_f1(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t t, jit_int32_t i) +_f1(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t t, jit_int32_t i) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1028,8 +1028,8 @@ _f1(jit_state_t *_jit, jit_int32_t o, } static void -_f2(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t t, jit_int32_t i, jit_int32_t j) +_f2(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t t, jit_int32_t i, jit_int32_t j) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1040,8 +1040,8 @@ _f2(jit_state_t *_jit, jit_int32_t o, } static void -_f3(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t t, jit_int32_t i, jit_int32_t j) +_f3(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t t, jit_int32_t i, jit_int32_t j) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1052,9 +1052,9 @@ _f3(jit_state_t *_jit, jit_int32_t o, } static void -_f4(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, - jit_int32_t x, jit_int32_t s, jit_int32_t u, jit_int32_t y, - jit_int32_t c, jit_int32_t z, jit_int32_t m, jit_int32_t t) +_f4(jit_state_t *_jit, int32_t o, jit_int32_t b, + int32_t x, jit_int32_t s, jit_int32_t u, jit_int32_t y, + int32_t c, jit_int32_t z, jit_int32_t m, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1070,9 +1070,9 @@ _f4(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, } static void -_f5(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, - jit_int32_t i, jit_int32_t s, jit_int32_t a, jit_int32_t y, - jit_int32_t c, jit_int32_t z, jit_int32_t m, jit_int32_t t) +_f5(jit_state_t *_jit, int32_t o, jit_int32_t b, + int32_t i, jit_int32_t s, jit_int32_t a, jit_int32_t y, + int32_t c, jit_int32_t z, jit_int32_t m, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1088,9 +1088,9 @@ _f5(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, } static void -_f6(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, - jit_int32_t r, jit_int32_t s, jit_int32_t a, jit_int32_t x, - jit_int32_t c, jit_int32_t y, jit_int32_t m, jit_int32_t i) +_f6(jit_state_t *_jit, int32_t o, jit_int32_t b, + int32_t r, jit_int32_t s, jit_int32_t a, jit_int32_t x, + int32_t c, jit_int32_t y, jit_int32_t m, jit_int32_t i) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1106,7 +1106,7 @@ _f6(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, } static void -_f7(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, jit_int32_t i) +_f7(jit_state_t *_jit, int32_t o, jit_int32_t r, jit_int32_t i) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1115,10 +1115,10 @@ _f7(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, jit_int32_t i) } static void -_f8(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r2, jit_int32_t r1, jit_int32_t cf, - jit_int32_t e1, jit_int32_t x, jit_int32_t e2, - jit_int32_t e3, jit_int32_t d, jit_int32_t t) +_f8(jit_state_t *_jit, int32_t o, + int32_t r2, jit_int32_t r1, jit_int32_t cf, + int32_t e1, jit_int32_t x, jit_int32_t e2, + int32_t e3, jit_int32_t d, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r2 & ~0x1f)); @@ -1136,8 +1136,8 @@ _f8(jit_state_t *_jit, jit_int32_t o, static void _f9(jit_state_t *_jit, - jit_int32_t o, jit_int32_t r, jit_int32_t t, - jit_int32_t cf, jit_int32_t e1, jit_int32_t i) + int32_t o, jit_int32_t r, jit_int32_t t, + int32_t cf, jit_int32_t e1, jit_int32_t i) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1149,9 +1149,9 @@ _f9(jit_state_t *_jit, } static void -_f10(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, - jit_int32_t r1, jit_int32_t u, jit_int32_t v, jit_int32_t w, - jit_int32_t x, jit_int32_t sa, jit_int32_t y, jit_int32_t t) +_f10(jit_state_t *_jit, int32_t o, jit_int32_t r2, + int32_t r1, jit_int32_t u, jit_int32_t v, jit_int32_t w, + int32_t x, jit_int32_t sa, jit_int32_t y, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r2 & ~0x1f)); @@ -1168,9 +1168,9 @@ _f10(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, } static void -_f11(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r2, jit_int32_t r1, jit_int32_t c, jit_int32_t x, - jit_int32_t y, jit_int32_t z, jit_int32_t u, jit_int32_t t) +_f11(jit_state_t *_jit, int32_t o, + int32_t r2, jit_int32_t r1, jit_int32_t c, jit_int32_t x, + int32_t y, jit_int32_t z, jit_int32_t u, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r1 & ~0x1f)); @@ -1185,9 +1185,9 @@ _f11(jit_state_t *_jit, jit_int32_t o, } static void -_f12(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, - jit_int32_t t, jit_int32_t c, jit_int32_t x, jit_int32_t se, - jit_int32_t y, jit_int32_t c1, jit_int32_t z, jit_int32_t clen) +_f12(jit_state_t *_jit, int32_t o, jit_int32_t r, + int32_t t, jit_int32_t c, jit_int32_t x, jit_int32_t se, + int32_t y, jit_int32_t c1, jit_int32_t z, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1204,9 +1204,9 @@ _f12(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, } static void -_f13(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, - jit_int32_t r, jit_int32_t c, jit_int32_t x, - jit_int32_t nz, jit_int32_t c1, jit_int32_t clen) +_f13(jit_state_t *_jit, int32_t o, jit_int32_t t, + int32_t r, jit_int32_t c, jit_int32_t x, + int32_t nz, jit_int32_t c1, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1221,9 +1221,9 @@ _f13(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, } static void -_f13x(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, - jit_int32_t i, jit_int32_t c, jit_int32_t x, - jit_int32_t nz, jit_int32_t c1, jit_int32_t clen) +_f13x(jit_state_t *_jit, int32_t o, jit_int32_t t, + int32_t i, jit_int32_t c, jit_int32_t x, + int32_t nz, jit_int32_t c1, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1237,9 +1237,9 @@ _f13x(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, } static void -_f14(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r2, jit_int32_t r1, jit_int32_t c, jit_int32_t x, - jit_int32_t cp, jit_int32_t y, jit_int32_t cpos, jit_int32_t t) +_f14(jit_state_t *_jit, int32_t o, + int32_t r2, jit_int32_t r1, jit_int32_t c, jit_int32_t x, + int32_t cp, jit_int32_t y, jit_int32_t cpos, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r1 & ~0x1f)); @@ -1254,9 +1254,9 @@ _f14(jit_state_t *_jit, jit_int32_t o, } static void -_f15(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r, jit_int32_t t, jit_int32_t c, jit_int32_t c1, - jit_int32_t p, jit_int32_t se, jit_int32_t pos, jit_int32_t clen) +_f15(jit_state_t *_jit, int32_t o, + int32_t r, jit_int32_t t, jit_int32_t c, jit_int32_t c1, + int32_t p, jit_int32_t se, jit_int32_t pos, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1272,9 +1272,9 @@ _f15(jit_state_t *_jit, jit_int32_t o, } static void -_f16(jit_state_t *_jit, jit_int32_t o, - jit_int32_t t, jit_int32_t r, jit_int32_t c, jit_int32_t c1, - jit_int32_t cp, jit_int32_t nz, jit_int32_t cpos, jit_int32_t clen) +_f16(jit_state_t *_jit, int32_t o, + int32_t t, jit_int32_t r, jit_int32_t c, jit_int32_t c1, + int32_t cp, jit_int32_t nz, jit_int32_t cpos, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1290,9 +1290,9 @@ _f16(jit_state_t *_jit, jit_int32_t o, } static void -_f16x(jit_state_t *_jit, jit_int32_t o, - jit_int32_t t, jit_int32_t i, jit_int32_t c, jit_int32_t c1, - jit_int32_t cp, jit_int32_t nz, jit_int32_t cpos, jit_int32_t clen) +_f16x(jit_state_t *_jit, int32_t o, + int32_t t, jit_int32_t i, jit_int32_t c, jit_int32_t c1, + int32_t cp, jit_int32_t nz, jit_int32_t cpos, jit_int32_t clen) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1308,8 +1308,8 @@ _f16x(jit_state_t *_jit, jit_int32_t o, } static void -_f17(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, - jit_int32_t r1, jit_int32_t c, jit_int32_t i, jit_int32_t n) +_f17(jit_state_t *_jit, int32_t o, jit_int32_t r2, + int32_t r1, jit_int32_t c, jit_int32_t i, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(r2 & ~0x1f)); @@ -1321,8 +1321,8 @@ _f17(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, } static void -_f17x(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, - jit_int32_t i, jit_int32_t c, jit_int32_t t, jit_int32_t n) +_f17x(jit_state_t *_jit, int32_t o, jit_int32_t r, + int32_t i, jit_int32_t c, jit_int32_t t, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1335,8 +1335,8 @@ _f17x(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, } static void -_f18(jit_state_t *_jit, jit_int32_t o, jit_int32_t p, - jit_int32_t r, jit_int32_t c, jit_int32_t i, jit_int32_t n) +_f18(jit_state_t *_jit, int32_t o, jit_int32_t p, + int32_t r, jit_int32_t c, jit_int32_t i, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(p & ~0x1f)); @@ -1348,8 +1348,8 @@ _f18(jit_state_t *_jit, jit_int32_t o, jit_int32_t p, } static void -_f19(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, - jit_int32_t s, jit_int32_t i, jit_int32_t n) +_f19(jit_state_t *_jit, int32_t o, jit_int32_t b, + int32_t s, jit_int32_t i, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1360,8 +1360,8 @@ _f19(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, } static void -_f20(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, - jit_int32_t i, jit_int32_t g, jit_int32_t n) +_f20(jit_state_t *_jit, int32_t o, jit_int32_t t, + int32_t i, jit_int32_t g, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1372,8 +1372,8 @@ _f20(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, } static void -_f21(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, - jit_int32_t x, jit_int32_t y, jit_int32_t n) +_f21(jit_state_t *_jit, int32_t o, jit_int32_t t, + int32_t x, jit_int32_t y, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1384,8 +1384,8 @@ _f21(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, } static void -_f22(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, - jit_int32_t x, jit_int32_t r, jit_int32_t n, jit_int32_t p) +_f22(jit_state_t *_jit, int32_t o, jit_int32_t b, + int32_t x, jit_int32_t r, jit_int32_t n, jit_int32_t p) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1397,9 +1397,9 @@ _f22(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, } static void -_f23(jit_state_t *_jit, jit_int32_t o, - jit_int32_t a, jit_int32_t b, jit_int32_t c, jit_int32_t d, - jit_int32_t e, jit_int32_t f, jit_int32_t g, jit_int32_t h) +_f23(jit_state_t *_jit, int32_t o, + int32_t a, jit_int32_t b, jit_int32_t c, jit_int32_t d, + int32_t e, jit_int32_t f, jit_int32_t g, jit_int32_t h) { assert(!(o & ~0x3f)); assert(!(a & ~0x1f)); @@ -1414,9 +1414,9 @@ _f23(jit_state_t *_jit, jit_int32_t o, } static void -_f24(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t x, jit_int32_t s, - jit_int32_t y, jit_int32_t m,jit_int32_t r) +_f24(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t x, jit_int32_t s, + int32_t y, jit_int32_t m,jit_int32_t r) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1429,9 +1429,9 @@ _f24(jit_state_t *_jit, jit_int32_t o, } static void -_f25(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t i, jit_int32_t s, - jit_int32_t y, jit_int32_t m, jit_int32_t r) +_f25(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t i, jit_int32_t s, + int32_t y, jit_int32_t m, jit_int32_t r) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1444,9 +1444,9 @@ _f25(jit_state_t *_jit, jit_int32_t o, } static void -_f26(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t x, jit_int32_t s, - jit_int32_t y, jit_int32_t m,jit_int32_t r) +_f26(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t x, jit_int32_t s, + int32_t y, jit_int32_t m,jit_int32_t r) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1459,7 +1459,7 @@ _f26(jit_state_t *_jit, jit_int32_t o, } static void -_f27(jit_state_t *_jit, jit_int32_t o, jit_int32_t i, jit_int32_t j) +_f27(jit_state_t *_jit, int32_t o, jit_int32_t i, jit_int32_t j) { assert(!(o & ~0x3f)); assert(i >= -4096 && i < 4095); @@ -1468,7 +1468,7 @@ _f27(jit_state_t *_jit, jit_int32_t o, jit_int32_t i, jit_int32_t j) } static void -_f28(jit_state_t *_jit, jit_int32_t o, jit_int32_t i) +_f28(jit_state_t *_jit, int32_t o, jit_int32_t i) { assert(!(o & ~0x3f)); assert(!(i & ~0x1ffffff)); @@ -1476,8 +1476,8 @@ _f28(jit_state_t *_jit, jit_int32_t o, jit_int32_t i) } static void -_f29(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, - jit_int32_t x, jit_int32_t s, jit_int32_t y, jit_int32_t t) +_f29(jit_state_t *_jit, int32_t o, jit_int32_t r, + int32_t x, jit_int32_t s, jit_int32_t y, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1489,8 +1489,8 @@ _f29(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, } static void -_f30(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, jit_int32_t r, - jit_int32_t s, jit_int32_t x, jit_int32_t y, jit_int32_t t) +_f30(jit_state_t *_jit, int32_t o, jit_int32_t b, jit_int32_t r, + int32_t s, jit_int32_t x, jit_int32_t y, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -1503,8 +1503,8 @@ _f30(jit_state_t *_jit, jit_int32_t o, jit_int32_t b, jit_int32_t r, } static void -_f31(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, - jit_int32_t r, jit_int32_t v, jit_int32_t x, jit_int32_t y) +_f31(jit_state_t *_jit, int32_t o, jit_int32_t t, + int32_t r, jit_int32_t v, jit_int32_t x, jit_int32_t y) { assert(!(o & ~0x3f)); assert(!(t & ~0x1f)); @@ -1516,8 +1516,8 @@ _f31(jit_state_t *_jit, jit_int32_t o, jit_int32_t t, } static void -_f33(jit_state_t *_jit, jit_int32_t o, jit_int32_t x, - jit_int32_t r, jit_int32_t y, jit_int32_t z, jit_int32_t u) +_f33(jit_state_t *_jit, int32_t o, jit_int32_t x, + int32_t r, jit_int32_t y, jit_int32_t z, jit_int32_t u) { assert(!(o & ~0x3f)); assert(!(x & ~0x1f)); @@ -1529,8 +1529,8 @@ _f33(jit_state_t *_jit, jit_int32_t o, jit_int32_t x, } static void -_f34(jit_state_t *_jit, jit_int32_t o, jit_int32_t o1, - jit_int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t o2) +_f34(jit_state_t *_jit, int32_t o, jit_int32_t o1, + int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t o2) { assert(!(o & ~0x3f)); assert(!(o1 & ~0x7fff)); @@ -1542,8 +1542,8 @@ _f34(jit_state_t *_jit, jit_int32_t o, jit_int32_t o1, } static void -_f35(jit_state_t *_jit, jit_int32_t o, jit_int32_t op, - jit_int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t t) +_f35(jit_state_t *_jit, int32_t o, jit_int32_t op, + int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(op & ~0x7fff)); @@ -1555,8 +1555,8 @@ _f35(jit_state_t *_jit, jit_int32_t o, jit_int32_t op, } static void -_f36(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, jit_int32_t o1, - jit_int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t o2) +_f36(jit_state_t *_jit, int32_t o, jit_int32_t r, jit_int32_t o1, + int32_t x, jit_int32_t sf, jit_int32_t n, jit_int32_t o2) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -1569,9 +1569,9 @@ _f36(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, jit_int32_t o1, } static void -_f37(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, - jit_int32_t r1, jit_int32_t o1, jit_int32_t x, - jit_int32_t sf, jit_int32_t n, jit_int32_t o2) +_f37(jit_state_t *_jit, int32_t o, jit_int32_t r2, + int32_t r1, jit_int32_t o1, jit_int32_t x, + int32_t sf, jit_int32_t n, jit_int32_t o2) { assert(!(o & ~0x3f)); assert(!(r2 & ~0x1f)); @@ -1585,8 +1585,8 @@ _f37(jit_state_t *_jit, jit_int32_t o, jit_int32_t r2, } static void -_f38(jit_state_t *_jit, jit_int32_t o, - jit_int32_t s, jit_int32_t u, jit_int32_t n) +_f38(jit_state_t *_jit, int32_t o, + int32_t s, jit_int32_t u, jit_int32_t n) { assert(!(o & ~0x3f)); assert(!(s & ~0x3fffff)); @@ -1596,7 +1596,7 @@ _f38(jit_state_t *_jit, jit_int32_t o, } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -1604,14 +1604,14 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) COPY(r1, r0); } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { if (i0 >= -8192 && i0 <= 8191) LDI(i0, r0); @@ -1624,7 +1624,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; w = _jit->pc.w; @@ -1634,9 +1634,9 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -1024 && i0 <= 1023) ADDI(i0, r1, r0); else { @@ -1648,9 +1648,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); addcr(r0, r1, rn(reg)); @@ -1658,9 +1658,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); addxr(r0, r1, rn(reg)); @@ -1668,9 +1668,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -1023 && i0 <= 1024) addi(r0, r1, -i0); else { @@ -1682,9 +1682,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subcr(r0, r1, rn(reg)); @@ -1692,9 +1692,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subxr(r0, r1, rn(reg)); @@ -1702,9 +1702,9 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -1024 && i0 <= 1023) SUBI(i0, r1, r0); else { @@ -1716,9 +1716,9 @@ _rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0, t1; + int32_t t0, t1; t0 = jit_get_reg(jit_class_fpr); t1 = jit_get_reg(jit_class_fpr); stxi(alloca_offset - 8, _FP_REGNO, r1); @@ -1733,9 +1733,9 @@ _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (r0 != r1) { movi(r0, i0); mulr(r0, r1, r0); @@ -1756,7 +1756,7 @@ __llmul(int u, int v) static void _qmulr(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { movr(_R26_REGNO, r2); movr(_R25_REGNO, r3); @@ -1767,7 +1767,7 @@ _qmulr(jit_state_t *_jit, static void _qmuli(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { movr(_R26_REGNO, r2); movi(_R25_REGNO, i0); @@ -1778,9 +1778,9 @@ _qmuli(jit_state_t *_jit, static void _qmulr_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t t0, t1; + int32_t t0, t1; t0 = jit_get_reg(jit_class_fpr); t1 = jit_get_reg(jit_class_fpr); stxi(alloca_offset - 8, _FP_REGNO, r2); @@ -1797,9 +1797,9 @@ _qmulr_u(jit_state_t *_jit, static void _qmuli_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qmulr_u(r0, r1, r2, rn(reg)); @@ -1813,7 +1813,7 @@ __idiv(int u, int v) } static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_R26_REGNO, r1); movr(_R25_REGNO, r2); @@ -1822,7 +1822,7 @@ _divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_R26_REGNO, r1); movi(_R25_REGNO, i0); @@ -1837,7 +1837,7 @@ __udiv(unsigned int u, unsigned int v) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_R26_REGNO, r1); movr(_R25_REGNO, r2); @@ -1846,7 +1846,7 @@ _divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_R26_REGNO, r1); movi(_R25_REGNO, i0); @@ -1861,7 +1861,7 @@ __irem(int u, int v) } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_R26_REGNO, r1); movr(_R25_REGNO, r2); @@ -1870,7 +1870,7 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_R26_REGNO, r1); movi(_R25_REGNO, i0); @@ -1885,7 +1885,7 @@ __urem(unsigned int u, unsigned int v) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { movr(_R26_REGNO, r1); movr(_R25_REGNO, r2); @@ -1894,7 +1894,7 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(_R26_REGNO, r1); movi(_R25_REGNO, i0); @@ -1913,7 +1913,7 @@ __idivrem(int u, int v) static void _qdivr(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { movr(_R26_REGNO, r2); movr(_R25_REGNO, r3); @@ -1924,7 +1924,7 @@ _qdivr(jit_state_t *_jit, static void _qdivi(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { movr(_R26_REGNO, r2); movi(_R25_REGNO, i0); @@ -1944,7 +1944,7 @@ __udivrem(unsigned int u, unsigned int v) static void _qdivr_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { movr(_R26_REGNO, r2); movr(_R25_REGNO, r3); @@ -1955,7 +1955,7 @@ _qdivr_u(jit_state_t *_jit, static void _qdivi_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { movr(_R26_REGNO, r2); movi(_R25_REGNO, i0); @@ -1965,9 +1965,9 @@ _qdivi_u(jit_state_t *_jit, } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); andr(r0, r1, rn(reg)); @@ -1975,9 +1975,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); orr(r0, r1, rn(reg)); @@ -1985,9 +1985,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); xorr(r0, r1, rn(reg)); @@ -1995,7 +1995,7 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_lshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { SUBI(0x1f, r2, _R1_REGNO); MTSAR(_R1_REGNO); @@ -2003,7 +2003,7 @@ _lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_rshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { SUBI(0x1f, r2, _R1_REGNO); MTSAR(_R1_REGNO); @@ -2011,7 +2011,7 @@ _rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_rshr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { SUBI(0x1f, r2, _R1_REGNO); MTSAR(_R1_REGNO); @@ -2020,7 +2020,7 @@ _rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) static void _cmpr(jit_state_t *_jit, jit_word_t c, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPCLR_(c, r1, r2, r0); LDI(1, r0); @@ -2028,9 +2028,9 @@ _cmpr(jit_state_t *_jit, jit_word_t c, static void _cmpi(jit_state_t *_jit, jit_word_t c, jit_word_t ci, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) CMPICLR_(ci, i0, r1, r0); else { @@ -2043,37 +2043,37 @@ _cmpi(jit_state_t *_jit, jit_word_t c, jit_word_t ci, } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_uc(r0, r1); extr_c(r0, r0); } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { ldi_uc(r0, i0); extr_c(r0, r0); } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { ldxr_uc(r0, r1, r2); extr_c(r0, r0); } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_uc(r0, r1, i0); extr_c(r0, r0); } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) LDBL(i0, _R0_REGNO, r0); else { @@ -2085,9 +2085,9 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) LDBI(i0, r1, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2101,37 +2101,37 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_us(r0, r1); extr_s(r0, r0); } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { ldi_us(r0, i0); extr_s(r0, r0); } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { ldxr_us(r0, r1, r2); extr_s(r0, r0); } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_us(r0, r1, i0); extr_s(r0, r0); } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) LDHL(i0, _R0_REGNO, r0); else { @@ -2143,9 +2143,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) LDHI(i0, r1, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2159,9 +2159,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) LDWL(i0, _R0_REGNO, r0); else { @@ -2173,9 +2173,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) LDWI(i0, r1, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2189,9 +2189,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) STBL(r0, i0, _R0_REGNO); else { @@ -2203,9 +2203,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_c(rn(reg), r2); @@ -2213,9 +2213,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) STBI(r1, i0, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2229,9 +2229,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) STHL(r0, i0, _R0_REGNO); else { @@ -2243,9 +2243,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_s(rn(reg), r2); @@ -2253,9 +2253,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) STHI(r1, i0, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2269,9 +2269,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8182 && i0 <= 8191) STWL(r0, i0, _R0_REGNO); else { @@ -2283,9 +2283,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_i(rn(reg), r2); @@ -2293,9 +2293,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) STWI(r1, i0, r0); else if (i0 >= -8182 && i0 <= 8191) @@ -2310,7 +2310,7 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static jit_word_t _bcmpr(jit_state_t *_jit, jit_word_t c, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; w = _jit->pc.w; @@ -2321,10 +2321,10 @@ _bcmpr(jit_state_t *_jit, jit_word_t c, static jit_word_t _bcmpi(jit_state_t *_jit, jit_word_t c, jit_word_t ci, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -16 && i1 <= 15) { w = _jit->pc.w; CMPIB_N_(ci, i1, r0, ((i0 - w) >> 2) - 2); @@ -2342,10 +2342,10 @@ _bcmpi(jit_state_t *_jit, jit_word_t c, jit_word_t ci, static jit_word_t _bmxr(jit_state_t *_jit, jit_bool_t c, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); andr(rn(reg), r0, r1); w = c ? bnei(i0, rn(reg), 0) : beqi(i0, rn(reg), 0); @@ -2355,10 +2355,10 @@ _bmxr(jit_state_t *_jit, jit_bool_t c, static jit_word_t _bmxi(jit_state_t *_jit, jit_bool_t c, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); andr(rn(reg), r0, rn(reg)); @@ -2368,7 +2368,7 @@ _bmxi(jit_state_t *_jit, jit_bool_t c, } static jit_word_t -_boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; w = _jit->pc.w; @@ -2378,10 +2378,10 @@ _boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -16 && i1 <= 15) { w = _jit->pc.w; ADDIB_N_SV(i1, r0, ((i0 - w) >> 2) - 2); @@ -2397,7 +2397,7 @@ _boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; w = _jit->pc.w; @@ -2407,10 +2407,10 @@ _boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -16 && i1 <= 15) { w = _jit->pc.w; ADDIB_N_UV(i1, r0, ((i0 - w) >> 2) - 2); @@ -2426,7 +2426,7 @@ _boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; w = _jit->pc.w; @@ -2436,10 +2436,10 @@ _bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -16 && i1 <= 15) { w = _jit->pc.w; ADDIB_N_NSV(i1, r0, ((i0 - w) >> 2) - 2); @@ -2455,7 +2455,7 @@ _bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; w = _jit->pc.w; @@ -2465,10 +2465,10 @@ _bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -16 && i1 <= 15) { w = _jit->pc.w; ADDIB_N_NUV(i1, r0, ((i0 - w) >> 2) - 2); @@ -2484,7 +2484,7 @@ _bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; SUB_NSV(r0, r1, r0); @@ -2496,14 +2496,14 @@ _bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { movi(_R1_REGNO, i1); return (bosubr(i0, r0, _R1_REGNO)); } static jit_word_t -_bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { SUB(r0, r1, r0); SUB_B(_R0_REGNO, _R0_REGNO, _R1_REGNO); @@ -2511,7 +2511,7 @@ _bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { movi(_R1_REGNO, i1); SUB(r0, _R1_REGNO, r0); @@ -2520,7 +2520,7 @@ _bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; SUB_SV(r0, r1, r0); @@ -2532,14 +2532,14 @@ _bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { movi(_R1_REGNO, i1); return (bxsubr(i0, r0, _R1_REGNO)); } static jit_word_t -_bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { SUB(r0, r1, r0); SUB_B(_R0_REGNO, _R0_REGNO, _R1_REGNO); @@ -2547,7 +2547,7 @@ _bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { movi(_R1_REGNO, i1); SUB(r0, _R1_REGNO, r0); @@ -2556,7 +2556,7 @@ _bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { BV_N(_R0_REGNO, r0); } @@ -2584,7 +2584,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { jit_word_t dyn; jit_word_t imm; @@ -2640,13 +2640,13 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) return (w); } -static jit_int32_t gr[] = { +static int32_t gr[] = { _R4, _R5, _R6, _R7, _R8, _R9, _R10, _R11, _R12, _R13, _R14, _R15, _R16, _R17, _R18 }; -static jit_int32_t fr[] = { +static int32_t fr[] = { _F12, _F13, _F14, _F15, _F16, _F17, _F18, _F19, _F20, _F21 }; @@ -2654,7 +2654,7 @@ static jit_int32_t fr[] = { static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t regno; + int32_t regno; jit_word_t offset; if (_jitc->function->define_frame || _jitc->function->assume_frame) { @@ -2707,7 +2707,7 @@ _prolog(jit_state_t *_jit, jit_node_t *node) static void _epilog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t regno; + int32_t regno; jit_word_t offset; if (_jitc->function->assume_frame) @@ -2735,14 +2735,14 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { /* Initialize stack pointer to the first stack argument. */ addi(r0, _FP_REGNO, params_offset - _jitc->function->vagp * 4); } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); @@ -2758,7 +2758,7 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_word_t w; union { - jit_uint32_t *i; + uint32_t *i; jit_word_t w; } u; u.w = instr; diff --git a/jit/hppa-fpu.c b/jit/hppa-fpu.c index c0e85bab4..861076e74 100644 --- a/jit/hppa-fpu.c +++ b/jit/hppa-fpu.c @@ -28,44 +28,44 @@ #endif #define f39(o,b,x,t) _f39(_jit,o,b,x,t) -static void _f39(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f39(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f40(o,b,x,r) _f40(_jit,o,b,x,r) -static void _f40(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) +static void _f40(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f41(o,b,x,t) _f41(_jit,o,b,x,t) -static void _f41(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f41(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f42(o,b,i,r) _f42(_jit,o,b,i,r) -static void _f42(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f42(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f43(o,b,t,i) f1(o,b,t,i) #define f45(o,r,a,b,fmt,c,d,e,t) _f45(_jit,o,r,a,b,fmt,c,d,e,t) -static void _f45(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f45(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f46(o,r,a,s,df,sf,b,c,d,t) _f46(_jit,o,r,a,s,df,sf,b,c,d,t) -static void _f46(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f46(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f47(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t) #define f48(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t) #define f47_48(o,r1,r2,y,fmt,b,c,d,t) _f47_48(_jit,o,r1,r2,y,fmt,b,c,d,t) -static void _f47_48(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f47_48(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f49(o,r,a,b,c,f,d,e,g,h,i,t) f49_52(o,r,a,b,c,f,d,e,g,h,i,t) #define f51(o,r1,r2,y,a,f,b,d,e,g,h,c) f49_52(o,r1,r2,y,a,f,b,d,e,g,h,c) #define f52(o,r1,r2,a,b,f,c,d,e,g,h,t) f49_52(o,r1,r2,a,b,f,c,d,e,g,h,t) #define f49_52(o,r1,r2,y,v,f,a,b,u,c,d,t) _f49_52(_jit,o,r1,r2,y,v,f,a,b,u,c,d,t) -static void _f49_52(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f49_52(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define f53(o,r1,r2,ta,ra,f,tm) _f53(_jit,o,r1,r2,ta,ra,f,tm) -static void _f53(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f53(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define f54(o,r1,r2,a,b,f,c,d,e,g,t) _f54(_jit,o,r1,r2,a,b,f,c,d,e,g,t) -static void _f54(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; +static void _f54(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; #define FABS_(f,r,t) f49(0xe,r,0,3,0,f,0,0,0,0,0,t) #define FABS_S(r,t) FABS_(0,r,t) #define FABS_D(r,t) FABS_(1,r,t) @@ -271,67 +271,67 @@ static void _f54(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, #define sqrtr_f(r0,r1) FSQRT_S(r1,r0) #define sqrtr_d(r0,r1) FSQRT_D(r1,r0) #define extr_f(r0,r1) _extr_f(_jit,r0,r1) -static void _extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_f(jit_state_t*,int32_t,jit_int32_t); #define extr_d(r0,r1) _extr_d(_jit,r0,r1) -static void _extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_d(jit_state_t*,int32_t,jit_int32_t); #define extr_f_d(r0,r1) FCNVFF_S_D(r1,r0) #define extr_d_f(r0,r1) FCNVFF_D_S(r1,r0) #define truncr_f(r0,r1) truncr_f_i(r0,r1) #define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1) -static void _truncr_f_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_f_i(jit_state_t*,int32_t,jit_int32_t); #define truncr_d(r0,r1) truncr_d_i(r0,r1) #define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) -static void _truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); #define movr_f(r0,r1) FCPY_S(r1,r0) #define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); #define movr_d(r0,r1) FCPY_D(r1,r0) #define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); #define absr_f(r0,r1) FABS_S(r1,r0) #define absr_d(r0,r1) FABS_D(r1,r0) #define addr_f(r0,r1,r2) FADD_S(r1,r2,r0) #define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define addr_d(r0,r1,r2) FADD_D(r1,r2,r0) #define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define subr_f(r0,r1,r2) FSUB_S(r1,r2,r0) #define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define subr_d(r0,r1,r2) FSUB_D(r1,r2,r0) #define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) #define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) #define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define mulr_f(r0,r1,r2) FMPY_S(r1,r2,r0) #define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define mulr_d(r0,r1,r2) FMPY_D(r1,r2,r0) #define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define divr_f(r0,r1,r2) FDIV_S(r1,r2,r0) #define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define divr_d(r0,r1,r2) FDIV_D(r1,r2,r0) #define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define cmpr_f(c,r0,r1,r2) _cmpr_f(_jit,c,r0,r1,r2) static void _cmpr_f(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); #define cmpi_f(c,r0,r1,i0) _cmpi_f(_jit,c,r0,r1,i0) static void _cmpi_f(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_float32_t*); + int32_t,jit_int32_t,jit_float32_t*); #define cmpr_d(c,r0,r1,r2) _cmpr_d(_jit,c,r0,r1,r2) static void _cmpr_d(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t); #define cmpi_d(c,r0,r1,i0) _cmpi_d(_jit,c,r0,r1,i0) static void _cmpi_d(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_float64_t*); + int32_t,jit_int32_t,jit_float64_t*); #define ltr_f(r0,r1,r2) cmpr_f(FCMP_LT,r0,r1,r2) #define lti_f(r0,r1,i0) cmpi_f(FCMP_LT,r0,r1,i0) #define ltr_d(r0,r1,r2) cmpr_d(FCMP_LT,r0,r1,r2) @@ -390,47 +390,47 @@ static void _cmpi_d(jit_state_t*,jit_word_t, #define unordi_d(r0,r1,i0) cmpi_d(FCMP_UNORD,r0,r1,i0) #define ldr_f(r0,r1) FLDWI(0,r1,r0) #define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); #define ldxr_f(r0,r1,r2) FLDW(r2,r1,r0) #define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr_d(r0,r1) FLDDI(0,r1,r0) #define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); #define ldxr_d(r0,r1,r2) FLDD(r2,r1,r0) #define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define str_f(r0,r1) FSTWI(r1,0,r0) #define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); #if FSTXR # define stxr_f(r0,r1,r2) FSTW(r2,r1,r0) # define stxr_d(r0,r1,r2) FSTD(r2,r1,r0) #else # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #endif #define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define str_d(r0,r1) FSTDI(r1,0,r0) #define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); #define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bcmpr_f(c,i0,r0,r1) _bcmpr_f(_jit,c,i0,r0,r1) static jit_word_t _bcmpr_f(jit_state_t*,jit_word_t, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); #define bcmpi_f(c,i0,r0,i1) _bcmpi_f(_jit,c,i0,r0,i1) static jit_word_t _bcmpi_f(jit_state_t*,jit_word_t, - jit_word_t,jit_int32_t,jit_float32_t*); + jit_word_t,int32_t,jit_float32_t*); #define bcmpr_d(c,i0,r0,r1) _bcmpr_d(_jit,c,i0,r0,r1) static jit_word_t _bcmpr_d(jit_state_t*,jit_word_t, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); #define bcmpi_d(c,i0,r0,i1) _bcmpi_d(_jit,c,i0,r0,i1) static jit_word_t _bcmpi_d(jit_state_t*,jit_word_t, - jit_word_t,jit_int32_t,jit_float64_t*); + jit_word_t,int32_t,jit_float64_t*); #define bltr_f(i0,r0,r1) bcmpr_f(FCMP_LT,i0,r0,r1) #define blti_f(i0,r0,i1) bcmpi_f(FCMP_LT,i0,r0,i1) #define bltr_d(i0,r0,r1) bcmpr_d(FCMP_LT,i0,r0,r1) @@ -488,13 +488,13 @@ static jit_word_t _bcmpi_d(jit_state_t*,jit_word_t, #define bunordr_d(i0,r0,r1) bcmpr_d(FCMP_UNORD,i0,r0,r1) #define bunordi_d(i0,r0,i1) bcmpi_d(FCMP_UNORD,i0,r0,i1) #define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE static void -_f39(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t x, jit_int32_t t) +_f39(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t x, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -504,8 +504,8 @@ _f39(jit_state_t *_jit, jit_int32_t o, } static void -_f40(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t x, jit_int32_t r) +_f40(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t x, jit_int32_t r) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -515,8 +515,8 @@ _f40(jit_state_t *_jit, jit_int32_t o, } static void -_f41(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t x, jit_int32_t t) +_f41(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t x, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -526,8 +526,8 @@ _f41(jit_state_t *_jit, jit_int32_t o, } static void -_f42(jit_state_t *_jit, jit_int32_t o, - jit_int32_t b, jit_int32_t i, jit_int32_t r) +_f42(jit_state_t *_jit, int32_t o, + int32_t b, jit_int32_t i, jit_int32_t r) { assert(!(o & ~0x3f)); assert(!(b & ~0x1f)); @@ -537,9 +537,9 @@ _f42(jit_state_t *_jit, jit_int32_t o, } static void -_f45(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r, jit_int32_t a, jit_int32_t b, jit_int32_t fmt, - jit_int32_t c, jit_int32_t d, jit_int32_t e, jit_int32_t t) +_f45(jit_state_t *_jit, int32_t o, + int32_t r, jit_int32_t a, jit_int32_t b, jit_int32_t fmt, + int32_t c, jit_int32_t d, jit_int32_t e, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -554,9 +554,9 @@ _f45(jit_state_t *_jit, jit_int32_t o, } static void -_f46(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, - jit_int32_t a, jit_int32_t s, jit_int32_t df, jit_int32_t sf, - jit_int32_t b, jit_int32_t c, jit_int32_t d, jit_int32_t t) +_f46(jit_state_t *_jit, int32_t o, jit_int32_t r, + int32_t a, jit_int32_t s, jit_int32_t df, jit_int32_t sf, + int32_t b, jit_int32_t c, jit_int32_t d, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r & ~0x1f)); @@ -573,9 +573,9 @@ _f46(jit_state_t *_jit, jit_int32_t o, jit_int32_t r, } static void -_f47_48(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r2, jit_int32_t r1, jit_int32_t y, jit_int32_t fmt, - jit_int32_t a, jit_int32_t b, jit_int32_t c, jit_int32_t t) +_f47_48(jit_state_t *_jit, int32_t o, + int32_t r2, jit_int32_t r1, jit_int32_t y, jit_int32_t fmt, + int32_t a, jit_int32_t b, jit_int32_t c, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r2 & ~0x1f)); @@ -590,10 +590,10 @@ _f47_48(jit_state_t *_jit, jit_int32_t o, } static void -_f49_52(jit_state_t *_jit, jit_int32_t o, - jit_int32_t r1, jit_int32_t r2, jit_int32_t y, - jit_int32_t v, jit_int32_t f, jit_int32_t a, jit_int32_t b, - jit_int32_t u, jit_int32_t c, jit_int32_t d, jit_int32_t t) +_f49_52(jit_state_t *_jit, int32_t o, + int32_t r1, jit_int32_t r2, jit_int32_t y, + int32_t v, jit_int32_t f, jit_int32_t a, jit_int32_t b, + int32_t u, jit_int32_t c, jit_int32_t d, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r1 & ~0x1f)); @@ -612,8 +612,8 @@ _f49_52(jit_state_t *_jit, jit_int32_t o, } static void -_f53(jit_state_t *_jit, jit_int32_t o, jit_int32_t r1, jit_int32_t r2, - jit_int32_t ta, jit_int32_t ra, jit_int32_t f, jit_int32_t tm) +_f53(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2, + int32_t ta, jit_int32_t ra, jit_int32_t f, jit_int32_t tm) { assert(!(o & ~0x3f)); assert(!(r1 & ~0x1f)); @@ -629,9 +629,9 @@ _f53(jit_state_t *_jit, jit_int32_t o, jit_int32_t r1, jit_int32_t r2, } static void -_f54(jit_state_t *_jit, jit_int32_t o, jit_int32_t r1, jit_int32_t r2, - jit_int32_t a, jit_int32_t b, jit_int32_t f, jit_int32_t c, - jit_int32_t d, jit_int32_t e, jit_int32_t g, jit_int32_t t) +_f54(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2, + int32_t a, jit_int32_t b, jit_int32_t f, jit_int32_t c, + int32_t d, jit_int32_t e, jit_int32_t g, jit_int32_t t) { assert(!(o & ~0x3f)); assert(!(r1 & ~0x1f)); @@ -649,7 +649,7 @@ _f54(jit_state_t *_jit, jit_int32_t o, jit_int32_t r1, jit_int32_t r2, } static void -_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi(alloca_offset - 8, _FP_REGNO, r1); ldxi_f(r0, _FP_REGNO, alloca_offset - 8); @@ -657,7 +657,7 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi(alloca_offset - 8, _FP_REGNO, r1); ldxi_f(r0, _FP_REGNO, alloca_offset - 8); @@ -665,9 +665,9 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); FCNVXT_S_S(r1, rn(reg)); stxi_f(alloca_offset - 8, _FP_REGNO, rn(reg)); @@ -676,9 +676,9 @@ _truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); FCNVXT_D_S(r1, rn(reg)); stxi_d(alloca_offset - 8, _FP_REGNO, rn(reg)); @@ -687,13 +687,13 @@ _truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.f = *i0; @@ -708,14 +708,14 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { - jit_int32_t ii[2]; + int32_t ii[2]; jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; data.d = *i0; if (_jitc->no_data) { @@ -735,10 +735,10 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) #define fpr_opi(name, type, size) \ static void \ _##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_##type(rn(reg), i0); \ name##r_##type(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -759,7 +759,7 @@ dopi(div) static void _cmpr_f(jit_state_t *_jit, jit_word_t c, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDI(0, r0); FCMP_S_(r1, r2, c); @@ -769,9 +769,9 @@ _cmpr_f(jit_state_t *_jit, jit_word_t c, static void _cmpi_f(jit_state_t *_jit, jit_word_t c, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg = jit_get_reg(jit_class_fpr); + int32_t reg = jit_get_reg(jit_class_fpr); movi_f(rn(reg), i0); cmpr_f(c, r0, r1, rn(reg)); jit_unget_reg(reg); @@ -779,7 +779,7 @@ _cmpi_f(jit_state_t *_jit, jit_word_t c, static void _cmpr_d(jit_state_t *_jit, jit_word_t c, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t r0, jit_int32_t r1, jit_int32_t r2) { LDI(0, r0); FCMP_D_(r1, r2, c); @@ -789,18 +789,18 @@ _cmpr_d(jit_state_t *_jit, jit_word_t c, static void _cmpi_d(jit_state_t *_jit, jit_word_t c, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg = jit_get_reg(jit_class_fpr); + int32_t reg = jit_get_reg(jit_class_fpr); movi_d(rn(reg), i0); cmpr_d(c, r0, r1, rn(reg)); jit_unget_reg(reg); } static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 3)); if (i0 >= -8192 && i0 <= 8191 && !(re_assemble_16(i0) & 6)) FLDWL(i0, _R0_REGNO, r0); @@ -813,9 +813,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) FLDWI(i0, r1, r0); /* |im11a|0|t|i| */ @@ -830,9 +830,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 7)); if (i0 >= -8192 && i0 <= 8191 && !(re_assemble_16(i0) & 14)) FLDDL(i0, _R0_REGNO, r0); @@ -845,9 +845,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) FLDDI(i0, r1, r0); /* |im10a|m|a|1|i| */ @@ -862,9 +862,9 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 3)); if (i0 >= -8192 && i0 <= 8191 && !(re_assemble_16(i0) & 6)) FSTWL(r0, i0, _R0_REGNO); @@ -878,9 +878,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) #if !FSTXR static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_f(rn(reg), r2); @@ -888,9 +888,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_d(rn(reg), r2); @@ -899,9 +899,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) #endif static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) FSTWI(r1, i0, r0); /* |im11a|0|t|i| */ @@ -921,9 +921,9 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; assert(!(i0 & 7)); if (i0 >= -8192 && i0 <= 8191 && !(re_assemble_16(i0) & 14)) FSTDL(r0, i0, _R0_REGNO); @@ -936,9 +936,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 >= -16 && i0 <= 15) FSTDI(r1, i0, r0); /* |im10a|m|a|1|i| */ @@ -959,7 +959,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static jit_word_t _bcmpr_f(jit_state_t *_jit, jit_word_t c, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_S_(r0, r1, c); @@ -972,10 +972,10 @@ _bcmpr_f(jit_state_t *_jit, jit_word_t c, static jit_word_t _bcmpi_f(jit_state_t *_jit, jit_word_t c, - jit_word_t i0, jit_int32_t r0, jit_float32_t *i1) + jit_word_t i0, int32_t r0, jit_float32_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_f(rn(reg), i1); FCMP_S_(r0, rn(reg), c); @@ -989,7 +989,7 @@ _bcmpi_f(jit_state_t *_jit, jit_word_t c, static jit_word_t _bcmpr_d(jit_state_t *_jit, jit_word_t c, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_D_(r0, r1, c); @@ -1002,10 +1002,10 @@ _bcmpr_d(jit_state_t *_jit, jit_word_t c, static jit_word_t _bcmpi_d(jit_state_t *_jit, jit_word_t c, - jit_word_t i0, jit_int32_t r0, jit_float64_t *i1) + jit_word_t i0, int32_t r0, jit_float64_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_d(rn(reg), i1); FCMP_D_(r0, rn(reg), c); @@ -1018,9 +1018,9 @@ _bcmpi_d(jit_state_t *_jit, jit_word_t c, } static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/hppa.c b/jit/hppa.c index 6b9ef3fe7..c1908e98b 100644 --- a/jit/hppa.c +++ b/jit/hppa.c @@ -141,7 +141,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -161,7 +161,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = alloca_offset; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -180,10 +180,10 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { - jit_int32_t offset; + int32_t offset; assert(_jitc->function); switch (length) { case 0: case 1: @@ -208,13 +208,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -240,7 +240,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); jit_movr(JIT_RET, u); @@ -258,7 +258,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); jit_movr_f(JIT_FRET, u); @@ -276,7 +276,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); jit_movr_d(JIT_FRET, u); @@ -330,7 +330,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -341,7 +341,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); _jitc->function->self.size -= sizeof(jit_word_t); if (jit_arg_reg_p(_jitc->function->self.argi)) @@ -358,7 +358,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); _jitc->function->self.size -= sizeof(jit_word_t); if (jit_arg_reg_p(_jitc->function->self.argi)) @@ -375,7 +375,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (_jitc->function->self.argi & 1) { ++_jitc->function->self.argi; @@ -399,7 +399,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -411,7 +411,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -423,7 +423,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -435,7 +435,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -447,7 +447,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -459,7 +459,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -473,7 +473,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (v->u.w >= 0) @@ -488,7 +488,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -500,7 +500,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -514,7 +514,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (v->u.w >= 0) @@ -529,7 +529,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -541,7 +541,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -555,7 +555,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (v->u.w >= 0) @@ -570,7 +570,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -588,7 +588,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -607,7 +607,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -634,7 +634,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -663,7 +663,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -700,7 +700,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -737,9 +737,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { if (spec & jit_class_gpr) { @@ -757,7 +757,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -788,7 +788,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -796,7 +796,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -804,7 +804,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -812,7 +812,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -820,7 +820,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); jit_movr(r0, JIT_RET); @@ -828,7 +828,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); jit_movr_f(r0, JIT_FRET); @@ -836,7 +836,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); jit_movr_d(r0, JIT_FRET); @@ -849,15 +849,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1565,7 +1565,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_gpr_t r0, jit_fpr_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/ia64-cpu.c b/jit/ia64-cpu.c index 8372b2438..9dcd97545 100644 --- a/jit/ia64-cpu.c +++ b/jit/ia64-cpu.c @@ -238,7 +238,7 @@ static void _sync(jit_state_t*); #define flush() _flush(_jit) static void _flush(jit_state_t*); #define inst(w, t) _inst(_jit, w, t) -static void _inst(jit_state_t*, jit_word_t, jit_uint8_t); +static void _inst(jit_state_t*, jit_word_t, uint8_t); #define A1(x4,x2,r3,r2,r1) _A1(_jit,0,x4,x2,r3,r2,r1) static void _A1(jit_state_t*, jit_word_t, jit_word_t,jit_word_t,jit_word_t,jit_word_t,jit_word_t); @@ -1177,141 +1177,141 @@ static void _X5(jit_state_t*,jit_word_t, #define addr(r0,r1,r2) ADD(r0,r1,r2) #define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define addcr(r0, r1, r2) _addcr(_jit, r0, r1, r2) -static void _addcr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); #define addci(r0, r1, i0) _addci(_jit, r0, r1, i0) -static void _addci(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define addxr(r0, r1, r2) _addxr(_jit, r0, r1, r2) -static void _addxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define addxi(r0, r1, i0) _addxi(_jit, r0, r1, i0) -static void _addxi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); #define subr(r0,r1,r2) SUB(r0,r1,r2) #define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0, r1, r2) _subcr(_jit, r0, r1, r2) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0, r1, i0) _subci(_jit, r0, r1, i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0, r1, r2) _subxr(_jit, r0, r1, r2) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subxi(r0, r1, i0) _subxi(_jit, r0, r1, i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) -static void _mulr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define mulh(r0,r1,r2,sign) _mulh(_jit,r0,r1,r2,sign) -static void _mulh(jit_state_t*,jit_bool_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulh(jit_state_t*,jit_bool_t,int32_t,jit_int32_t,jit_int32_t); #define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) #define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) #define iqmulr(r0,r1,r2,r3,sign) _iqmulr(_jit,r0,r1,r2,r3,sign) -static void _iqmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); #define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) #define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) #define iqmuli(r0,r1,r2,i0,sign) _iqmuli(_jit,r0,r1,r2,i0,sign) -static void _iqmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); #define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) #define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) #define iqdivr(r0,r1,r2,r3,sign) _iqdivr(_jit,r0,r1,r2,r3,sign) -static void _iqdivr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); #define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) #define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) #define iqdivi(r0,r1,r2,i0,sign) _iqdivi(_jit,r0,r1,r2,i0,sign) -static void _iqdivi(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); #define andr(r0,r1,r2) AND(r0,r1,r2) #define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define orr(r0,r1,r2) OR(r0,r1,r2) #define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define xorr(r0,r1,r2) XOR(r0,r1,r2) #define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define lshr(r0,r1,r2) SHL(r0,r1,r2) #define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define rshr(r0,r1,r2) SHR(r0,r1,r2) #define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define rshr_u(r0,r1,r2) SHR_U(r0,r1,r2) #define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ltr(r0,r1,r2) _ltr(_jit,r0,r1,r2) -static void _ltr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lti(r0,r1,i0) _lti(_jit,r0,r1,i0) -static void _lti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ltr_u(r0,r1,r2) _ltr_u(_jit,r0,r1,r2) -static void _ltr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lti_u(r0,r1,i0) _lti_u(_jit,r0,r1,i0) -static void _lti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ler(r0,r1,r2) _ler(_jit,r0,r1,r2) -static void _ler(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lei(r0,r1,i0) _lei(_jit,r0,r1,i0) -static void _lei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ler_u(r0,r1,r2) _ler_u(_jit,r0,r1,r2) -static void _ler_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lei_u(r0,r1,i0) _lei_u(_jit,r0,r1,i0) -static void _lei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define eqr(r0,r1,r2) _eqr(_jit,r0,r1,r2) -static void _eqr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define eqi(r0,r1,i0) _eqi(_jit,r0,r1,i0) -static void _eqi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _eqi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ger(r0,r1,r2) _ger(_jit,r0,r1,r2) -static void _ger(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gei(r0,r1,i0) _gei(_jit,r0,r1,i0) -static void _gei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ger_u(r0,r1,r2) _ger_u(_jit,r0,r1,r2) -static void _ger_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gei_u(r0,r1,i0) _gei_u(_jit,r0,r1,i0) -static void _gei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define gtr(r0,r1,r2) _gtr(_jit,r0,r1,r2) -static void _gtr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gti(r0,r1,i0) _gti(_jit,r0,r1,i0) -static void _gti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define gtr_u(r0,r1,r2) _gtr_u(_jit,r0,r1,r2) -static void _gtr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gti_u(r0,r1,i0) _gti_u(_jit,r0,r1,i0) -static void _gti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) -static void _ner(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) -static void _nei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define negr(r0,r1) subr(r0,0,r1) #define comr(r0,r1) ANDCMI(r0,-1,r1) #define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); #define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); #define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); #if __BYTE_ORDER == __LITTLE_ENDIAN # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # define htonr_ul(r0,r1) MUX1(r0,r1,MUX_REV) #else # define htonr_us(r0,r1) extr_us(r0,r1) @@ -1325,77 +1325,77 @@ static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); #define extr_i(r0,r1) SXT4(r0,r1) #define extr_ui(r0,r1) ZXT4(r0,r1) #define bltr(i0,r0,r1) _bltr(_jit,i0,r0,r1) -static jit_word_t _bltr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti(i0,r0,i1) _blti(_jit,i0,r0,i1) -static jit_word_t _blti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bltr_u(i0,r0,r1) _bltr_u(_jit,i0,r0,r1) -static jit_word_t _bltr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti_u(i0,r0,i1) _blti_u(_jit,i0,r0,i1) -static jit_word_t _blti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bler(i0,r0,r1) _bler(_jit,i0,r0,r1) -static jit_word_t _bler(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei(i0,r0,i1) _blei(_jit,i0,r0,i1) -static jit_word_t _blei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bler_u(i0,r0,r1) _bler_u(_jit,i0,r0,r1) -static jit_word_t _bler_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei_u(i0,r0,i1) _blei_u(_jit,i0,r0,i1) -static jit_word_t _blei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define beqr(i0,r0,r1) _beqr(_jit,i0,r0,r1) -static jit_word_t _beqr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define beqi(i0,r0,i1) _beqi(_jit,i0,r0,i1) -static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bger(i0,r0,r1) _bger(_jit,i0,r0,r1) -static jit_word_t _bger(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei(i0,r0,i1) _bgei(_jit,i0,r0,i1) -static jit_word_t _bgei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bger_u(i0,r0,r1) _bger_u(_jit,i0,r0,r1) -static jit_word_t _bger_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei_u(i0,r0,i1) _bgei_u(_jit,i0,r0,i1) -static jit_word_t _bgei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgtr(i0,r0,r1) _bgtr(_jit,i0,r0,r1) -static jit_word_t _bgtr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti(i0,r0,i1) _bgti(_jit,i0,r0,i1) -static jit_word_t _bgti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgtr_u(i0,r0,r1) _bgtr_u(_jit,i0,r0,r1) -static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti_u(i0,r0,i1) _bgti_u(_jit,i0,r0,i1) -static jit_word_t _bgti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bner(i0,r0,r1) _bner(_jit,i0,r0,r1) -static jit_word_t _bner(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bnei(i0,r0,i1) _bnei(_jit,i0,r0,i1) -static jit_word_t _bnei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bmsr(i0,r0,r1) _bmsr(_jit,i0,r0,r1) -static jit_word_t _bmsr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmsr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bmsi(i0,r0,i1) _bmsi(_jit,i0,r0,i1) -static jit_word_t _bmsi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmsi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bmcr(i0,r0,r1) _bmcr(_jit,i0,r0,r1) -static jit_word_t _bmcr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmcr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bmci(i0,r0,i1) _bmci(_jit,i0,r0,i1) -static jit_word_t _bmci(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmci(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define baddr(i0,r0,r1,cc) _baddr(_jit,i0,r0,r1,cc) static jit_word_t _baddr(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_bool_t); + int32_t,jit_int32_t,jit_bool_t); #define baddi(i0,r0,i1,cc) _baddi(_jit,i0,r0,i1,cc) static jit_word_t _baddi(jit_state_t*,jit_word_t, - jit_int32_t,jit_word_t,jit_bool_t); + int32_t,jit_word_t,jit_bool_t); #define baddr_u(i0,r0,r1,cc) _baddr_u(_jit,i0,r0,r1,cc) static jit_word_t _baddr_u(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_bool_t); + int32_t,jit_int32_t,jit_bool_t); #define baddi_u(i0,r0,i1,cc) _baddi_u(_jit,i0,r0,i1,cc) static jit_word_t _baddi_u(jit_state_t*,jit_word_t, - jit_int32_t,jit_word_t,jit_bool_t); + int32_t,jit_word_t,jit_bool_t); #define bsubr(i0,r0,r1,cc) _bsubr(_jit,i0,r0,r1,cc) static jit_word_t _bsubr(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_bool_t); + int32_t,jit_int32_t,jit_bool_t); #define bsubi(i0,r0,i1,cc) _bsubi(_jit,i0,r0,i1,cc) static jit_word_t _bsubi(jit_state_t*,jit_word_t, - jit_int32_t,jit_word_t,jit_bool_t); + int32_t,jit_word_t,jit_bool_t); #define bsubr_u(i0,r0,r1,cc) _bsubr_u(_jit,i0,r0,r1,cc) static jit_word_t _bsubr_u(jit_state_t*,jit_word_t, - jit_int32_t,jit_int32_t,jit_bool_t); + int32_t,jit_int32_t,jit_bool_t); #define bsubi_u(i0,r0,i1,cc) _bsubi_u(_jit,i0,r0,i1,cc) static jit_word_t _bsubi_u(jit_state_t*,jit_word_t, - jit_int32_t,jit_word_t,jit_bool_t); + int32_t,jit_word_t,jit_bool_t); #define boaddr(i0,r0,r1) baddr(i0,r0,r1,1) #define boaddi(i0,r0,i1) baddi(i0,r0,i1,1) #define boaddr_u(i0,r0,r1) baddr_u(i0,r0,r1,1) @@ -1413,93 +1413,93 @@ static jit_word_t _bsubi_u(jit_state_t*,jit_word_t, #define bxsubr_u(i0,r0,r1) bsubr_u(i0,r0,r1,0) #define bxsubi_u(i0,r0,i1) bsubi_u(i0,r0,i1,0) #define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) -static void _ldr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); #define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); #define ldr_uc(r0,r1) LD1(r0,r1) #define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); #define ldr_s(r0,r1) _ldr_s(_jit,r0,r1) -static void _ldr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_s(jit_state_t*,int32_t,jit_int32_t); #define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); #define ldr_us(r0,r1) LD2(r0,r1) #define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); #define ldr_i(r0,r1) _ldr_i(_jit,r0,r1) -static void _ldr_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_i(jit_state_t*,int32_t,jit_int32_t); #define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); #define ldr_ui(r0,r1) LD4(r0,r1) #define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); #define ldr_l(r0,r1) LD8(r0,r1) #define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); #define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldxr_l(r0,r1,r2) _ldxr_l(_jit,r0,r1,r2) -static void _ldxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define str_c(r0,r1) ST1(r0,r1) #define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); #define str_s(r0,r1) ST2(r0,r1) #define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); #define str_i(r0,r1) ST4(r0,r1) #define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); #define str_l(r0,r1) ST8(r0,r1) #define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); #define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define stxr_l(r0,r1,r2) _stxr_l(_jit,r0,r1,r2) -static void _stxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define jmpr(r0) _jmpr(_jit,r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); #define jmpi(i0) _jmpi(_jit,i0) static void _jmpi(jit_state_t*,jit_word_t); #define jmpi_p(i0) _jmpi_p(_jit,i0) static jit_word_t _jmpi_p(jit_state_t*,jit_word_t); #define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); #define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*,jit_word_t); #define calli_p(i0) _calli_p(_jit,i0) @@ -1509,9 +1509,9 @@ static void _prolog(jit_state_t*,jit_node_t*); #define epilog(node) _epilog(_jit,node) static void _epilog(jit_state_t*,jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); #define patch_at(node,instr,label) _patch_at(_jit,node,instr,label) static void _patch_at(jit_state_t*,jit_code_t,jit_word_t,jit_word_t); #endif @@ -2116,7 +2116,7 @@ _flush(jit_state_t *_jit) } static void -_inst(jit_state_t *_jit, jit_word_t i, jit_uint8_t t) +_inst(jit_state_t *_jit, jit_word_t i, uint8_t t) { if (_jitc->ioff > 2) flush(); @@ -2685,7 +2685,7 @@ static void _I24(jit_state_t *_jit, jit_word_t _p, jit_word_t im) { - jit_uint8_t cc = INST_I; + uint8_t cc = INST_I; assert(!(_p & ~0x3fL)); assert(!(im & ~0xfffffffL)); TSTPRED(_p); @@ -2817,7 +2817,7 @@ static void _M3(jit_state_t *_jit, jit_word_t _p, jit_word_t x6, jit_word_t ht, jit_word_t r3, jit_word_t im, jit_word_t r1) { - jit_uint8_t cc = INST_M; + uint8_t cc = INST_M; assert(!(_p & ~0x3fL)); assert(!(x6 & ~0x3fL)); assert(!(ht & ~0x3L)); @@ -3451,7 +3451,7 @@ _X5(jit_state_t *_jit, jit_word_t _p, } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* patch pushargr */ if (r0 >= 120) @@ -3461,7 +3461,7 @@ _movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { /* patch pushargi */ if (r0 >= 120) @@ -3474,7 +3474,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; sync(); @@ -3484,9 +3484,9 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -8192 && i0 <= 8191) ADDS(r0, i0, r1); else if (!(r1 & ~3) && i0 >= -2097152 && i0 <= 2097151) @@ -3500,9 +3500,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -3519,9 +3519,9 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -3538,9 +3538,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -3550,9 +3550,9 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -3562,9 +3562,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subr(r0, r1, rn(reg)); @@ -3572,9 +3572,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -3591,9 +3591,9 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -3610,9 +3610,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -3622,9 +3622,9 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -3634,9 +3634,9 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) SUBI(r0, i0, r1); else if (!(r1 & ~3) && i0 >= -2097151 && i0 <= 2097152) @@ -3650,9 +3650,9 @@ _rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t f0, f1; + int32_t f0, f1; f0 = jit_get_reg(jit_class_fpr); f1 = jit_get_reg(jit_class_fpr); SETF_SIG(rn(f0), r1); @@ -3664,9 +3664,9 @@ _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); mulr(r0, r1, rn(reg)); @@ -3700,7 +3700,7 @@ __umoddi3(unsigned long u, unsigned long v) #endif static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOV(_jitc->rout, r1); MOV(_jitc->rout + 1, r2); @@ -3709,9 +3709,9 @@ _divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; switch (i0) { case 1: movr(r0, r1); @@ -3734,7 +3734,7 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOV(_jitc->rout, r1); MOV(_jitc->rout + 1, r2); @@ -3743,9 +3743,9 @@ _divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 1) { movr(r0, r1); return; @@ -3762,7 +3762,7 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOV(_jitc->rout, r1); MOV(_jitc->rout + 1, r2); @@ -3771,9 +3771,9 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 1 || i0 == -1) { MOV(r0, GR_0); return; @@ -3785,7 +3785,7 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOV(_jitc->rout, r1); MOV(_jitc->rout + 1, r2); @@ -3794,9 +3794,9 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 1) { MOV(r0, GR_0); return; @@ -3813,9 +3813,9 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) static void _mulh(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_bool_t sign) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_bool_t sign) { - jit_int32_t f0, f1; + int32_t f0, f1; f0 = jit_get_reg(jit_class_fpr); f1 = jit_get_reg(jit_class_fpr); SETF_SIG(rn(f0), r1); @@ -3830,10 +3830,10 @@ _mulh(jit_state_t *_jit, } static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 || r0 == r3) { reg = jit_get_reg(jit_class_gpr); mulr(rn(reg), r2, r3); @@ -3848,10 +3848,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqmulr(r0, r1, r2, rn(reg), sign); @@ -3859,11 +3859,11 @@ _iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t sv0, rg0; - jit_int32_t sv1, rg1; + int32_t sv0, rg0; + int32_t sv1, rg1; if (r0 == r2 || r0 == r3) { sv0 = jit_get_reg(jit_class_gpr); @@ -3895,10 +3895,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqdivr(r0, r1, r2, rn(reg), sign); @@ -3906,9 +3906,9 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) ANDI(r0, i0, r1); else if (~i0 >= -128 && ~i0 <= 127) @@ -3922,9 +3922,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) ORI(r0, i0, r1); else { @@ -3936,9 +3936,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) XORI(r0, i0, r1); else { @@ -3951,9 +3951,9 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __BYTE_ORDER == __LITTLE_ENDIAN static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr); rshi(rn(t0), r1, 8); andi(r0, r1, 0xff); @@ -3964,11 +3964,11 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr); t2 = jit_get_reg(jit_class_gpr); @@ -3992,9 +3992,9 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); lshr(r0, r1, rn(reg)); @@ -4002,9 +4002,9 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); rshr(r0, r1, rn(reg)); @@ -4012,9 +4012,9 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); rshr_u(r0, r1, rn(reg)); @@ -4022,7 +4022,7 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LT(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -4030,9 +4030,9 @@ _ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -127 && i0 <= 128) CMPI_LT(PR_7, PR_6, i0 - 1, r1); else { @@ -4046,7 +4046,7 @@ _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LTU(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -4054,9 +4054,9 @@ _ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -127 && i0 <= 128) CMPI_LTU(PR_7, PR_6, i0 - 1, r1); else { @@ -4070,7 +4070,7 @@ _lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LT(PR_6, PR_7, r2, r1); MOV_p(r0, GR_0, PR_6); @@ -4078,9 +4078,9 @@ _ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ler(r0, r1, rn(reg)); @@ -4088,7 +4088,7 @@ _lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LTU(PR_6, PR_7, r2, r1); MOV_p(r0, GR_0, PR_6); @@ -4096,9 +4096,9 @@ _ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ler_u(r0, r1, rn(reg)); @@ -4106,7 +4106,7 @@ _lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_EQ(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -4114,9 +4114,9 @@ _eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_eqi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) CMPI_EQ(PR_6, PR_7, i0, r1); else { @@ -4130,7 +4130,7 @@ _eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LT(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -4138,9 +4138,9 @@ _ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -127 && i0 <= 128) CMPI_LT(PR_7, PR_6, i0 - 1, r1); else { @@ -4154,7 +4154,7 @@ _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LTU(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -4162,9 +4162,9 @@ _ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -127 && i0 <= 128) CMPI_LTU(PR_7, PR_6, i0 - 1, r1); else { @@ -4178,7 +4178,7 @@ _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LT(PR_6, PR_7, r2, r1); MOVI_p(r0, 1, PR_6); @@ -4186,9 +4186,9 @@ _gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); gtr(r0, r1, rn(reg)); @@ -4196,7 +4196,7 @@ _gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_LTU(PR_6, PR_7, r2, r1); MOVI_p(r0, 1, PR_6); @@ -4204,9 +4204,9 @@ _gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); gtr_u(r0, r1, rn(reg)); @@ -4214,7 +4214,7 @@ _gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP_EQ(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -4222,9 +4222,9 @@ _ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 >= -128 && i0 <= 127) CMPI_EQ(PR_6, PR_7, i0, r1); else { @@ -4238,16 +4238,16 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_uc(r0, r1); extr_c(r0, r0); } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_c(r0, rn(reg)); @@ -4255,9 +4255,9 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_uc(r0, rn(reg)); @@ -4265,16 +4265,16 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_us(r0, r1); extr_s(r0, r0); } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_s(r0, rn(reg)); @@ -4282,9 +4282,9 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_us(r0, rn(reg)); @@ -4292,16 +4292,16 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_ui(r0, r1); extr_i(r0, r0); } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_i(r0, rn(reg)); @@ -4309,9 +4309,9 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_ui(r0, rn(reg)); @@ -4319,9 +4319,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_l(r0, rn(reg)); @@ -4329,9 +4329,9 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_c(r0, rn(reg)); @@ -4339,9 +4339,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4353,9 +4353,9 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_uc(r0, rn(reg)); @@ -4363,9 +4363,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4377,9 +4377,9 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_s(r0, rn(reg)); @@ -4387,9 +4387,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4401,9 +4401,9 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_us(r0, rn(reg)); @@ -4411,9 +4411,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4425,9 +4425,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_i(r0, rn(reg)); @@ -4435,9 +4435,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4449,9 +4449,9 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_ui(r0, rn(reg)); @@ -4459,9 +4459,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4473,9 +4473,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_l(r0, rn(reg)); @@ -4483,9 +4483,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -4497,9 +4497,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_c(rn(reg), r0); @@ -4507,9 +4507,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_s(rn(reg), r0); @@ -4517,9 +4517,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_i(rn(reg), r0); @@ -4527,9 +4527,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_l(rn(reg), r0); @@ -4537,9 +4537,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_c(rn(reg), r2); @@ -4547,9 +4547,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -4561,9 +4561,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_s(rn(reg), r2); @@ -4571,9 +4571,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -4585,9 +4585,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_i(rn(reg), r2); @@ -4595,9 +4595,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -4609,9 +4609,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_l(rn(reg), r2); @@ -4619,9 +4619,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -4633,7 +4633,7 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LT(PR_6, PR_7, r0, r1); @@ -4644,10 +4644,10 @@ _bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -127 && i1 <= 128) CMPI_LT(PR_7, PR_6, i1 - 1, r0); else { @@ -4663,7 +4663,7 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LTU(PR_6, PR_7, r0, r1); @@ -4674,10 +4674,10 @@ _bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -127 && i1 <= 128) CMPI_LTU(PR_7, PR_6, i1 - 1, r0); else { @@ -4693,7 +4693,7 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LT(PR_6, PR_7, r1, r0); @@ -4704,10 +4704,10 @@ _bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bler(i0, r0, rn(reg)); @@ -4716,7 +4716,7 @@ _blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LTU(PR_6, PR_7, r1, r0); @@ -4727,10 +4727,10 @@ _bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bler_u(i0, r0, rn(reg)); @@ -4739,7 +4739,7 @@ _blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_EQ(PR_6, PR_7, r0, r1); @@ -4750,10 +4750,10 @@ _beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -128 && i1 <= 127) CMPI_EQ(PR_6, PR_7, i1, r0); else { @@ -4769,7 +4769,7 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LT(PR_6, PR_7, r0, r1); @@ -4780,10 +4780,10 @@ _bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -127 && i1 <= 128) CMPI_LT(PR_7, PR_6, i1 - 1, r0); else { @@ -4799,7 +4799,7 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LTU(PR_6, PR_7, r0, r1); @@ -4810,10 +4810,10 @@ _bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -127 && i1 <= 128) CMPI_LTU(PR_7, PR_6, i1 - 1, r0); else { @@ -4829,7 +4829,7 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LT(PR_6, PR_7, r1, r0); @@ -4840,10 +4840,10 @@ _bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bgtr(i0, r0, rn(reg)); @@ -4852,7 +4852,7 @@ _bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_LTU(PR_6, PR_7, r1, r0); @@ -4863,10 +4863,10 @@ _bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bgtr_u(i0, r0, rn(reg)); @@ -4875,7 +4875,7 @@ _bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_EQ(PR_6, PR_7, r0, r1); @@ -4886,10 +4886,10 @@ _bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 >= -128 && i1 <= 127) CMPI_EQ(PR_6, PR_7, i1, r0); else { @@ -4905,10 +4905,10 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmsr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); andr(rn(reg), r0, r1); CMPI_EQ(PR_6, PR_7, 0, rn(reg)); @@ -4920,10 +4920,10 @@ _bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmsi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); andr(rn(reg), r0, rn(reg)); @@ -4936,10 +4936,10 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmcr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); andr(rn(reg), r0, r1); CMPI_EQ(PR_6, PR_7, 0, rn(reg)); @@ -4951,10 +4951,10 @@ _bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmci(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); andr(rn(reg), r0, rn(reg)); @@ -4967,13 +4967,13 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_baddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_baddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 + r1; overflow = r1 < 0 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -4996,11 +4996,11 @@ _baddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_baddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_baddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = baddr(i0, r0, rn(reg), carry); @@ -5009,12 +5009,12 @@ _baddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_baddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_baddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); addr(rn(t0), r0, r1); @@ -5030,11 +5030,11 @@ _baddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_baddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_baddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = baddr_u(i0, r0, rn(reg), carry); @@ -5043,13 +5043,13 @@ _baddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_bsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_bsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 - r1; overflow = 0 < r1 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -5072,11 +5072,11 @@ _bsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_bsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_bsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bsubr(i0, r0, rn(reg), carry); @@ -5085,12 +5085,12 @@ _bsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static jit_word_t -_bsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, +_bsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1, jit_bool_t carry) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); subr(rn(t0), r0, r1); @@ -5106,11 +5106,11 @@ _bsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1, } static jit_word_t -_bsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, +_bsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1, jit_bool_t carry) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bsubr_u(i0, r0, rn(reg), carry); @@ -5119,7 +5119,7 @@ _bsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1, } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { MOV_br_rn(BR_6, r0); BR(BR_6); @@ -5149,9 +5149,9 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); LD8_inc(rn(reg), r0, 8); MOV_br_rn(BR_6, rn(reg)); @@ -5163,7 +5163,7 @@ _callr(jit_state_t *_jit, jit_int32_t r0) static void _calli(jit_state_t *_jit, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); callr(rn(reg)); @@ -5174,7 +5174,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); w = movi_p(rn(reg), i0); callr(rn(reg)); @@ -5185,10 +5185,10 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg, ruse, rout; + int32_t reg, ruse, rout; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -5312,7 +5312,7 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { assert(_jitc->function->self.call & jit_call_varargs); /* Initialize va_list to the first stack argument. */ @@ -5323,7 +5323,7 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); /* Load argument. */ diff --git a/jit/ia64-fpu.c b/jit/ia64-fpu.c index e152671f4..913c0fdd0 100644 --- a/jit/ia64-fpu.c +++ b/jit/ia64-fpu.c @@ -432,298 +432,298 @@ static void F16_(jit_state_t*,jit_word_t, #define movr_f(r0,r1) movr_d(r0,r1) #define movr_d(r0,r1) MOVF(r0,r1) #define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); #define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); #define movr_w_f(r0,r1) _movr_w_f(_jit,r0,r1) -static void _movr_w_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_w_f(jit_state_t*,int32_t,jit_int32_t); #define movr_f_w(r0,r1) _movr_f_w(_jit,r0,r1) -static void _movr_f_w(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_f_w(jit_state_t*,int32_t,jit_int32_t); #define movr_w_d(r0,r1) _movr_w_d(_jit,r0,r1) -static void _movr_w_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_w_d(jit_state_t*,int32_t,jit_int32_t); #define movr_d_w(r0,r1) _movr_d_w(_jit,r0,r1) -static void _movr_d_w(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d_w(jit_state_t*,int32_t,jit_int32_t); #define movi_f_w(r0,i0) _movi_f_w(_jit,r0,i0) -static void _movi_f_w(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f_w(jit_state_t*,int32_t,jit_float32_t*); #define movi_d_w(r0,i0) _movi_d_w(_jit,r0,i0) -static void _movi_d_w(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d_w(jit_state_t*,int32_t,jit_float64_t*); #define absr_f(r0,r1) absr_d(r0,r1) #define absr_d(r0,r1) FABS(r0,r1) #define negr_f(r0,r1) negr_d(r0,r1) #define negr_d(r0,r1) FNEG(r0,r1) #define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1) -static void _sqrtr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sqrtr_f(jit_state_t*,int32_t,jit_int32_t); #define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1) -static void _sqrtr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sqrtr_d(jit_state_t*,int32_t,jit_int32_t); #define extr_f_d(r0,r1) FNORM_D(r0,r1) #define extr_d_f(r0,r1) FNORM_S(r0,r1) #define extr_f(r0,r1) _extr_f(_jit,r0,r1) -static void _extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_f(jit_state_t*,int32_t,jit_int32_t); #define extr_d(r0,r1) _extr_d(_jit,r0,r1) -static void _extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_d(jit_state_t*,int32_t,jit_int32_t); #define truncr_f_i(r0,r1) truncr_d_l(r0,r1) #define truncr_d_i(r0,r1) truncr_d_l(r0,r1) #define truncr_f_l(r0,r1) truncr_d_l(r0,r1) #define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) -static void _truncr_d_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); #define addr_f(r0,r1,r2) FADD_S(r0,r1,r2) #define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define addr_d(r0,r1,r2) FADD_D(r0,r1,r2) #define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define subr_f(r0,r1,r2) FSUB_S(r0,r1,r2) #define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define subr_d(r0,r1,r2) FSUB_D(r0,r1,r2) #define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) #define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) #define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define mulr_f(r0,r1,r2) FMPY_S(r0,r1,r2) #define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define mulr_d(r0,r1,r2) FMPY_D(r0,r1,r2) #define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) -static void _divr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) -static void _divr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) #define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) -static void _ltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) -static void _lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) -static void _lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ler_f(r0,r1,r2) ler_d(r0,r1,r2) #define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) -static void _ler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) -static void _lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) -static void _lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) #define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) -static void _eqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) -static void _eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) -static void _eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ger_f(r0,r1,r2) ger_d(r0,r1,r2) #define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) -static void _ger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) -static void _gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) -static void _gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) #define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) -static void _gtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) -static void _gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) -static void _gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ner_f(r0,r1,r2) ner_d(r0,r1,r2) #define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) -static void _ner_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) -static void _nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) -static void _nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) #define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) -static void _unltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) -static void _unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) -static void _unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define unler_f(r0,r1,r2) unler_d(r0,r1,r2) #define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) -static void _unler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) -static void _unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) -static void _unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) #define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) -static void _uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) -static void _uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define unger_f(r0,r1,r2) unger_d(r0,r1,r2) #define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) -static void _unger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) -static void _ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) -static void _ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) #define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) -static void _ungtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) -static void _ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) -static void _ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) #define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) -static void _ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) -static void _ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) #define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) -static void _ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) -static void _ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) -static void _ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) #define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) -static void _unordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) -static void _unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); #define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) -static void _unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define ldr_f(r0,r1) LDFS(r0,r1) #define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); #define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ldr_d(r0,r1) LDFD(r0,r1) #define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); #define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define str_f(r0,r1) STFS(r0,r1) #define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); #define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define str_d(r0,r1) STFD(r0,r1) #define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); #define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) #define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) -static jit_word_t _bltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) -static jit_word_t _blti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) -static jit_word_t _blti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bler_f(i0,r0,r1) bler_d(i0,r0,r1) #define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) -static jit_word_t _bler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) -static jit_word_t _blei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) -static jit_word_t _blei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) #define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) -static jit_word_t _beqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) -static jit_word_t _beqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) -static jit_word_t _beqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bger_f(i0,r0,r1) bger_d(i0,r0,r1) #define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) -static jit_word_t _bger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) -static jit_word_t _bgei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) -static jit_word_t _bgei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) #define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) -static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) -static jit_word_t _bgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) -static jit_word_t _bgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bner_f(i0,r0,r1) bner_d(i0,r0,r1) #define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) -static jit_word_t _bner_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) -static jit_word_t _bnei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) -static jit_word_t _bnei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) #define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) -static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) -static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) -static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) #define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) -static jit_word_t _bunler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) -static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) -static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) #define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) -static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) -static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) -static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) #define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) -static jit_word_t _bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) -static jit_word_t _bungei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) -static jit_word_t _bungei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) #define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) -static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) -static jit_word_t _bungti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) -static jit_word_t _bungti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) #define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) -static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) -static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) -static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) #define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) -static jit_word_t _bordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) -static jit_word_t _bordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) -static jit_word_t _bordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); #define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) #define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) -static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) -static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); #define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) -static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE @@ -1014,13 +1014,13 @@ F16_(jit_state_t* _jit, jit_word_t _p, } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.f = *i0; @@ -1034,13 +1034,13 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.d = *i0; @@ -1054,7 +1054,7 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) } static void -_movr_w_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_w_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Should be used only in this case (with out0 == 120) */ if (r1 >= 120) @@ -1063,7 +1063,7 @@ _movr_w_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movr_f_w(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_f_w(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Should actually be used only in this case (with out0 == 120) */ if (r0 >= 120) @@ -1072,7 +1072,7 @@ _movr_f_w(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi_f_w(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f_w(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { jit_data_t data; @@ -1088,7 +1088,7 @@ _movi_f_w(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movr_w_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_w_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Should be used only in this case (with out0 == 120) */ if (r1 >= 120) @@ -1097,7 +1097,7 @@ _movr_w_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movr_d_w(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d_w(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Should be used only in this case (with out0 == 120) */ if (r0 >= 120) @@ -1106,7 +1106,7 @@ _movr_d_w(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi_d_w(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d_w(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { jit_word_t w; @@ -1127,10 +1127,10 @@ _movi_d_w(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) #define fpr_opi(name, type, size) \ static void \ _##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_##type(rn(reg), i0); \ name##r_##type(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -1138,11 +1138,11 @@ _##name##i_##type(jit_state_t *_jit, \ #define fpr_bopi(name, type, size) \ static jit_word_t \ _b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ movi_##type(rn(reg), i1); \ word = b##name##r_##type(i0, r0, rn(reg)); \ @@ -1167,9 +1167,9 @@ dopi(div) /* translation from gcc -O0 */ static void -_divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0, t1, t2; + int32_t t0, t1, t2; t0 = jit_get_reg(jit_class_fpr); t1 = jit_get_reg(jit_class_fpr); t2 = jit_get_reg(jit_class_fpr); @@ -1189,9 +1189,9 @@ _divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0, t1, t2; + int32_t t0, t1, t2; t0 = jit_get_reg(jit_class_fpr); t1 = jit_get_reg(jit_class_fpr); t2 = jit_get_reg(jit_class_fpr); @@ -1211,9 +1211,9 @@ _divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); SETF_SIG(rn(reg), r1); FCVT_XF(r0, rn(reg)); @@ -1222,9 +1222,9 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); SETF_SIG(rn(reg), r1); FCVT_XF(r0, rn(reg)); @@ -1233,9 +1233,9 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); FCVT_FX_TRUNC(rn(reg), r1); GETF_SIG(r0, rn(reg)); @@ -1244,7 +1244,7 @@ _truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LT(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -1254,7 +1254,7 @@ fopi(lt) dopi(lt) static void -_ler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LE(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -1264,7 +1264,7 @@ fopi(le) dopi(le) static void -_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_EQ(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -1274,7 +1274,7 @@ fopi(eq) dopi(eq) static void -_ger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LE(PR_6, PR_7, r2, r1); MOVI_p(r0, 1, PR_6); @@ -1284,7 +1284,7 @@ fopi(ge) dopi(ge) static void -_gtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LT(PR_6, PR_7, r2, r1); MOVI_p(r0, 1, PR_6); @@ -1294,7 +1294,7 @@ fopi(gt) dopi(gt) static void -_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_EQ(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -1304,7 +1304,7 @@ fopi(ne) dopi(ne) static void -_unltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LE(PR_6, PR_7, r2, r1); MOV_p(r0, GR_0, PR_6); @@ -1314,7 +1314,7 @@ fopi(unlt) dopi(unlt) static void -_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LT(PR_6, PR_7, r2, r1); MOV_p(r0, GR_0, PR_6); @@ -1324,7 +1324,7 @@ fopi(unle) dopi(unle) static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOVI(r0, 1); FCMP_LT(PR_8, PR_9, r1, r2); @@ -1336,7 +1336,7 @@ fopi(uneq) dopi(uneq) static void -_unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LT(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -1346,7 +1346,7 @@ fopi(unge) dopi(unge) static void -_ungtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_LE(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -1356,7 +1356,7 @@ fopi(ungt) dopi(ungt) static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { MOVI(r0, 1); FCMP_EQ(PR_8, PR_9, r1, r2); @@ -1368,7 +1368,7 @@ fopi(ltgt) dopi(ltgt) static void -_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_UNORD(PR_6, PR_7, r1, r2); MOV_p(r0, GR_0, PR_6); @@ -1378,7 +1378,7 @@ fopi(ord) dopi(ord) static void -_unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMP_UNORD(PR_6, PR_7, r1, r2); MOVI_p(r0, 1, PR_6); @@ -1388,9 +1388,9 @@ fopi(unord) dopi(unord) static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_f(r0, rn(reg)); @@ -1398,9 +1398,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_f(r0, rn(reg)); @@ -1408,9 +1408,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (r0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r1, i0); @@ -1422,9 +1422,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ldr_d(r0, rn(reg)); @@ -1432,9 +1432,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_d(r0, rn(reg)); @@ -1442,9 +1442,9 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (r0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r1, i0); @@ -1456,9 +1456,9 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_f(rn(reg), r0); @@ -1466,9 +1466,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_f(rn(reg), r2); @@ -1476,9 +1476,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -1490,9 +1490,9 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); str_d(rn(reg), r0); @@ -1500,9 +1500,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_d(rn(reg), r2); @@ -1510,9 +1510,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0) { reg = jit_get_reg(jit_class_gpr); addi(rn(reg), r0, i0); @@ -1524,7 +1524,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr_f(GR_8, r1); calli((jit_word_t)sqrtf); @@ -1532,7 +1532,7 @@ _sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr_d(GR_8, r1); calli((jit_word_t)sqrt); @@ -1540,7 +1540,7 @@ _sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LT(PR_6, PR_7, r0, r1); @@ -1553,7 +1553,7 @@ fbopi(lt) dbopi(lt) static jit_word_t -_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LE(PR_6, PR_7, r0, r1); @@ -1566,7 +1566,7 @@ fbopi(le) dbopi(le) static jit_word_t -_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_EQ(PR_6, PR_7, r0, r1); @@ -1579,7 +1579,7 @@ fbopi(eq) dbopi(eq) static jit_word_t -_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LE(PR_6, PR_7, r1, r0); @@ -1592,7 +1592,7 @@ fbopi(ge) dbopi(ge) static jit_word_t -_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LT(PR_6, PR_7, r1, r0); @@ -1605,7 +1605,7 @@ fbopi(gt) dbopi(gt) static jit_word_t -_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_EQ(PR_6, PR_7, r0, r1); @@ -1618,7 +1618,7 @@ fbopi(ne) dbopi(ne) static jit_word_t -_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LE(PR_6, PR_7, r1, r0); @@ -1631,7 +1631,7 @@ fbopi(unlt) dbopi(unlt) static jit_word_t -_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LT(PR_6, PR_7, r1, r0); @@ -1644,7 +1644,7 @@ fbopi(unle) dbopi(unle) static jit_word_t -_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t junord, jne; @@ -1672,7 +1672,7 @@ fbopi(uneq) dbopi(uneq) static jit_word_t -_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LT(PR_6, PR_7, r0, r1); @@ -1685,7 +1685,7 @@ fbopi(unge) dbopi(unge) static jit_word_t -_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_LE(PR_6, PR_7, r0, r1); @@ -1698,7 +1698,7 @@ fbopi(ungt) dbopi(ungt) static jit_word_t -_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; jit_word_t jeq, junord; @@ -1725,7 +1725,7 @@ fbopi(ltgt) dbopi(ltgt) static jit_word_t -_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_UNORD(PR_6, PR_7, r0, r1); @@ -1738,7 +1738,7 @@ fbopi(ord) dbopi(ord) static jit_word_t -_bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMP_UNORD(PR_6, PR_7, r0, r1); @@ -1751,7 +1751,7 @@ fbopi(unord) dbopi(unord) static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); /* Load argument. */ diff --git a/jit/ia64.c b/jit/ia64.c index 96f1b5933..6da15f3b5 100644 --- a/jit/ia64.c +++ b/jit/ia64.c @@ -27,9 +27,9 @@ # define I_DISP 0 # define F_DISP 0 #else -# define C_DISP 8 - sizeof(jit_int8_t) -# define S_DISP 8 - sizeof(jit_int16_t) -# define I_DISP 8 - sizeof(jit_int32_t) +# define C_DISP 8 - sizeof(int8_t) +# define S_DISP 8 - sizeof(int16_t) +# define I_DISP 8 - sizeof(int32_t) # define F_DISP 8 - sizeof(jit_float32_t) #endif @@ -251,7 +251,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -273,7 +273,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = _jitc->function->self.alen = 0; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -292,8 +292,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -311,13 +311,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -344,7 +344,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); jit_movr(JIT_RET, u); @@ -362,7 +362,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); jit_movr_f(JIT_FRET, u); @@ -380,7 +380,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); jit_movr_d(JIT_FRET, u); @@ -433,7 +433,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -444,7 +444,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -462,7 +462,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) { if (!(_jitc->function->self.call & jit_call_varargs)) @@ -485,7 +485,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) { if (!(_jitc->function->self.call & jit_call_varargs)) @@ -505,7 +505,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -517,7 +517,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -529,7 +529,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -541,7 +541,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -553,7 +553,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -565,7 +565,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -577,7 +577,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -589,7 +589,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -603,7 +603,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -618,7 +618,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -632,7 +632,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -648,7 +648,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_arg_reg_p(v->u.w)) @@ -665,7 +665,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -679,7 +679,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -695,7 +695,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_arg_reg_p(v->u.w)) @@ -712,7 +712,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -731,7 +731,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -750,7 +750,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -775,7 +775,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -800,7 +800,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -824,7 +824,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -848,14 +848,14 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { /* Argument registers are allocated from the pool of unused registers */ return (0); } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -890,7 +890,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -898,7 +898,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -906,7 +906,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -914,7 +914,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -922,7 +922,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); jit_extr_i(r0, JIT_RET); @@ -930,7 +930,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_ui, r0); jit_extr_ui(r0, JIT_RET); @@ -938,7 +938,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); jit_movr(r0, JIT_RET); @@ -946,7 +946,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); jit_movr_f(r0, JIT_FRET); @@ -954,7 +954,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); jit_movr_d(r0, JIT_FRET); @@ -967,15 +967,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; jit_word_t prolog_offset; } undo; #if DEVEL_DISASSEMBLER @@ -1751,7 +1751,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_gpr_t r0, jit_fpr_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/jit.c b/jit/jit.c index f906899e0..da630b046 100644 --- a/jit/jit.c +++ b/jit/jit.c @@ -127,12 +127,12 @@ _redundant_store(jit_state_t *_jit, jit_node_t *node, jit_bool_t jump); #define simplify_movr(p, n, k, s) _simplify_movr(_jit, p, n, k, s) static jit_bool_t _simplify_movr(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - jit_int32_t kind, jit_int32_t size); + int32_t kind, jit_int32_t size); #define simplify_movi(p, n, k, s) _simplify_movi(_jit, p, n, k, s) static jit_bool_t _simplify_movi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - jit_int32_t kind, jit_int32_t size); + int32_t kind, jit_int32_t size); #define simplify_ldxi(prev, node) _simplify_ldxi(_jit, prev, node) static jit_bool_t @@ -144,7 +144,7 @@ _simplify_stxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); #define simplify_spill(node, regno) _simplify_spill(_jit, node, regno) static void -_simplify_spill(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno); +_simplify_spill(jit_state_t *_jit, jit_node_t *node, int32_t regno); #define simplify() _simplify(_jit) static void @@ -154,13 +154,13 @@ _simplify(jit_state_t *_jit); #define jit_reg_static 0 #define jit_reg_change 1 #define register_change_p(n, l, r) _register_change_p(_jit, n, l, r) -static jit_int32_t +static int32_t _register_change_p(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, - jit_int32_t regno); + int32_t regno); #define spill_reglive_p(node, regno) _spill_reglive_p(_jit, node, regno) static jit_bool_t -_spill_reglive_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno); +_spill_reglive_p(jit_state_t *_jit, jit_node_t *node, int32_t regno); #define patch_registers() _patch_registers(_jit) static void @@ -169,7 +169,7 @@ _patch_registers(jit_state_t *_jit); #define patch_register(n,l,r,p) _patch_register(_jit,n,l,r,p) static void _patch_register(jit_state_t *jit, jit_node_t *node, jit_node_t *link, - jit_int32_t regno, jit_int32_t patch); + int32_t regno, jit_int32_t patch); /* * Initialization @@ -196,11 +196,11 @@ finish_jit(void) jit_finish_size(); } -jit_int32_t -_jit_get_reg(jit_state_t *_jit, jit_int32_t regspec) +int32_t +_jit_get_reg(jit_state_t *_jit, int32_t regspec) { - jit_int32_t spec; - jit_int32_t regno; + int32_t spec; + int32_t regno; spec = regspec & ~(jit_class_chk|jit_class_nospill); if (spec & jit_class_named) { @@ -311,7 +311,7 @@ fail: } void -_jit_unget_reg(jit_state_t *_jit, jit_int32_t regno) +_jit_unget_reg(jit_state_t *_jit, int32_t regno) { regno = jit_regno(regno); if (jit_regset_tstbit(&_jitc->regsav, regno)) { @@ -339,7 +339,7 @@ _jit_unget_reg(jit_state_t *_jit, jit_int32_t regno) } jit_bool_t -_jit_callee_save_p(jit_state_t *_jit, jit_int32_t regno) +_jit_callee_save_p(jit_state_t *_jit, int32_t regno) { assert(regno >= 0 && regno < JIT_NOREG); return (!!(_rvs[regno].spec & jit_class_sav)); @@ -348,7 +348,7 @@ _jit_callee_save_p(jit_state_t *_jit, jit_int32_t regno) extern jit_bool_t _jit_pointer_p(jit_state_t *_jit, jit_pointer_t address) { - return ((jit_uint8_t *)address >= _jit->code.ptr && + return ((uint8_t *)address >= _jit->code.ptr && (jit_word_t)address < _jit->pc.w); } @@ -389,7 +389,7 @@ jit_regset_set(jit_regset_t *u, jit_regset_t *v) } void -jit_regset_set_mask(jit_regset_t *u, jit_int32_t v) +jit_regset_set_mask(jit_regset_t *u, int32_t v) { jit_bool_t w = !!(v & (v - 1)); @@ -436,7 +436,7 @@ jit_regset_set_p(jit_regset_t *u) } void -jit_regset_clrbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_clrbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 255); if (bit < 64) @@ -450,7 +450,7 @@ jit_regset_clrbit(jit_regset_t *set, jit_int32_t bit) } void -jit_regset_setbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_setbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 255); if (bit < 64) @@ -464,7 +464,7 @@ jit_regset_setbit(jit_regset_t *set, jit_int32_t bit) } jit_bool_t -jit_regset_tstbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_tstbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 255); if (bit < 64) @@ -477,7 +477,7 @@ jit_regset_tstbit(jit_regset_t *set, jit_int32_t bit) } unsigned long -jit_regset_scan1(jit_regset_t *set, jit_int32_t offset) +jit_regset_scan1(jit_regset_t *set, int32_t offset) { assert(offset >= 0 && offset <= 255); for (; offset < 64; offset++) { @@ -531,7 +531,7 @@ jit_regset_set(jit_regset_t *u, jit_regset_t *v) } void -jit_regset_set_mask(jit_regset_t *u, jit_int32_t v) +jit_regset_set_mask(jit_regset_t *u, int32_t v) { jit_bool_t w = !!(v & (v - 1)); @@ -568,7 +568,7 @@ jit_regset_set_p(jit_regset_t *u) } void -jit_regset_clrbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_clrbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 128); if (bit < 64) @@ -578,7 +578,7 @@ jit_regset_clrbit(jit_regset_t *set, jit_int32_t bit) } void -jit_regset_setbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_setbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 127); if (bit < 64) @@ -588,7 +588,7 @@ jit_regset_setbit(jit_regset_t *set, jit_int32_t bit) } jit_bool_t -jit_regset_tstbit(jit_regset_t *set, jit_int32_t bit) +jit_regset_tstbit(jit_regset_t *set, int32_t bit) { assert(bit >= 0 && bit <= 127); if (bit < 64) @@ -598,7 +598,7 @@ jit_regset_tstbit(jit_regset_t *set, jit_int32_t bit) } unsigned long -jit_regset_scan1(jit_regset_t *set, jit_int32_t offset) +jit_regset_scan1(jit_regset_t *set, int32_t offset) { assert(offset >= 0 && offset <= 127); for (; offset < 64; offset++) { @@ -614,7 +614,7 @@ jit_regset_scan1(jit_regset_t *set, jit_int32_t offset) #else unsigned long -jit_regset_scan1(jit_regset_t *set, jit_int32_t offset) +jit_regset_scan1(jit_regset_t *set, int32_t offset) { jit_regset_t mask; assert(offset >= 0 && offset <= 63); @@ -631,7 +631,7 @@ jit_regset_scan1(jit_regset_t *set, jit_int32_t offset) #endif void -_jit_save(jit_state_t *_jit, jit_int32_t reg) +_jit_save(jit_state_t *_jit, int32_t reg) { reg = jit_regno(reg); assert(!_jitc->realize); @@ -639,7 +639,7 @@ _jit_save(jit_state_t *_jit, jit_int32_t reg) } void -_jit_load(jit_state_t *_jit, jit_int32_t reg) +_jit_load(jit_state_t *_jit, int32_t reg) { jit_node_t *node; @@ -656,7 +656,7 @@ _jit_load(jit_state_t *_jit, jit_int32_t reg) static jit_word_t hash_data(const void *data, jit_word_t length) { - const jit_uint8_t *ptr; + const uint8_t *ptr; jit_word_t i, key; for (i = key = 0, ptr = data; i < length; i++) key = (key << (key & 1)) ^ ptr[i]; @@ -677,7 +677,7 @@ _jit_address(jit_state_t *_jit, jit_node_t *node) jit_node_t * _jit_data(jit_state_t *_jit, const void *data, - jit_word_t length, jit_int32_t align) + jit_word_t length, int32_t align) { jit_word_t key; jit_node_t *node; @@ -769,10 +769,10 @@ static void _new_pool(jit_state_t *_jit) { jit_node_t *list; - jit_int32_t offset; + int32_t offset; if (_jitc->pool.offset >= _jitc->pool.length) { - jit_int32_t length; + int32_t length; length = _jitc->pool.length + 16; jit_realloc((jit_pointer_t *)&_jitc->pool.ptr, @@ -932,7 +932,7 @@ jit_new_state(void) jit_alloc((jit_pointer_t *)&_jitc->spill, _jitc->reglen * sizeof(jit_node_t*)); jit_alloc((jit_pointer_t *)&_jitc->gen, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); jit_alloc((jit_pointer_t *)&_jitc->values, _jitc->reglen * sizeof(jit_value_t)); @@ -1192,7 +1192,7 @@ _jit_new_node_www(jit_state_t *_jit, jit_code_t code, jit_node_t * _jit_new_node_qww(jit_state_t *_jit, jit_code_t code, - jit_int32_t l, jit_int32_t h, + int32_t l, jit_int32_t h, jit_word_t v, jit_word_t w) { jit_node_t *node = new_node(code); @@ -1360,10 +1360,10 @@ _jit_patch(jit_state_t* _jit, jit_node_t *instr) jit_patch_at(instr, label); } -jit_int32_t +int32_t _jit_classify(jit_state_t *_jit, jit_code_t code) { - jit_int32_t mask; + int32_t mask; switch (code) { case jit_code_data: case jit_code_save: case jit_code_load: @@ -1612,7 +1612,7 @@ _jit_classify(jit_state_t *_jit, jit_code_t code) void _jit_patch_abs(jit_state_t *_jit, jit_node_t *instr, jit_pointer_t address) { - jit_int32_t mask; + int32_t mask; if (instr->code == jit_code_movi) instr->v.p = address; @@ -1626,7 +1626,7 @@ _jit_patch_abs(jit_state_t *_jit, jit_node_t *instr, jit_pointer_t address) void _jit_patch_at(jit_state_t *_jit, jit_node_t *instr, jit_node_t *label) { - jit_int32_t mask; + int32_t mask; assert(!(instr->flag & jit_flag_node)); instr->flag |= jit_flag_node; @@ -1659,7 +1659,7 @@ void _jit_optimize(jit_state_t *_jit) { jit_bool_t jump; - jit_int32_t mask; + int32_t mask; jit_node_t *node; jit_block_t *block; jit_word_t offset; @@ -1809,8 +1809,8 @@ _jit_optimize(jit_state_t *_jit) void _jit_reglive(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t spec; - jit_int32_t value; + int32_t spec; + int32_t value; jit_block_t *block; switch (node->code) { @@ -1895,7 +1895,7 @@ _jit_reglive(jit_state_t *_jit, jit_node_t *node) } void -_jit_regarg_set(jit_state_t *_jit, jit_node_t *node, jit_int32_t value) +_jit_regarg_set(jit_state_t *_jit, jit_node_t *node, int32_t value) { #if GET_JIT_SIZE jit_size_prepare(); @@ -1915,7 +1915,7 @@ _jit_regarg_set(jit_state_t *_jit, jit_node_t *node, jit_int32_t value) } void -_jit_regarg_clr(jit_state_t *_jit, jit_node_t *node, jit_int32_t value) +_jit_regarg_clr(jit_state_t *_jit, jit_node_t *node, int32_t value) { #if GET_JIT_SIZE jit_size_collect(node); @@ -1958,7 +1958,7 @@ _jit_realize(jit_state_t *_jit) void _jit_dataset(jit_state_t *_jit) { - jit_uint8_t *ptr; + uint8_t *ptr; jit_node_t *node; jit_word_t offset; #if defined(__sgi) @@ -2184,21 +2184,21 @@ fail: } void -_jit_frame(jit_state_t *_jit, jit_int32_t frame) +_jit_frame(jit_state_t *_jit, int32_t frame) { jit_trampoline(frame, 1); } void -_jit_tramp(jit_state_t *_jit, jit_int32_t frame) +_jit_tramp(jit_state_t *_jit, int32_t frame) { jit_trampoline(frame, 0); } void -_jit_trampoline(jit_state_t *_jit, jit_int32_t frame, jit_bool_t prolog) +_jit_trampoline(jit_state_t *_jit, int32_t frame, jit_bool_t prolog) { - jit_int32_t regno; + int32_t regno; /* Must be called after prolog, actually, just to simplify * tests and know there is a current function and that @@ -2310,8 +2310,8 @@ static void _jit_update(jit_state_t *_jit, jit_node_t *node, jit_regset_t *live, jit_regset_t *mask, jit_bool_t recurse) { - jit_int32_t spec; - jit_int32_t regno; + int32_t spec; + int32_t regno; jit_regset_t ztmp; jit_regset_t zmask; unsigned long value; @@ -2477,7 +2477,7 @@ _thread_jumps(jit_state_t *_jit) jit_node_t *prev; jit_node_t *node; jit_node_t *next; - jit_int32_t mask; + int32_t mask; for (prev = node = _jitc->head; node;) { next = node->next; @@ -2826,8 +2826,8 @@ _redundant_store(jit_state_t *_jit, jit_node_t *node, jit_bool_t jump) jit_node_t *iter; jit_node_t *prev; jit_word_t word; - jit_int32_t spec; - jit_int32_t regno; + int32_t spec; + int32_t regno; if (jump) { prev = node->u.n; @@ -2889,10 +2889,10 @@ _redundant_store(jit_state_t *_jit, jit_node_t *node, jit_bool_t jump) static jit_bool_t _simplify_movr(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - jit_int32_t kind, jit_int32_t size) + int32_t kind, jit_int32_t size) { - jit_int32_t regno; - jit_int32_t right; + int32_t regno; + int32_t right; jit_value_t *value; regno = jit_regno(node->u.w); @@ -2920,12 +2920,12 @@ _simplify_movr(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, static jit_bool_t _simplify_movi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - jit_int32_t kind, jit_int32_t size) + int32_t kind, jit_int32_t size) { jit_value_t *value; - jit_int32_t spec; - jit_int32_t regno; - jit_int32_t offset; + int32_t spec; + int32_t regno; + int32_t offset; regno = jit_regno(node->u.w); value = _jitc->values + regno; @@ -2976,8 +2976,8 @@ static jit_bool_t _simplify_ldxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) { jit_value_t *value; - jit_int32_t regno; - jit_int32_t right; + int32_t regno; + int32_t right; regno = jit_regno(node->u.w); right = jit_regno(node->v.w); @@ -3003,9 +3003,9 @@ static jit_bool_t _simplify_stxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) { jit_value_t *value; - jit_int32_t regno; - jit_int32_t right; - jit_int32_t offset; + int32_t regno; + int32_t right; + int32_t offset; regno = jit_regno(node->w.w); right = jit_regno(node->v.w); @@ -3055,7 +3055,7 @@ _simplify_stxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) * jit_get_reg/jit_unget_reg, but properly handle * multiple ones by moving the save node */ static void -_simplify_spill(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_simplify_spill(jit_state_t *_jit, jit_node_t *node, int32_t regno) { jit_node_t *save; jit_node_t *temp; @@ -3078,8 +3078,8 @@ _simplify(jit_state_t *_jit) jit_node_t *prev; jit_node_t *node; jit_node_t *next; - jit_int32_t info; - jit_int32_t regno; + int32_t info; + int32_t regno; for (prev = NULL, node = _jitc->head; node; prev = node, node = next) { next = node->next; @@ -3087,7 +3087,7 @@ _simplify(jit_state_t *_jit) case jit_code_label: case jit_code_prolog: case jit_code_callr: case jit_code_calli: reset: - memset(_jitc->gen, 0, sizeof(jit_int32_t) * _jitc->reglen); + memset(_jitc->gen, 0, sizeof(int32_t) * _jitc->reglen); memset(_jitc->values, 0, sizeof(jit_value_t) * _jitc->reglen); break; case jit_code_save: @@ -3197,11 +3197,11 @@ _simplify(jit_state_t *_jit) } } -static jit_int32_t +static int32_t _register_change_p(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, - jit_int32_t regno) + int32_t regno) { - jit_int32_t value; + int32_t value; for (; node != link; node = node->next) { switch (node->code) { @@ -3240,7 +3240,7 @@ _register_change_p(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, * avoid complications on different cpu backends and patch spill/loads * here, by simulating jit generation */ static jit_bool_t -_spill_reglive_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_spill_reglive_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { if (!jit_regset_tstbit(&_jitc->reglive, regno)) { bmp_zero(); @@ -3260,10 +3260,10 @@ _patch_registers(jit_state_t *_jit) jit_node_t *prev; jit_node_t *node; jit_node_t *next; - jit_int32_t info; - jit_int32_t spec; - jit_int32_t regno; - jit_int32_t value; + int32_t info; + int32_t spec; + int32_t regno; + int32_t value; _jitc->function = NULL; @@ -3376,9 +3376,9 @@ _patch_registers(jit_state_t *_jit) static void _patch_register(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, - jit_int32_t regno, jit_int32_t patch) + int32_t regno, jit_int32_t patch) { - jit_int32_t value; + int32_t value; for (; node != link; node = node->next) { value = jit_classify(node->code); diff --git a/jit/mips-cpu.c b/jit/mips-cpu.c index f68040f35..875606931 100644 --- a/jit/mips-cpu.c +++ b/jit/mips-cpu.c @@ -20,37 +20,37 @@ #if PROTO typedef union { #if __BYTE_ORDER == __LITTLE_ENDIAN - struct { jit_uint32_t _:26; jit_uint32_t b : 6; } hc; - struct { jit_uint32_t _:21; jit_uint32_t b : 5; } rs; - struct { jit_uint32_t _:21; jit_uint32_t b : 5; } fm; - struct { jit_uint32_t _:16; jit_uint32_t b : 5; } rt; - struct { jit_uint32_t _:16; jit_uint32_t b : 5; } ft; - struct { jit_uint32_t _:11; jit_uint32_t b : 5; } rd; - struct { jit_uint32_t _:11; jit_uint32_t b : 5; } fs; - struct { jit_uint32_t _: 6; jit_uint32_t b : 5; } ic; - struct { jit_uint32_t _: 6; jit_uint32_t b : 5; } fd; - struct { jit_uint32_t _: 6; jit_uint32_t b : 10; } tr; - struct { jit_uint32_t _: 6; jit_uint32_t b : 20; } br; - struct { jit_uint32_t b : 6; } tc; - struct { jit_uint32_t b : 11; } cc; - struct { jit_uint32_t b : 16; } is; - struct { jit_uint32_t b : 26; } ii; + struct { uint32_t _:26; jit_uint32_t b : 6; } hc; + struct { uint32_t _:21; jit_uint32_t b : 5; } rs; + struct { uint32_t _:21; jit_uint32_t b : 5; } fm; + struct { uint32_t _:16; jit_uint32_t b : 5; } rt; + struct { uint32_t _:16; jit_uint32_t b : 5; } ft; + struct { uint32_t _:11; jit_uint32_t b : 5; } rd; + struct { uint32_t _:11; jit_uint32_t b : 5; } fs; + struct { uint32_t _: 6; jit_uint32_t b : 5; } ic; + struct { uint32_t _: 6; jit_uint32_t b : 5; } fd; + struct { uint32_t _: 6; jit_uint32_t b : 10; } tr; + struct { uint32_t _: 6; jit_uint32_t b : 20; } br; + struct { uint32_t b : 6; } tc; + struct { uint32_t b : 11; } cc; + struct { uint32_t b : 16; } is; + struct { uint32_t b : 26; } ii; #else - struct { jit_uint32_t b : 6; } hc; - struct { jit_uint32_t _: 6; jit_uint32_t b : 5; } rs; - struct { jit_uint32_t _: 6; jit_uint32_t b : 5; } fm; - struct { jit_uint32_t _:11; jit_uint32_t b : 5; } rt; - struct { jit_uint32_t _:11; jit_uint32_t b : 5; } ft; - struct { jit_uint32_t _:16; jit_uint32_t b : 5; } rd; - struct { jit_uint32_t _:16; jit_uint32_t b : 5; } fs; - struct { jit_uint32_t _:21; jit_uint32_t b : 5; } ic; - struct { jit_uint32_t _:21; jit_uint32_t b : 5; } fd; - struct { jit_uint32_t _:21; jit_uint32_t b : 10; } tr; - struct { jit_uint32_t _:21; jit_uint32_t b : 20; } br; - struct { jit_uint32_t _:26; jit_uint32_t b : 6; } tc; - struct { jit_uint32_t _:21; jit_uint32_t b : 11; } cc; - struct { jit_uint32_t _:16; jit_uint32_t b : 16; } is; - struct { jit_uint32_t _: 6; jit_uint32_t b : 26; } ii; + struct { uint32_t b : 6; } hc; + struct { uint32_t _: 6; jit_uint32_t b : 5; } rs; + struct { uint32_t _: 6; jit_uint32_t b : 5; } fm; + struct { uint32_t _:11; jit_uint32_t b : 5; } rt; + struct { uint32_t _:11; jit_uint32_t b : 5; } ft; + struct { uint32_t _:16; jit_uint32_t b : 5; } rd; + struct { uint32_t _:16; jit_uint32_t b : 5; } fs; + struct { uint32_t _:21; jit_uint32_t b : 5; } ic; + struct { uint32_t _:21; jit_uint32_t b : 5; } fd; + struct { uint32_t _:21; jit_uint32_t b : 10; } tr; + struct { uint32_t _:21; jit_uint32_t b : 20; } br; + struct { uint32_t _:26; jit_uint32_t b : 6; } tc; + struct { uint32_t _:21; jit_uint32_t b : 11; } cc; + struct { uint32_t _:16; jit_uint32_t b : 16; } is; + struct { uint32_t _: 6; jit_uint32_t b : 26; } ii; #endif int op; } jit_instr_t; @@ -296,18 +296,18 @@ typedef union { # define MIPS_SDBPP 0x3f # define ii(i) *_jit->pc.ui++ = i static void -_hrrrit(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t); +_hrrrit(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t); # define hrrrit(hc,rs,rt,rd,im,tc) _hrrrit(_jit,hc,rs,rt,rd,im,tc) # define hrrr_t(hc,rs,rt,rd,tc) hrrrit(hc,rs,rt,rd,0,tc) # define rrr_t(rs,rt,rd,tc) hrrr_t(0,rs,rt,rd,tc) # define hrri(hc,rs,rt,im) _hrri(_jit,hc,rs,rt,im) -static void _hrri(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _hrri(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define hi(hc,im) _hi(_jit,hc,im) -static void _hi(jit_state_t*,jit_int32_t,jit_int32_t); +static void _hi(jit_state_t*,int32_t,jit_int32_t); # define NOP(i0) ii(0) # define nop(i0) _nop(_jit,i0) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # define h_ri(hc,rt,im) _hrri(_jit,hc,0,rt,im) # define rrit(rt,rd,im,tc) _hrrrit(_jit,0,0,rt,rd,im,tc) # define LUI(rt,im) h_ri(MIPS_LUI,rt,im) @@ -402,67 +402,67 @@ static void _nop(jit_state_t*,jit_int32_t); # define divu(rs,rt) DDIVU(rs,rt) # endif # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define addcr(r0,r1,r2) _addcr(_jit,r0,r1,r2) -static void _addcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,r2) _addxr(_jit,r0,r1,r2) -static void _addxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,r2) _subcr(_jit,r0,r1,r2) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) _subxr(_jit,r0,r1,r2) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) -static void _mulr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) -static void _iqmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) -static void _iqmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) -static void _iqdivr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) -static void _iqdivi(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define lshr(r0,r1,r2) SLLV(r0,r1,r2) # define lshi(r0,r1,i0) SLL(r0,r1,i0) @@ -473,121 +473,121 @@ static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # else # define lshr(r0,r1,r2) DSLLV(r0,r1,r2) # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr(r0,r1,r2) DSRAV(r0,r1,r2) # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rshr_u(r0,r1,r2) DSRLV(r0,r1,r2) # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # endif # define andr(r0,r1,r2) AND(r0,r1,r2) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) OR(r0,r1,r2) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) XOR(r0,r1,r2) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define movr(r0,r1) orr(r0,r1,_ZERO_REGNO) # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define ldr_c(r0,r1) LB(r0,0,r1) # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldr_uc(r0,r1) LBU(r0,0,r1) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldr_s(r0,r1) LH(r0,0,r1) # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldr_us(r0,r1) LHU(r0,0,r1) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldr_i(r0,r1) LW(r0,0,r1) # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldr_ui(r0,r1) LWU(r0,0,r1) # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldr_l(r0,r1) LD(r0,0,r1) # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # endif # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_l(r0,r1,r2) _ldxr_l(_jit,r0,r1,r2) -static void _ldxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # endif # define str_c(r0,r1) SB(r1,0,r0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define str_s(r0,r1) SH(r1,0,r0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define str_i(r0,r1) SW(r1,0,r0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # if __WORDSIZE == 64 # define str_l(r0,r1) SD(r1,0,r0) # define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # endif # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define stxr_l(r0,r1,r2) _stxr_l(_jit,r0,r1,r2) -static void _stxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # endif # if __BYTE_ORDER == __LITTLE_ENDIAN # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define htonr_ul(r0,r1) _htonr_ul(_jit,r0,r1) -static void _htonr_ul(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ul(jit_state_t*,int32_t,jit_int32_t); # endif # else # define htonr_us(r0,r1) extr_us(r0,r1) @@ -599,138 +599,138 @@ static void _htonr_ul(jit_state_t*,jit_int32_t,jit_int32_t); # endif # endif # define extr_c(r0,r1) _extr_c(_jit,r0,r1) -static void _extr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_c(jit_state_t*,int32_t,jit_int32_t); # define extr_uc(r0,r1) ANDI(r0,r1,0xff) # define extr_s(r0,r1) _extr_s(_jit,r0,r1) -static void _extr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_s(jit_state_t*,int32_t,jit_int32_t); # define extr_us(r0,r1) ANDI(r0,r1,0xffff) # if __WORDSIZE == 64 # define extr_i(r0,r1) SLL(r0,r1,0) # define extr_ui(r0,r1) _extr_ui(_jit,r0,r1) -static void _extr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_ui(jit_state_t*,int32_t,jit_int32_t); # endif # define ltr(r0,r1,r2) SLT(r0,r1,r2) # define lti(r0,r1,i0) _lti(_jit,r0,r1,i0) -static void _lti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ltr_u(r0,r1,r2) SLTU(r0,r1,r2) # define lti_u(r0,r1,i0) _lti_u(_jit,r0,r1,i0) -static void _lti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ler(r0,r1,r2) _ler(_jit,r0,r1,r2) -static void _ler(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lei(r0,r1,i0) _lei(_jit,r0,r1,i0) -static void _lei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ler_u(r0,r1,r2) _ler_u(_jit,r0,r1,r2) -static void _ler_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define lei_u(r0,r1,i0) _lei_u(_jit,r0,r1,i0) -static void _lei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define eqr(r0,r1,r2) _eqr(_jit,r0,r1,r2) -static void _eqr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define eqi(r0,r1,i0) _eqi(_jit,r0,r1,i0) -static void _eqi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _eqi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ger(r0,r1,r2) _ger(_jit,r0,r1,r2) -static void _ger(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gei(r0,r1,i0) _gei(_jit,r0,r1,i0) -static void _gei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ger_u(r0,r1,i0) _ger_u(_jit,r0,r1,i0) -static void _ger_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define gei_u(r0,r1,i0) _gei_u(_jit,r0,r1,i0) -static void _gei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr(r0,r1,r2) SLT(r0,r2,r1) #define gti(r0,r1,i0) _gti(_jit,r0,r1,i0) -static void _gti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr_u(r0,r1,r2) SLTU(r0,r2,r1) # define gti_u(r0,r1,i0) _gti_u(_jit,r0,r1,i0) -static void _gti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) -static void _ner(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); #define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) -static void _nei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define bltr(i0,r0,r1) _bltr(_jit,i0,r0,r1) -static jit_word_t _bltr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bltr_u(i0,r0,r1) _bltr_u(_jit,i0,r0,r1) -static jit_word_t _bltr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti(i0,r0,i1) _blti(_jit,i0,r0,i1) -static jit_word_t _blti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define blti_u(i0,r0,i1) _blti_u(_jit,i0,r0,i1) -static jit_word_t _blti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bler(i0,r0,r1) _bler(_jit,i0,r0,r1) -static jit_word_t _bler(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bler_u(i0,r0,r1) _bler_u(_jit,i0,r0,r1) -static jit_word_t _bler_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei(i0,r0,i1) _blei(_jit,i0,r0,i1) -static jit_word_t _blei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define blei_u(i0,r0,i1) _blei_u(_jit,i0,r0,i1) -static jit_word_t _blei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define beqr(i0,r0,r1) _beqr(_jit,i0,r0,r1) -static jit_word_t _beqr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define beqi(i0,r0,i1) _beqi(_jit,i0,r0,i1) -static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bger(i0,r0,r1) _bger(_jit,i0,r0,r1) -static jit_word_t _bger(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bger_u(i0,r0,r1) _bger_u(_jit,i0,r0,r1) -static jit_word_t _bger_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei(i0,r0,i1) _bgei(_jit,i0,r0,i1) -static jit_word_t _bgei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgei_u(i0,r0,i1) _bgei_u(_jit,i0,r0,i1) -static jit_word_t _bgei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgtr(i0,r0,r1) _bgtr(_jit,i0,r0,r1) -static jit_word_t _bgtr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgtr_u(i0,r0,r1) _bgtr_u(_jit,i0,r0,r1) -static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti(i0,r0,i1) _bgti(_jit,i0,r0,i1) -static jit_word_t _bgti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgti_u(i0,r0,i1) _bgti_u(_jit,i0,r0,i1) -static jit_word_t _bgti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bner(i0,r0,r1) _bner(_jit,i0,r0,r1) -static jit_word_t _bner(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bnei(i0,r0,i1) _bnei(_jit,i0,r0,i1) -static jit_word_t _bnei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define jmpr(r0) _jmpr(_jit,r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); # define jmpi(i0) _jmpi(_jit,i0) static jit_word_t _jmpi(jit_state_t*,jit_word_t); # define boaddr(i0,r0,r1) _boaddr(_jit,i0,r0,r1) -static jit_word_t _boaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define boaddi(i0,r0,i1) _boaddi(_jit,i0,r0,i1) -static jit_word_t _boaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define boaddr_u(i0,r0,r1) _boaddr_u(_jit,i0,r0,r1) -static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define boaddi_u(i0,r0,i1) _boaddi_u(_jit,i0,r0,i1) -static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxaddr(i0,r0,r1) _bxaddr(_jit,i0,r0,r1) -static jit_word_t _bxaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxaddi(i0,r0,i1) _bxaddi(_jit,i0,r0,i1) -static jit_word_t _bxaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxaddr_u(i0,r0,r1) _bxaddr_u(_jit,i0,r0,r1) -static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxaddi_u(i0,r0,i1) _bxaddi_u(_jit,i0,r0,i1) -static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bosubr(i0,r0,r1) _bosubr(_jit,i0,r0,r1) -static jit_word_t _bosubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bosubi(i0,r0,i1) _bosubi(_jit,i0,r0,i1) -static jit_word_t _bosubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bosubr_u(i0,r0,r1) _bosubr_u(_jit,i0,r0,r1) -static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bosubi_u(i0,r0,i1) _bosubi_u(_jit,i0,r0,i1) -static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxsubr(i0,r0,r1) _bxsubr(_jit,i0,r0,r1) -static jit_word_t _bxsubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxsubi(i0,r0,i1) _bxsubi(_jit,i0,r0,i1) -static jit_word_t _bxsubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxsubr_u(i0,r0,r1) _bxsubr_u(_jit,i0,r0,r1) -static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxsubi_u(i0,r0,i1) _bxsubi_u(_jit,i0,r0,i1) -static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bmsr(i0,r0,r1) _bmsr(_jit,i0,r0,r1) -static jit_word_t _bmsr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmsr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bmsi(i0,r0,i1) _bmsi(_jit,i0,r0,i1) -static jit_word_t _bmsi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmsi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bmcr(i0,r0,r1) _bmcr(_jit,i0,r0,r1) -static jit_word_t _bmcr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmcr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bmci(i0,r0,i1) _bmci(_jit,i0,r0,i1) -static jit_word_t _bmci(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmci(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); # define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*,jit_word_t); # define calli_p(i0) _calli_p(_jit,i0) @@ -740,9 +740,9 @@ static void _prolog(jit_state_t*,jit_node_t*); # define epilog(node) _epilog(_jit,node) static void _epilog(jit_state_t*,jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); #define patch_abs(instr,label) _patch_abs(_jit,instr,label) static void _patch_abs(jit_state_t*,jit_word_t,jit_word_t); #define patch_at(jump,label) _patch_at(_jit,jump,label) @@ -751,9 +751,9 @@ static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #if CODE static void -_hrrrit(jit_state_t *_jit,jit_int32_t hc, - jit_int32_t rs, jit_int32_t rt, jit_int32_t rd, - jit_int32_t ic, jit_int32_t tc) +_hrrrit(jit_state_t *_jit,int32_t hc, + int32_t rs, jit_int32_t rt, jit_int32_t rd, + int32_t ic, jit_int32_t tc) { jit_instr_t i; i.tc.b = tc; @@ -766,8 +766,8 @@ _hrrrit(jit_state_t *_jit,jit_int32_t hc, } static void -_hrri(jit_state_t *_jit, jit_int32_t hc, - jit_int32_t rs, jit_int32_t rt, jit_int32_t im) +_hrri(jit_state_t *_jit, int32_t hc, + int32_t rs, jit_int32_t rt, jit_int32_t im) { jit_instr_t i; i.op = 0; @@ -779,7 +779,7 @@ _hrri(jit_state_t *_jit, jit_int32_t hc, } static void -_hi(jit_state_t *_jit, jit_int32_t hc, jit_int32_t im) +_hi(jit_state_t *_jit, int32_t hc, jit_int32_t im) { jit_instr_t i; i.ii.b = im; @@ -788,7 +788,7 @@ _hi(jit_state_t *_jit, jit_int32_t hc, jit_int32_t im) } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -796,9 +796,9 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); else if (can_sign_extend_short_p(i0)) @@ -812,9 +812,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0; + int32_t t0; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); @@ -832,9 +832,9 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t t0; + int32_t t0; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); @@ -862,9 +862,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0; + int32_t t0; assert(jit_carry != _NOREG); t0 = jit_get_reg(jit_class_gpr); @@ -875,9 +875,9 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t t0; + int32_t t0; assert(jit_carry != _NOREG); t0 = jit_get_reg(jit_class_gpr); @@ -888,9 +888,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); else if (can_sign_extend_short_p(i0) && (i0 & 0xffff) != 0x8000) @@ -904,9 +904,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0; + int32_t t0; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); @@ -924,9 +924,9 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t t0; + int32_t t0; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); @@ -954,9 +954,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t t0; + int32_t t0; assert(jit_carry != _NOREG); t0 = jit_get_reg(jit_class_gpr); @@ -967,9 +967,9 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t t0; + int32_t t0; assert(jit_carry != _NOREG); t0 = jit_get_reg(jit_class_gpr); @@ -980,23 +980,23 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { multu(r1, r2); MFLO(r0); } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -1005,8 +1005,8 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { if (sign) mult(r2, r3); @@ -1017,10 +1017,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqmulr(r0, r1, r2, rn(reg), sign); @@ -1028,16 +1028,16 @@ _iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { div(r1, r2); MFLO(r0); } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr(r0, r1, rn(reg)); @@ -1045,16 +1045,16 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { divu(r1, r2); MFLO(r0); } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr_u(r0, r1, rn(reg)); @@ -1062,8 +1062,8 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { if (sign) div(r2, r3); @@ -1074,10 +1074,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqdivr(r0, r1, r2, rn(reg), sign); @@ -1085,16 +1085,16 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { div(r1, r2); MFHI(r0); } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr(r0, r1, rn(reg)); @@ -1102,16 +1102,16 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { divu(r1, r2); MFHI(r0); } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr_u(r0, r1, rn(reg)); @@ -1120,7 +1120,7 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __WORDSIZE == 64 static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 63); if (i0 < 32) @@ -1130,7 +1130,7 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 63); if (i0 < 32) @@ -1140,7 +1140,7 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { assert(i0 >= 0 && i0 <= 63); if (i0 < 32) @@ -1151,9 +1151,9 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #endif static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) ANDI(r0, r1, i0); else { @@ -1165,9 +1165,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) ORI(r0, r1, i0); else { @@ -1179,9 +1179,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) XORI(r0, r1, i0); else { @@ -1193,7 +1193,7 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { if (i0 == 0) OR(r0, _ZERO_REGNO, _ZERO_REGNO); @@ -1228,7 +1228,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; @@ -1249,9 +1249,9 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LB(r0, i0, _ZERO_REGNO); else { @@ -1263,9 +1263,9 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LBU(r0, i0, _ZERO_REGNO); else { @@ -1277,9 +1277,9 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LH(r0, i0, _ZERO_REGNO); else { @@ -1291,9 +1291,9 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LHU(r0, i0, _ZERO_REGNO); else { @@ -1305,9 +1305,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LW(r0, i0, _ZERO_REGNO); else { @@ -1320,9 +1320,9 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) #if __WORDSIZE == 64 static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LWU(r0, i0, _ZERO_REGNO); else { @@ -1334,9 +1334,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LD(r0, i0, _ZERO_REGNO); else { @@ -1349,9 +1349,9 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) #endif static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_c(r0, rn(reg)); @@ -1359,9 +1359,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LB(r0, i0, r1); else { @@ -1373,9 +1373,9 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_uc(r0, rn(reg)); @@ -1383,9 +1383,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LBU(r0, i0, r1); else { @@ -1397,9 +1397,9 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_s(r0, rn(reg)); @@ -1407,9 +1407,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LH(r0, i0, r1); else { @@ -1421,9 +1421,9 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_us(r0, rn(reg)); @@ -1431,9 +1431,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LHU(r0, i0, r1); else { @@ -1445,9 +1445,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_i(r0, rn(reg)); @@ -1455,9 +1455,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LW(r0, i0, r1); else { @@ -1470,9 +1470,9 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __WORDSIZE == 64 static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_ui(r0, rn(reg)); @@ -1480,9 +1480,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LWU(r0, i0, r1); else { @@ -1494,9 +1494,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_l(r0, rn(reg)); @@ -1504,9 +1504,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LD(r0, i0, r1); else { @@ -1519,9 +1519,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #endif static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SB(r0, i0, _ZERO_REGNO); else { @@ -1533,9 +1533,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SH(r0, i0, _ZERO_REGNO); else { @@ -1547,9 +1547,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SW(r0, i0, _ZERO_REGNO); else { @@ -1562,9 +1562,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) #if __WORDSIZE == 64 static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SD(r0, i0, _ZERO_REGNO); else { @@ -1577,9 +1577,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) #endif static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_c(rn(reg), r2); @@ -1587,9 +1587,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SB(r1, i0, r0); else { @@ -1601,9 +1601,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_s(rn(reg), r2); @@ -1611,9 +1611,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SH(r1, i0, r0); else { @@ -1625,9 +1625,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_i(rn(reg), r2); @@ -1635,9 +1635,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SW(r1, i0, r0); else { @@ -1650,9 +1650,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) #if __WORDSIZE == 64 static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1 ,jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_l(rn(reg), r2); @@ -1660,9 +1660,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1 ,jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SD(r1, i0, r0); else { @@ -1676,9 +1676,9 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # if __BYTE_ORDER == __LITTLE_ENDIAN static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr); rshi(rn(t0), r1, 8); andi(r0, r1, 0xff); @@ -1689,11 +1689,11 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; t0 = jit_get_reg(jit_class_gpr); t1 = jit_get_reg(jit_class_gpr); t2 = jit_get_reg(jit_class_gpr); @@ -1716,9 +1716,9 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ul(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); rshi_u(rn(reg), r1, 32); htonr_ui(r0, r1); @@ -1730,7 +1730,7 @@ _htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_mips2_p()) SEB(r0, r1); @@ -1741,7 +1741,7 @@ _extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (jit_mips2_p()) SEH(r0, r1); @@ -1753,7 +1753,7 @@ _extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_extr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, 32); rshi_u(r0, r0, 32); @@ -1761,9 +1761,9 @@ _extr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SLTI(r0, r1, i0); @@ -1776,9 +1776,9 @@ _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SLTIU(r0, r1, i0); @@ -1791,16 +1791,16 @@ _lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SLT(r0, r2, r1); XORI(r0, r0, 1); } static void -_lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) { SLT(r0, _ZERO_REGNO, r1); @@ -1815,16 +1815,16 @@ _lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SLTU(r0, r2, r1); XORI(r0, r0, 1); } static void -_lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) { SLTU(r0, _ZERO_REGNO, r1); @@ -1839,7 +1839,7 @@ _lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { subr(r0, r1, r2); SLTU(r0, _ZERO_REGNO, r0); @@ -1847,7 +1847,7 @@ _eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_eqi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) { subi(r0, r1, i0); @@ -1859,16 +1859,16 @@ _eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SLT(r0, r1, r2); XORI(r0, r0, 1); } static void -_gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -1877,16 +1877,16 @@ _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { SLTU(r0, r1, r2); XORI(r0, r0, 1); } static void -_gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -1895,9 +1895,9 @@ _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) SLT(r0, _ZERO_REGNO, r1); @@ -1910,9 +1910,9 @@ _gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) SLTU(r0, _ZERO_REGNO, r1); @@ -1925,14 +1925,14 @@ _gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { subr(r0, r1, r2); SLTU(r0, _ZERO_REGNO, r0); } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) { subi(r0, r1, i0); @@ -1943,10 +1943,10 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static jit_word_t -_bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); SLT(rn(reg), r0, r1); @@ -1959,10 +1959,10 @@ _bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLTU(rn(reg), r0, r1); @@ -1975,11 +1975,11 @@ _bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; jit_bool_t zero_p; if (!(zero_p = i1 == 0)) @@ -2006,10 +2006,10 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); if (can_sign_extend_short_p(i1)) { @@ -2028,10 +2028,10 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLT(rn(reg), r1, r0); @@ -2044,10 +2044,10 @@ _bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLTU(rn(reg), r1, r0); @@ -2060,10 +2060,10 @@ _bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2081,10 +2081,10 @@ _blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2102,7 +2102,7 @@ _blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; @@ -2114,10 +2114,10 @@ _beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2135,10 +2135,10 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLT(rn(reg), r0, r1); @@ -2151,10 +2151,10 @@ _bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLTU(rn(reg), r0, r1); @@ -2167,11 +2167,11 @@ _bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; jit_word_t d; - jit_int32_t reg; + int32_t reg; jit_bool_t zero_p; if (!(zero_p = i1 == 0)) @@ -2198,10 +2198,10 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); if (can_sign_extend_short_p(i1)) { @@ -2220,10 +2220,10 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLT(rn(reg), r1, r0); @@ -2236,10 +2236,10 @@ _bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); SLTU(rn(reg), r1, r0); @@ -2252,10 +2252,10 @@ _bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2273,10 +2273,10 @@ _bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2294,7 +2294,7 @@ _bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; @@ -2306,10 +2306,10 @@ _bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (i1 == 0) { w = _jit->pc.w; @@ -2327,7 +2327,7 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { JR(r0); NOP(1); @@ -2337,10 +2337,10 @@ static jit_word_t _jmpi(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; w = _jit->pc.w; - if (((w + sizeof(jit_int32_t)) & 0xf0000000) == (i0 & 0xf0000000)) { + if (((w + sizeof(int32_t)) & 0xf0000000) == (i0 & 0xf0000000)) { J((i0 & ~0xf0000000) >> 2); NOP(1); } @@ -2355,12 +2355,12 @@ _jmpi(jit_state_t *_jit, jit_word_t i0) } static jit_word_t -_boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 + r1; overflow = r1 < 0 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2383,12 +2383,12 @@ _boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; if (can_sign_extend_short_p(i1)) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2417,11 +2417,11 @@ _boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2437,11 +2437,11 @@ _boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; if (can_sign_extend_short_p(i0)) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2465,12 +2465,12 @@ _boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 + r1; overflow = r1 < 0 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2493,12 +2493,12 @@ _bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; if (can_sign_extend_short_p(i1)) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2527,11 +2527,11 @@ _bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2547,11 +2547,11 @@ _bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; if (can_sign_extend_short_p(i0)) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2575,12 +2575,12 @@ _bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 - r1; overflow = 0 < r1 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2603,12 +2603,12 @@ _bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; if (can_sign_extend_short_p(i1) && (i1 & 0xffff) != 0x8000) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2637,11 +2637,11 @@ _bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2657,11 +2657,11 @@ _bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; if (can_sign_extend_short_p(i0) && (i0 & 0xffff) != 0x8000) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2685,12 +2685,12 @@ _bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; /* t1 = r0 - r1; overflow = 0 < r1 ? r0 < t1 : t1 < r0 */ t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2713,12 +2713,12 @@ _bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; - jit_int32_t t2; + int32_t t0; + int32_t t1; + int32_t t2; if (can_sign_extend_short_p(i1) && (i1 & 0xffff) != 0x8000) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2747,11 +2747,11 @@ _bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); t1 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2767,11 +2767,11 @@ _bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; - jit_int32_t t1; + int32_t t0; + int32_t t1; if (can_sign_extend_short_p(i0) && (i0 & 0xffff) != 0x8000) { t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); @@ -2795,10 +2795,10 @@ _bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmsr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); AND(rn(t0), r0, r1); w = _jit->pc.w; @@ -2809,10 +2809,10 @@ _bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmsi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); if (can_zero_extend_short_p(i1)) { ANDI(rn(t0), r0, i1); @@ -2829,10 +2829,10 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmcr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); AND(rn(t0), r0, r1); w = _jit->pc.w; @@ -2843,10 +2843,10 @@ _bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmci(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr|jit_class_nospill); if (can_zero_extend_short_p(i1)) { ANDI(rn(t0), r0, i1); @@ -2863,7 +2863,7 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { if (r0 != _T9_REGNO) movr(_T9_REGNO, r0); @@ -2892,24 +2892,24 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) return (word); } -static jit_int32_t fregs[] = { +static int32_t fregs[] = { _F30, _F28, _F26, _F24, _F22, _F20, #if !NEW_ABI _F18, _F16, #endif }; -static jit_int32_t iregs[] = { +static int32_t iregs[] = { _S7, _S6, _S5, _S4, _S3, _S2, _S1, _S0, }; static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t index; - jit_int32_t offset; + int32_t index; + int32_t offset; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -2981,8 +2981,8 @@ _prolog(jit_state_t *_jit, jit_node_t *node) static void _epilog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t index; - jit_int32_t offset; + int32_t index; + int32_t offset; if (_jitc->function->assume_frame) return; /* callee save registers */ @@ -3012,21 +3012,21 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { assert(_jitc->function->self.call & jit_call_varargs); /* Initialize va_list to the first stack argument. */ #if NEW_ABI if (jit_arg_reg_p(_jitc->function->vagp)) addi(r0, _BP_REGNO, stack_framesize + _jitc->function->vagp * - sizeof(jit_int64_t)); + sizeof(int64_t)); else #endif addi(r0, _BP_REGNO, _jitc->function->self.size); } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Load argument. */ #if WORD_ADJUST @@ -3044,7 +3044,7 @@ _patch_abs(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_instr_t i; union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; @@ -3085,7 +3085,7 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_instr_t i; union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; @@ -3139,7 +3139,7 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) case MIPS_J: case MIPS_JAL: case MIPS_JALX: - assert(((instr + sizeof(jit_int32_t)) & 0xf0000000) == + assert(((instr + sizeof(int32_t)) & 0xf0000000) == (label & 0xf0000000)); i.ii.b = (label & ~0xf0000000) >> 2; u.i[0] = i.op; diff --git a/jit/mips-fpu.c b/jit/mips-fpu.c index 35fdf8e3d..95a24b96a 100644 --- a/jit/mips-fpu.c +++ b/jit/mips-fpu.c @@ -181,38 +181,38 @@ # define C_UGT_PS(fs,ft) c_cond_fmt(MIPS_fmt_PS,ft,fs,MIPS_cond_UGT) # define c_cond_fmt(fm,ft,fs,cc) _c_cond_fmt(_jit,fm,ft,fs,cc) static void -_c_cond_fmt(jit_state_t *_jit, jit_int32_t fm, - jit_int32_t ft, jit_int32_t fs, jit_int32_t cc); +_c_cond_fmt(jit_state_t *_jit, int32_t fm, + int32_t ft, jit_int32_t fs, jit_int32_t cc); # define addr_f(r0,r1,r2) ADD_S(r0,r1,r2) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define addr_d(r0,r1,r2) ADD_D(r0,r1,r2) # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define subr_f(r0,r1,r2) SUB_S(r0,r1,r2) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define subr_d(r0,r1,r2) SUB_D(r0,r1,r2) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) # define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) # define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define mulr_f(r0,r1,r2) MUL_S(r0,r1,r2) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define mulr_d(r0,r1,r2) MUL_D(r0,r1,r2) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define divr_f(r0,r1,r2) DIV_S(r0,r1,r2) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define divr_d(r0,r1,r2) DIV_D(r0,r1,r2) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define absr_f(r0,r1) ABS_S(r0,r1) # define absr_d(r0,r1) ABS_D(r0,r1) # define negr_f(r0,r1) NEG_S(r0,r1) @@ -222,342 +222,342 @@ static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); # define movr_w_f(r0, r1) MTC1(r1, r0) # define movr_f_w(r0, r1) MFC1(r1, r0) # define movi_f_w(r0, i0) _movi_f_w(_jit, r0, i0) -static void _movi_f_w(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f_w(jit_state_t*,int32_t,jit_float32_t*); # define extr_f(r0, r1) _extr_f(_jit, r0, r1) -static void _extr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_f(jit_state_t*,int32_t,jit_int32_t); # define truncr_f_i(r0, r1) _truncr_f_i(_jit, r0, r1) -static void _truncr_f_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_f_i(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define truncr_f_l(r0, r1) _truncr_f_l(_jit, r0, r1) -static void _truncr_f_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_f_l(jit_state_t*,int32_t,jit_int32_t); # endif # define extr_d_f(r0, r1) CVT_S_D(r0, r1) # define ldr_f(r0, r1) LWC1(r0, 0, r1) # define ldi_f(r0, i0) _ldi_f(_jit, r0, i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # define ldxr_f(r0, r1, r2) _ldxr_f(_jit, r0, r1, r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_f(r0, r1, i0) _ldxi_f(_jit, r0, r1, i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_f(r0, r1) SWC1(r1, 0, r0) # define sti_f(i0, r0) _sti_f(_jit, i0, r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # define stxr_f(r0, r1, r2) _stxr_f(_jit, r0, r1, r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_f(i0, r0, r1) _stxi_f(_jit, i0, r0, r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define movr_f(r0, r1) _movr_f(_jit, r0, r1) -static void _movr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_f(jit_state_t*,int32_t,jit_int32_t); # define movi_f(r0, i0) _movi_f(_jit, r0, i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); # if NEW_ABI # if __WORDSIZE == 32 # define movi64(r0, i0) _movi64(_jit, r0, i0) -static void _movi64(jit_state_t*,jit_int32_t,jit_int64_t); +static void _movi64(jit_state_t*,int32_t,int64_t); # else # define movi64(r0, i0) movi(r0, i0) # endif # define movr_w_d(r0, r1) DMTC1(r1, r0) # define movr_d_w(r0, r1) DMFC1(r0, r1) # define movi_d_w(r0, i0) _movi_d_w(_jit,r0,i0) -static void _movi_d_w(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d_w(jit_state_t*,int32_t,jit_float64_t*); # else # define movr_ww_d(r0, r1, r2) _movr_ww_d(_jit, r0, r1, r2) -static void _movr_ww_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _movr_ww_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define movr_d_ww(r0, r1, r2) _movr_d_ww(_jit, r0, r1, r2) -static void _movr_d_ww(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _movr_d_ww(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define movi_d_ww(r0, r1, i0) _movi_d_ww(_jit, r0, r1, i0) -static void _movi_d_ww(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _movi_d_ww(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # endif # define extr_d(r0, r1) _extr_d(_jit, r0, r1) -static void _extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_d(jit_state_t*,int32_t,jit_int32_t); # define truncr_d_i(r0, r1) _truncr_d_i(_jit, r0, r1) -static void _truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define truncr_d_l(r0, r1) _truncr_d_l(_jit, r0, r1) -static void _truncr_d_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); # endif # define ldr_d(r0, r1) _ldr_d(_jit, r0, r1) -static void _ldr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_d(jit_state_t*,int32_t,jit_int32_t); # define ldi_d(r0, i0) _ldi_d(_jit, r0, i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_d(r0, r1, r2) _ldxr_d(_jit, r0, r1, r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_d(r0, r1, i0) _ldxi_d(_jit, r0, r1, i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_d(r0, r1) _str_d(_jit, r0, r1) -static void _str_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_d(jit_state_t*,int32_t,jit_int32_t); # define sti_d(i0, r0) _sti_d(_jit, i0, r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_d(r0, r1, r2) _stxr_d(_jit, r0, r1, r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_d(i0, r0, r1) _stxi_d(_jit, i0, r0, r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define movr_d(r0, r1) _movr_d(_jit, r0, r1) -static void _movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d(jit_state_t*,int32_t,jit_int32_t); # define movi_d(r0, i0) _movi_d(_jit, r0, i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); # define ltr_f(r0, r1, r2) _ltr_f(_jit, r0, r1, r2) -static void _ltr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti_f(r0, r1, i2) _lti_f(_jit, r0, r1, i2) -static void _lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ler_f(r0, r1, r2) _ler_f(_jit, r0, r1, r2) -static void _ler_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei_f(r0, r1, i2) _lei_f(_jit, r0, r1, i2) -static void _lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define eqr_f(r0, r1, r2) _eqr_f(_jit, r0, r1, r2) -static void _eqr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define eqi_f(r0, r1, i2) _eqi_f(_jit, r0, r1, i2) -static void _eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ger_f(r0, r1, r2) _ger_f(_jit, r0, r1, r2) -static void _ger_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei_f(r0, r1, i2) _gei_f(_jit, r0, r1, i2) -static void _gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define gtr_f(r0, r1, r2) _gtr_f(_jit, r0, r1, r2) -static void _gtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti_f(r0, r1, i2) _gti_f(_jit, r0, r1, i2) -static void _gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ner_f(r0, r1, r2) _ner_f(_jit, r0, r1, r2) -static void _ner_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei_f(r0, r1, i2) _nei_f(_jit, r0, r1, i2) -static void _nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unltr_f(r0, r1, r2) _unltr_f(_jit, r0, r1, r2) -static void _unltr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unltr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlti_f(r0, r1, i2) _unlti_f(_jit, r0, r1, i2) -static void _unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unler_f(r0, r1, r2) _unler_f(_jit, r0, r1, r2) -static void _unler_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unler_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlei_f(r0, r1, i2) _unlei_f(_jit, r0, r1, i2) -static void _unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define uneqr_f(r0, r1, r2) _uneqr_f(_jit, r0, r1, r2) -static void _uneqr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_f(r0, r1, i2) _uneqi_f(_jit, r0, r1, i2) -static void _uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unger_f(r0, r1, r2) _unger_f(_jit, r0, r1, r2) -static void _unger_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unger_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungei_f(r0, r1, i2) _ungei_f(_jit, r0, r1, i2) -static void _ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ungtr_f(r0, r1, r2) _ungtr_f(_jit, r0, r1, r2) -static void _ungtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ungtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungti_f(r0, r1, i2) _ungti_f(_jit, r0, r1, i2) -static void _ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ltgtr_f(r0, r1, r2) _ltgtr_f(_jit, r0, r1, r2) -static void _ltgtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_f(r0, r1, i2) _ltgti_f(_jit, r0, r1, i2) -static void _ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ordr_f(r0, r1, r2) _ordr_f(_jit, r0, r1, r2) -static void _ordr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ordi_f(r0, r1, i2) _ordi_f(_jit, r0, r1, i2) -static void _ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unordr_f(r0, r1, r2) _unordr_f(_jit, r0, r1, r2) -static void _unordr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unordi_f(r0, r1, i2) _unordi_f(_jit, r0, r1, i2) -static void _unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define bltr_f(i0, r0, r1) _bltr_f(_jit, i0, r0, r1) -static jit_word_t _bltr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti_f(i0, r0, i1) _blti_f(_jit, i0, r0, i1) static jit_word_t -_blti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_blti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bler_f(i0, r0, r1) _bler_f(_jit, i0, r0, r1) -static jit_word_t _bler_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei_f(i0, r0, i1) _blei_f(_jit, i0, r0, i1) static jit_word_t -_blei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_blei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define beqr_f(i0, r0, r1) _beqr_f(_jit, i0, r0, r1) -static jit_word_t _beqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define beqi_f(i0, r0, i1) _beqi_f(_jit, i0, r0, i1) static jit_word_t -_beqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_beqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bger_f(i0, r0, r1) _bger_f(_jit, i0, r0, r1) -static jit_word_t _bger_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei_f(i0, r0, i1) _bgei_f(_jit, i0, r0, i1) static jit_word_t -_bgei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bgei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bgtr_f(i0, r0, r1) _bgtr_f(_jit, i0, r0, r1) -static jit_word_t _bgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti_f(i0, r0, i1) _bgti_f(_jit, i0, r0, i1) static jit_word_t -_bgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bner_f(i0, r0, r1) _bner_f(_jit, i0, r0, r1) -static jit_word_t _bner_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bnei_f(i0, r0, i1) _bnei_f(_jit, i0, r0, i1) static jit_word_t -_bnei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bnei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bunltr_f(i0, r0, r1) _bunltr_f(_jit, i0, r0, r1) -static jit_word_t _bunltr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunltr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlti_f(i0, r0, i1) _bunlti_f(_jit, i0, r0, i1) static jit_word_t -_bunlti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bunlti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bunler_f(i0, r0, r1) _bunler_f(_jit, i0, r0, r1) -static jit_word_t _bunler_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunler_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlei_f(i0, r0, i1) _bunlei_f(_jit, i0, r0, i1) static jit_word_t -_bunlei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bunlei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define buneqr_f(i0, r0, r1) _buneqr_f(_jit, i0, r0, r1) -static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_f(i0, r0, i1) _buneqi_f(_jit, i0, r0, i1) static jit_word_t -_buneqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_buneqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bunger_f(i0, r0, r1) _bunger_f(_jit, i0, r0, r1) -static jit_word_t _bunger_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungei_f(i0, r0, i1) _bungei_f(_jit, i0, r0, i1) static jit_word_t -_bungei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bungei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bungtr_f(i0, r0, r1) _bungtr_f(_jit, i0, r0, r1) -static jit_word_t _bungtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bungtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungti_f(i0, r0, i1) _bungti_f(_jit, i0, r0, i1) static jit_word_t -_bungti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bungti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bltgtr_f(i0, r0, r1) _bltgtr_f(_jit, i0, r0, r1) -static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_f(i0, r0, i1) _bltgti_f(_jit, i0, r0, i1) static jit_word_t -_bltgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bltgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bordr_f(i0, r0, r1) _bordr_f(_jit, i0, r0, r1) -static jit_word_t _bordr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bordr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bordi_f(i0, r0, i1) _bordi_f(_jit, i0, r0, i1) static jit_word_t -_bordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define bunordr_f(i0, r0, r1) _bunordr_f(_jit, i0, r0, r1) -static jit_word_t _bunordr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunordr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunordi_f(i0, r0, i1) _bunordi_f(_jit, i0, r0, i1) static jit_word_t -_bunordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_bunordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define extr_f_d(r0, r1) CVT_D_S(r0, r1) # define ltr_d(r0, r1, r2) _ltr_d(_jit, r0, r1, r2) -static void _ltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti_d(r0, r1, i2) _lti_d(_jit, r0, r1, i2) -static void _lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ler_d(r0, r1, r2) _ler_d(_jit, r0, r1, r2) -static void _ler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei_d(r0, r1, i2) _lei_d(_jit, r0, r1, i2) -static void _lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define eqr_d(r0, r1, r2) _eqr_d(_jit, r0, r1, r2) -static void _eqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define eqi_d(r0, r1, i2) _eqi_d(_jit, r0, r1, i2) -static void _eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ger_d(r0, r1, r2) _ger_d(_jit, r0, r1, r2) -static void _ger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei_d(r0, r1, i2) _gei_d(_jit, r0, r1, i2) -static void _gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define gtr_d(r0, r1, r2) _gtr_d(_jit, r0, r1, r2) -static void _gtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti_d(r0, r1, i2) _gti_d(_jit, r0, r1, i2) -static void _gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ner_d(r0, r1, r2) _ner_d(_jit, r0, r1, r2) -static void _ner_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei_d(r0, r1, i2) _nei_d(_jit, r0, r1, i2) -static void _nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unltr_d(r0, r1, r2) _unltr_d(_jit, r0, r1, r2) -static void _unltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlti_d(r0, r1, i2) _unlti_d(_jit, r0, r1, i2) -static void _unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unler_d(r0, r1, r2) _unler_d(_jit, r0, r1, r2) -static void _unler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlei_d(r0, r1, i2) _unlei_d(_jit, r0, r1, i2) -static void _unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define uneqr_d(r0, r1, r2) _uneqr_d(_jit, r0, r1, r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_d(r0, r1, i2) _uneqi_d(_jit, r0, r1, i2) -static void _uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unger_d(r0, r1, r2) _unger_d(_jit, r0, r1, r2) -static void _unger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungei_d(r0, r1, i2) _ungei_d(_jit, r0, r1, i2) -static void _ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ungtr_d(r0, r1, r2) _ungtr_d(_jit, r0, r1, r2) -static void _ungtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungti_d(r0, r1, i2) _ungti_d(_jit, r0, r1, i2) -static void _ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ltgtr_d(r0, r1, r2) _ltgtr_d(_jit, r0, r1, r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_d(r0, r1, i2) _ltgti_d(_jit, r0, r1, i2) -static void _ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ordr_d(r0, r1, r2) _ordr_d(_jit, r0, r1, r2) -static void _ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ordi_d(r0, r1, i2) _ordi_d(_jit, r0, r1, i2) -static void _ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unordr_d(r0, r1, r2) _unordr_d(_jit, r0, r1, r2) -static void _unordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unordi_d(r0, r1, i2) _unordi_d(_jit, r0, r1, i2) -static void _unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define bltr_d(i0, r0, r1) _bltr_d(_jit, i0, r0, r1) -static jit_word_t _bltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti_d(i0, r0, i1) _blti_d(_jit, i0, r0, i1) static jit_word_t -_blti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_blti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bler_d(i0, r0, r1) _bler_d(_jit, i0, r0, r1) -static jit_word_t _bler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei_d(i0, r0, i1) _blei_d(_jit, i0, r0, i1) static jit_word_t -_blei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_blei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define beqr_d(i0, r0, r1) _beqr_d(_jit, i0, r0, r1) -static jit_word_t _beqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define beqi_d(i0, r0, i1) _beqi_d(_jit, i0, r0, i1) static jit_word_t -_beqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_beqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bger_d(i0, r0, r1) _bger_d(_jit, i0, r0, r1) -static jit_word_t _bger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei_d(i0, r0, i1) _bgei_d(_jit, i0, r0, i1) static jit_word_t -_bgei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bgei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bgtr_d(i0, r0, r1) _bgtr_d(_jit, i0, r0, r1) -static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti_d(i0, r0, i1) _bgti_d(_jit, i0, r0, i1) static jit_word_t -_bgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bner_d(i0, r0, r1) _bner_d(_jit, i0, r0, r1) -static jit_word_t _bner_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bnei_d(i0, r0, i1) _bnei_d(_jit, i0, r0, i1) static jit_word_t -_bnei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bnei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bunltr_d(i0, r0, r1) _bunltr_d(_jit, i0, r0, r1) -static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlti_d(i0, r0, i1) _bunlti_d(_jit, i0, r0, i1) static jit_word_t -_bunlti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bunlti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bunler_d(i0, r0, r1) _bunler_d(_jit, i0, r0, r1) -static jit_word_t _bunler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlei_d(i0, r0, i1) _bunlei_d(_jit, i0, r0, i1) static jit_word_t -_bunlei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bunlei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define buneqr_d(i0, r0, r1) _buneqr_d(_jit, i0, r0, r1) -static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_d(i0, r0, i1) _buneqi_d(_jit, i0, r0, i1) static jit_word_t -_buneqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_buneqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bunger_d(i0, r0, r1) _bunger_d(_jit, i0, r0, r1) -static jit_word_t _bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungei_d(i0, r0, i1) _bungei_d(_jit, i0, r0, i1) static jit_word_t -_bungei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bungei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bungtr_d(i0, r0, r1) _bungtr_d(_jit, i0, r0, r1) -static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungti_d(i0, r0, i1) _bungti_d(_jit, i0, r0, i1) static jit_word_t -_bungti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bungti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bltgtr_d(i0, r0, r1) _bltgtr_d(_jit, i0, r0, r1) -static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_d(i0, r0, i1) _bltgti_d(_jit, i0, r0, i1) static jit_word_t -_bltgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bltgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bordr_d(i0, r0, r1) _bordr_d(_jit, i0, r0, r1) -static jit_word_t _bordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bordi_d(i0, r0, i1) _bordi_d(_jit, i0, r0, i1) static jit_word_t -_bordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define bunordr_d(i0, r0, r1) _bunordr_d(_jit, i0, r0, r1) -static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunordi_d(i0, r0, i1) _bunordi_d(_jit, i0, r0, i1) static jit_word_t -_bunordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_bunordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE static void -_c_cond_fmt(jit_state_t *_jit, jit_int32_t fm, - jit_int32_t ft, jit_int32_t fs, jit_int32_t cc) +_c_cond_fmt(jit_state_t *_jit, int32_t fm, + int32_t ft, jit_int32_t fs, jit_int32_t cc) { jit_instr_t i; i.cc.b = cc; @@ -571,10 +571,10 @@ _c_cond_fmt(jit_state_t *_jit, jit_int32_t fm, # define fpr_opi(name, type, size) \ static void \ _##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_##type(rn(reg), i0); \ name##r_##type(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -582,11 +582,11 @@ _##name##i_##type(jit_state_t *_jit, \ # define fpr_bopi(name, type, size) \ static jit_word_t \ _b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ movi_##type(rn(reg), i1); \ word = b##name##r_##type(i0, r0, rn(reg)); \ @@ -605,10 +605,10 @@ fopi(mul) fopi(div) static void -_movi_f_w(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f_w(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; @@ -617,9 +617,9 @@ _movi_f_w(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); # if __WORDSIZE == 32 MTC1(r1, rn(t0)); @@ -632,9 +632,9 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); TRUNC_W_S(rn(t0), r1); MFC1(r0, rn(t0)); @@ -643,9 +643,9 @@ _truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_truncr_f_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); TRUNC_L_S(rn(t0), r1); DMFC1(r0, rn(t0)); @@ -654,9 +654,9 @@ _truncr_f_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LWC1(r0, i0, _ZERO_REGNO); else { @@ -668,9 +668,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_f(r0, rn(reg)); @@ -678,9 +678,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) LWC1(r0, i0, r1); else { @@ -692,9 +692,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SWC1(r0, i0, _ZERO_REGNO); else { @@ -706,9 +706,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_f(rn(reg), r2); @@ -716,9 +716,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) SWC1(r1, i0, r0); else { @@ -730,20 +730,20 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) MOV_S(r0, r1); } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; data.f = *i0; if (data.i) { @@ -769,7 +769,7 @@ dopi(div) #if NEW_ABI /* n32 abi requires 64 bit cpu */ static void -_movi64(jit_state_t *_jit, jit_int32_t r0, jit_int64_t i0) +_movi64(jit_state_t *_jit, int32_t r0, int64_t i0) { if (i0 == 0) OR(r0, _ZERO_REGNO, _ZERO_REGNO); @@ -802,11 +802,11 @@ _movi64(jit_state_t *_jit, jit_int32_t r0, jit_int64_t i0) } static void -_movi_d_w(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d_w(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { jit_word_t w; union { - jit_int64_t l; + int64_t l; jit_float64_t d; } data; if (_jitc->no_data) { @@ -826,7 +826,7 @@ _movi_d_w(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) #else static void -_movr_ww_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_movr_ww_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { assert(r1 == r2 - 1); MTC1(r1, r0 + BE_P); @@ -834,7 +834,7 @@ _movr_ww_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_movr_d_ww(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_movr_d_ww(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { assert(r0 == r1 - 1); MFC1(r0, r2 + BE_P); @@ -842,11 +842,11 @@ _movr_d_ww(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_movi_d_ww(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) +_movi_d_ww(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t *i0) { union { - jit_int32_t i[2]; - jit_int64_t l; + int32_t i[2]; + int64_t l; jit_float64_t d; } data; @@ -857,9 +857,9 @@ _movi_d_ww(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) #endif static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); # if __WORDSIZE == 32 MTC1(r1, rn(t0)); @@ -872,9 +872,9 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); TRUNC_W_D(rn(t0), r1); MFC1(r0, rn(t0)); @@ -883,9 +883,9 @@ _truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_fpr); TRUNC_L_D(rn(t0), r1); DMFC1(r0, rn(t0)); @@ -894,7 +894,7 @@ _truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { # if __WORDSIZE == 64 || NEW_ABI LDC1(r0, 0, r1); @@ -905,9 +905,9 @@ _ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 || NEW_ABI if (can_sign_extend_short_p(i0)) LDC1(r0, i0, _ZERO_REGNO); @@ -933,9 +933,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); ldr_d(r0, rn(reg)); @@ -943,9 +943,9 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 || NEW_ABI if (can_sign_extend_short_p(i0)) LDC1(r0, i0, r1); @@ -964,7 +964,7 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_str_d(jit_state_t *_jit,jit_int32_t r0, jit_int32_t r1) +_str_d(jit_state_t *_jit,int32_t r0, jit_int32_t r1) { # if __WORDSIZE == 64 || NEW_ABI SDC1(r1, 0, r0); @@ -975,9 +975,9 @@ _str_d(jit_state_t *_jit,jit_int32_t r0, jit_int32_t r1) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 || NEW_ABI if (can_sign_extend_short_p(i0)) SDC1(r0, i0, _ZERO_REGNO); @@ -996,9 +996,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_d(rn(reg), r2); @@ -1006,9 +1006,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 || NEW_ABI if (can_sign_extend_short_p(i0)) SDC1(r1, i0, r0); @@ -1027,21 +1027,21 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) MOV_D(r0, r1); } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { - jit_int32_t i[2]; - jit_int64_t l; + int32_t i[2]; + int64_t l; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; data.d = *i0; # if __WORDSIZE == 64 || NEW_ABI @@ -1086,7 +1086,7 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) } static void -_ltr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_S(r1, r2); @@ -1100,7 +1100,7 @@ _ltr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(lt) static void -_ler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_S(r1, r2); @@ -1114,7 +1114,7 @@ _ler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(le) static void -_eqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_S(r1, r2); @@ -1128,7 +1128,7 @@ _eqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(eq) static void -_ger_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_S(r1, r2); @@ -1142,7 +1142,7 @@ _ger_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ge) static void -_gtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_S(r1, r2); @@ -1156,7 +1156,7 @@ _gtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(gt) static void -_ner_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_S(r1, r2); @@ -1170,7 +1170,7 @@ _ner_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ne) static void -_unltr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unltr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_S(r1, r2); @@ -1184,7 +1184,7 @@ _unltr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unlt) static void -_unler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unler_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_S(r1, r2); @@ -1198,7 +1198,7 @@ _unler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unle) static void -_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_S(r1, r2); @@ -1212,7 +1212,7 @@ _uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(uneq) static void -_unger_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unger_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_S(r1, r2); @@ -1226,7 +1226,7 @@ _unger_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unge) static void -_ungtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ungtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_S(r1, r2); @@ -1240,7 +1240,7 @@ _ungtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ungt) static void -_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_S(r1, r2); @@ -1254,7 +1254,7 @@ _ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ltgt) static void -_ordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_S(r1, r2); @@ -1268,7 +1268,7 @@ _ordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(ord) static void -_unordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_S(r1, r2); @@ -1282,7 +1282,7 @@ _unordr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unord) static jit_word_t -_bltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bltr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_S(r1, r2); @@ -1294,7 +1294,7 @@ _bltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(lt) static jit_word_t -_bler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bler_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_S(r1, r2); @@ -1306,7 +1306,7 @@ _bler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(le) static jit_word_t -_beqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_beqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_S(r1, r2); @@ -1318,7 +1318,7 @@ _beqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(eq) static jit_word_t -_bger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bger_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_S(r1, r2); @@ -1330,7 +1330,7 @@ _bger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(ge) static jit_word_t -_bgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_S(r1, r2); @@ -1342,7 +1342,7 @@ _bgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(gt) static jit_word_t -_bner_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bner_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_S(r1, r2); @@ -1354,7 +1354,7 @@ _bner_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(ne) static jit_word_t -_bunltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunltr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_S(r1, r2); @@ -1366,7 +1366,7 @@ _bunltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(unlt) static jit_word_t -_bunler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunler_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_S(r1, r2); @@ -1378,7 +1378,7 @@ _bunler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(unle) static jit_word_t -_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_S(r1, r2); @@ -1390,7 +1390,7 @@ _buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(uneq) static jit_word_t -_bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_S(r1, r2); @@ -1402,7 +1402,7 @@ _bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(unge) static jit_word_t -_bungtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bungtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_S(r1, r2); @@ -1414,7 +1414,7 @@ _bungtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(ungt) static jit_word_t -_bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_S(r1, r2); @@ -1426,7 +1426,7 @@ _bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(ltgt) static jit_word_t -_bordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bordr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_S(r1, r2); @@ -1438,7 +1438,7 @@ _bordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(ord) static jit_word_t -_bunordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunordr_f(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_S(r1, r2); @@ -1450,7 +1450,7 @@ _bunordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) fbopi(unord) static void -_ltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_D(r1, r2); @@ -1464,7 +1464,7 @@ _ltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(lt) static void -_ler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_D(r1, r2); @@ -1478,7 +1478,7 @@ _ler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(le) static void -_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_D(r1, r2); @@ -1492,7 +1492,7 @@ _eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(eq) static void -_ger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_D(r1, r2); @@ -1506,7 +1506,7 @@ _ger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ge) static void -_gtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_D(r1, r2); @@ -1520,7 +1520,7 @@ _gtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(gt) static void -_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_D(r1, r2); @@ -1534,7 +1534,7 @@ _ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ne) static void -_unltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_D(r1, r2); @@ -1548,7 +1548,7 @@ _unltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(unlt) static void -_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_D(r1, r2); @@ -1562,7 +1562,7 @@ _unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(unle) static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_D(r1, r2); @@ -1576,7 +1576,7 @@ _uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(uneq) static void -_unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_D(r1, r2); @@ -1590,7 +1590,7 @@ _unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(unge) static void -_ungtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_D(r1, r2); @@ -1604,7 +1604,7 @@ _ungtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ungt) static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_D(r1, r2); @@ -1618,7 +1618,7 @@ _ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ltgt) static void -_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_D(r1, r2); @@ -1632,7 +1632,7 @@ _ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(ord) static void -_unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_D(r1, r2); @@ -1646,7 +1646,7 @@ _unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(unord) static jit_word_t -_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_D(r1, r2); @@ -1658,7 +1658,7 @@ _bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(lt) static jit_word_t -_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_D(r1, r2); @@ -1670,7 +1670,7 @@ _bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(le) static jit_word_t -_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_D(r1, r2); @@ -1682,7 +1682,7 @@ _beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(eq) static jit_word_t -_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_D(r1, r2); @@ -1694,7 +1694,7 @@ _bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(ge) static jit_word_t -_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_D(r1, r2); @@ -1706,7 +1706,7 @@ _bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(gt) static jit_word_t -_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_EQ_D(r1, r2); @@ -1718,7 +1718,7 @@ _bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(ne) static jit_word_t -_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULT_D(r1, r2); @@ -1730,7 +1730,7 @@ _bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(unlt) static jit_word_t -_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_ULE_D(r1, r2); @@ -1742,7 +1742,7 @@ _bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(unle) static jit_word_t -_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_D(r1, r2); @@ -1754,7 +1754,7 @@ _buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(uneq) static jit_word_t -_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLT_D(r1, r2); @@ -1766,7 +1766,7 @@ _bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(unge) static jit_word_t -_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_OLE_D(r1, r2); @@ -1778,7 +1778,7 @@ _bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(ungt) static jit_word_t -_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UEQ_D(r1, r2); @@ -1790,7 +1790,7 @@ _bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(ltgt) static jit_word_t -_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_D(r1, r2); @@ -1802,7 +1802,7 @@ _bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(ord) static jit_word_t -_bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) +_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r1, jit_int32_t r2) { jit_word_t w; C_UN_D(r1, r2); @@ -1814,10 +1814,10 @@ _bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r1, jit_int32_t r2) dbopi(unord) static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if !NEW_ABI - jit_int32_t reg; + int32_t reg; #endif assert(_jitc->function->self.call & jit_call_varargs); #if !NEW_ABI diff --git a/jit/mips.c b/jit/mips.c index be878f5e6..5eaeaff64 100644 --- a/jit/mips.c +++ b/jit/mips.c @@ -41,9 +41,9 @@ # define S_DISP 0 # define I_DISP 0 #else -# define C_DISP STACK_SLOT - sizeof(jit_int8_t) -# define S_DISP STACK_SLOT - sizeof(jit_int16_t) -# define I_DISP STACK_SLOT - sizeof(jit_int32_t) +# define C_DISP STACK_SLOT - sizeof(int8_t) +# define S_DISP STACK_SLOT - sizeof(int16_t) +# define I_DISP STACK_SLOT - sizeof(int32_t) #endif /* @@ -169,7 +169,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -188,7 +188,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = _jitc->function->self.alen = 0; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -207,8 +207,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -226,13 +226,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -259,7 +259,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -279,7 +279,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (JIT_FRET != u) @@ -300,7 +300,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (JIT_FRET != u) @@ -345,7 +345,7 @@ _jit_arg_register_p(jit_state_t *_jit, jit_node_t *u) static jit_node_t * _jit_make_arg(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; #if NEW_ABI if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -373,7 +373,7 @@ _jit_make_arg(jit_state_t *_jit, jit_node_t *node) static jit_node_t * _jit_make_arg_f(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; #if NEW_ABI if (jit_arg_reg_p(_jitc->function->self.argi)) { offset = _jitc->function->self.argi++; @@ -416,7 +416,7 @@ _jit_make_arg_f(jit_state_t *_jit, jit_node_t *node) static jit_node_t * _jit_make_arg_d(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t offset; + int32_t offset; #if NEW_ABI if (jit_arg_reg_p(_jitc->function->self.argi)) { offset = _jitc->function->self.argi++; @@ -490,7 +490,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -519,7 +519,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -531,7 +531,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -543,7 +543,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -555,7 +555,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -567,7 +567,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -585,7 +585,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #if __WORDSIZE == 64 void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -597,7 +597,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -610,7 +610,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #endif void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { jit_inc_synth_wp(putargr, u, v); assert(v->code == jit_code_arg); @@ -624,7 +624,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -639,7 +639,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -660,7 +660,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -683,7 +683,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); #if NEW_ABI @@ -715,7 +715,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -736,7 +736,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -759,7 +759,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); #if NEW_ABI @@ -791,7 +791,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(pushargr, u); jit_link_prepare(); @@ -822,7 +822,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; #if !NEW_ABI jit_word_t offset; #endif @@ -858,7 +858,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { #if !NEW_ABI jit_word_t offset; @@ -899,7 +899,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; #if !NEW_ABI jit_word_t offset; #endif @@ -944,7 +944,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { #if !NEW_ABI jit_bool_t adjust; @@ -992,7 +992,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; #if !NEW_ABI jit_bool_t adjust; jit_word_t offset; @@ -1044,9 +1044,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { @@ -1066,7 +1066,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -1112,31 +1112,31 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_extr_c(r0, JIT_RET); } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_extr_uc(r0, JIT_RET); } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_extr_s(r0, JIT_RET); } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_extr_us(r0, JIT_RET); } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { #if __WORDSIZE == 32 if (r0 != JIT_RET) @@ -1148,13 +1148,13 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) #if __WORDSIZE == 64 void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_extr_ui(r0, JIT_RET); } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { if (r0 != JIT_RET) jit_movr(r0, JIT_RET); @@ -1162,14 +1162,14 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) #endif void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { if (r0 != JIT_FRET) jit_movr_f(r0, JIT_FRET); } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { if (r0 != JIT_FRET) jit_movr_d(r0, JIT_FRET); @@ -1181,15 +1181,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1883,25 +1883,25 @@ jit_flush(void *fptr, void *tptr) } void -_emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi(rn(r0), rn(r1), i0); } void -_emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi(i0, rn(r0), rn(r1)); } void -_emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_d(rn(r0), rn(r1), i0); } void -_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi_d(i0, rn(r0), rn(r1)); } @@ -1909,7 +1909,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/ppc-cpu.c b/jit/ppc-cpu.c index 0fb695989..c0cf4167d 100644 --- a/jit/ppc-cpu.c +++ b/jit/ppc-cpu.c @@ -308,7 +308,7 @@ error handler to be invoked # define MCRXR(d) FX(31,d<<2,0,0,512) # else # define MCRXR(cr) _MCRXR(_jit,cr); -static void _MCRXR(jit_state_t*, jit_int32_t); +static void _MCRXR(jit_state_t*, int32_t); # endif # define MFCR(d) FX(31,d,0,0,19) # define MFMSR(d) FX(31,d,0,0,83) @@ -492,13 +492,13 @@ static void _MCRXR(jit_state_t*, jit_int32_t); # define XORI(s,a,u) FDu(26,a,s,u) # define XORIS(s,a,u) FDu(27,a,s,u) # define nop(c) _nop(_jit,c) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define negr(r0,r1) NEG(r0,r1) # define comr(r0,r1) NOT(r0,r1) # define extr_c(r0,r1) EXTSB(r0,r1) @@ -519,34 +519,34 @@ static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); # endif # else # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define htonr_ul(r0,r1) _htonr_ul(_jit,r0,r1) -static void _htonr_ul(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ul(jit_state_t*,int32_t,jit_int32_t); # endif # endif # define addr(r0,r1,r2) ADD(r0,r1,r2) # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addcr(r0,r1,r2) ADDC(r0,r1,r2) # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,r2) ADDE(r0,r1,r2) # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subr(r0,r1,r2) SUB(r0,r1,r2) # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,r2) SUBC(r0,r1,r2) # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) SUBFE(r0,r2,r1) # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define mulr(r0,r1,r2) MULLW(r0,r1,r2) # define mullr(r0,r1,r2) MULLW(r0,r1,r2) @@ -559,293 +559,293 @@ static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # define mulhr_u(r0,r1,r2) MULHDU(r0,r1,r2) # endif # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) -static void _iqmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) -static void _iqmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # if __WORDSIZE == 32 # define divr(r0,r1,r2) DIVW(r0,r1,r2) # else # define divr(r0,r1,r2) DIVD(r0,r1,r2) # endif # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define divr_u(r0,r1,r2) DIVWU(r0,r1,r2) # else # define divr_u(r0,r1,r2) DIVDU(r0,r1,r2) # endif # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) -static void _iqdivr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) -static void _iqdivi(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define andr(r0,r1,r2) AND(r0,r1,r2) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) OR(r0,r1,r2) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) XOR(r0,r1,r2) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define lshr(r0,r1,r2) SLW(r0,r1,r2) # else # define lshr(r0,r1,r2) SLD(r0,r1,r2) # endif # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define rshr(r0,r1,r2) SRAW(r0,r1,r2) # else # define rshr(r0,r1,r2) SRAD(r0,r1,r2) # endif # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define rshr_u(r0,r1,r2) SRW(r0,r1,r2) # else # define rshr_u(r0,r1,r2) SRD(r0,r1,r2) # endif # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ltr(r0,r1,r2) _ltr(_jit,r0,r1,r2) -static void _ltr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti(r0,r1,i0) _lti(_jit,r0,r1,i0) -static void _lti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ltr_u(r0,r1,r2) _ltr_u(_jit,r0,r1,r2) -static void _ltr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti_u(r0,r1,i0) _lti_u(_jit,r0,r1,i0) -static void _lti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ler(r0,r1,r2) _ler(_jit,r0,r1,r2) -static void _ler(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei(r0,r1,i0) _lei(_jit,r0,r1,i0) -static void _lei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ler_u(r0,r1,r2) _ler_u(_jit,r0,r1,r2) -static void _ler_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei_u(r0,r1,i0) _lei_u(_jit,r0,r1,i0) -static void _lei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define eqr(r0,r1,r2) _eqr(_jit,r0,r1,r2) -static void _eqr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define eqi(r0,r1,i0) _eqi(_jit,r0,r1,i0) -static void _eqi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _eqi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ger(r0,r1,r2) _ger(_jit,r0,r1,r2) -static void _ger(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei(r0,r1,i0) _gei(_jit,r0,r1,i0) -static void _gei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ger_u(r0,r1,r2) _ger_u(_jit,r0,r1,r2) -static void _ger_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei_u(r0,r1,i0) _gei_u(_jit,r0,r1,i0) -static void _gei_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gei_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr(r0,r1,r2) _gtr(_jit,r0,r1,r2) -static void _gtr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti(r0,r1,i0) _gti(_jit,r0,r1,i0) -static void _gti(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define gtr_u(r0,r1,r2) _gtr_u(_jit,r0,r1,r2) -static void _gtr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti_u(r0,r1,i0) _gti_u(_jit,r0,r1,i0) -static void _gti_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _gti_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) -static void _ner(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) -static void _nei(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); #define bltr(i0,r0,r1) _bltr(_jit,i0,r0,r1) -static jit_word_t _bltr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti(i0,r0,i1) _blti(_jit,i0,r0,i1) -static jit_word_t _blti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bltr_u(i0,r0,r1) _bltr_u(_jit,i0,r0,r1) -static jit_word_t _bltr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blti_u(i0,r0,i1) _blti_u(_jit,i0,r0,i1) -static jit_word_t _blti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bler(i0,r0,r1) _bler(_jit,i0,r0,r1) -static jit_word_t _bler(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei(i0,r0,i1) _blei(_jit,i0,r0,i1) -static jit_word_t _blei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bler_u(i0,r0,r1) _bler_u(_jit,i0,r0,r1) -static jit_word_t _bler_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define blei_u(i0,r0,i1) _blei_u(_jit,i0,r0,i1) -static jit_word_t _blei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _blei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define beqr(i0,r0,r1) _beqr(_jit,i0,r0,r1) -static jit_word_t _beqr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define beqi(i0,r0,i1) _beqi(_jit,i0,r0,i1) -static jit_word_t _beqi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bger(i0,r0,r1) _bger(_jit,i0,r0,r1) -static jit_word_t _bger(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei(i0,r0,i1) _bgei(_jit,i0,r0,i1) -static jit_word_t _bgei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bger_u(i0,r0,r1) _bger_u(_jit,i0,r0,r1) -static jit_word_t _bger_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgei_u(i0,r0,i1) _bgei_u(_jit,i0,r0,i1) -static jit_word_t _bgei_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgei_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgtr(i0,r0,r1) _bgtr(_jit,i0,r0,r1) -static jit_word_t _bgtr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti(i0,r0,i1) _bgti(_jit,i0,r0,i1) -static jit_word_t _bgti(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bgtr_u(i0,r0,r1) _bgtr_u(_jit,i0,r0,r1) -static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bgti_u(i0,r0,i1) _bgti_u(_jit,i0,r0,i1) -static jit_word_t _bgti_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bgti_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bner(i0,r0,r1) _bner(_jit,i0,r0,r1) -static jit_word_t _bner(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bnei(i0,r0,i1) _bnei(_jit,i0,r0,i1) -static jit_word_t _bnei(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bmsr(i0,r0,r1) _bmsr(_jit,i0,r0,r1) -static jit_word_t _bmsr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmsr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bmsi(i0,r0,i1) _bmsi(_jit,i0,r0,i1) -static jit_word_t _bmsi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmsi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bmcr(i0,r0,r1) _bmcr(_jit,i0,r0,r1) -static jit_word_t _bmcr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmcr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bmci(i0,r0,i1) _bmci(_jit,i0,r0,i1) -static jit_word_t _bmci(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmci(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define boaddr(i0,r0,r1) _boaddr(_jit,i0,r0,r1) -static jit_word_t _boaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define boaddi(i0,r0,i1) _boaddi(_jit,i0,r0,i1) -static jit_word_t _boaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxaddr(i0,r0,r1) _bxaddr(_jit,i0,r0,r1) -static jit_word_t _bxaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxaddi(i0,r0,i1) _bxaddi(_jit,i0,r0,i1) -static jit_word_t _bxaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bosubr(i0,r0,r1) _bosubr(_jit,i0,r0,r1) -static jit_word_t _bosubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bosubi(i0,r0,i1) _bosubi(_jit,i0,r0,i1) -static jit_word_t _bosubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxsubr(i0,r0,r1) _bxsubr(_jit,i0,r0,r1) -static jit_word_t _bxsubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxsubi(i0,r0,i1) _bxsubi(_jit,i0,r0,i1) -static jit_word_t _bxsubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define boaddr_u(i0,r0,r1) _boaddr_u(_jit,i0,r0,r1) -static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define boaddi_u(i0,r0,i1) _boaddi_u(_jit,i0,r0,i1) -static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxaddr_u(i0,r0,r1) _bxaddr_u(_jit,i0,r0,r1) -static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxaddi_u(i0,r0,i1) _bxaddi_u(_jit,i0,r0,i1) -static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bosubr_u(i0,r0,r1) _bosubr_u(_jit,i0,r0,r1) -static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bosubi_u(i0,r0,i1) _bosubi_u(_jit,i0,r0,i1) -static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); #define bxsubr_u(i0,r0,r1) _bxsubr_u(_jit,i0,r0,r1) -static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); #define bxsubi_u(i0,r0,i1) _bxsubi_u(_jit,i0,r0,i1) -static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) -static void _ldr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldxr_c(r0,r1,i0) _ldxr_c(_jit,r0,r1,i0) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_uc(r0,r1) LBZX(r0, _R0_REGNO, r1) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_s(r0,r1) LHAX(r0, _R0_REGNO, r1) # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldxr_s(r0,r1,i0) _ldxr_s(_jit,r0,r1,i0) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_us(r0,r1) LHZX(r0, _R0_REGNO, r1) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldxr_us(r0,r1,i0) _ldxr_us(_jit,r0,r1,i0) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldr_i(r0,r1) LWZX(r0, _R0_REGNO, r1) # else # define ldr_i(r0,r1) LWAX(r0, _R0_REGNO, r1) # endif # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # define ldxr_i(r0,r1,i0) _ldxr_i(_jit,r0,r1,i0) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldr_ui(r0,r1) LWZX(r0, _R0_REGNO, r1) # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldxr_ui(r0,r1,i0) _ldxr_ui(_jit,r0,r1,i0) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_l(r0,r1) LDX(r0, _R0_REGNO, r1) # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # define ldxr_l(r0,r1,i0) _ldxr_l(_jit,r0,r1,i0) -static void _ldxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # endif # define str_c(r0,r1) STBX(r1, _R0_REGNO, r0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_s(r0,r1) STHX(r1, _R0_REGNO, r0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_i(r0,r1) STWX(r1, _R0_REGNO, r0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define str_l(r0,r1) STDX(r1, _R0_REGNO, r0) # define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # define stxr_l(r0,r1,r2) _stxr_l(_jit,r0,r1,r2) -static void _stxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # endif # define jmpr(r0) _jmpr(_jit,r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); # define jmpi(i0) _jmpi(_jit,i0) static jit_word_t _jmpi(jit_state_t*,jit_word_t); # define jmpi_p(i0) _jmpi_p(_jit,i0) static jit_word_t _jmpi_p(jit_state_t*,jit_word_t) maybe_unused; # define callr(r0) _callr(_jit,r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); # define calli(i0) _calli(_jit,i0) static void _calli(jit_state_t*,jit_word_t); # define calli_p(i0) _calli_p(_jit,i0) @@ -855,9 +855,9 @@ static void _prolog(jit_state_t*, jit_node_t*); # define epilog(node) _epilog(_jit, node) static void _epilog(jit_state_t*, jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define patch_at(i,l) _patch_at(_jit,i,l) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif @@ -1043,9 +1043,9 @@ _FXS(jit_state_t *_jit, int o, int s, int a, int h, int x, int i, int r) * http://tenfourfox.blogspot.com/2011/04/attention-g5-owners-your-javascript-no.html */ static void -_MCRXR(jit_state_t *_jit, jit_int32_t cr) +_MCRXR(jit_state_t *_jit, int32_t cr) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); MFXER(rn(reg)); MTCRF(128, rn(reg)); @@ -1056,7 +1056,7 @@ _MCRXR(jit_state_t *_jit, jit_int32_t cr) #endif static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -1064,32 +1064,32 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) MR(r0, r1); } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { if (can_sign_extend_short_p(i0)) LI(r0, i0); else { if (can_sign_extend_int_p(i0)) - LIS(r0, (jit_int16_t)(i0 >> 16)); + LIS(r0, (int16_t)(i0 >> 16)); else if (can_zero_extend_int_p(i0)) { if (i0 & 0xffff0000) { - ORI(r0, r0, (jit_uint16_t)(i0 >> 16)); + ORI(r0, r0, (uint16_t)(i0 >> 16)); SLWI(r0, r0, 16); } } # if __WORDSIZE == 64 else { - movi(r0, (jit_uint32_t)(i0 >> 32)); + movi(r0, (uint32_t)(i0 >> 32)); if (i0 & 0xffff0000) { SLDI(r0, r0, 16); - ORI(r0, r0, (jit_uint16_t)(i0 >> 16)); + ORI(r0, r0, (uint16_t)(i0 >> 16)); SLDI(r0, r0, 16); } else @@ -1097,33 +1097,33 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } # endif if (i0 & 0xffff) - ORI(r0, r0, (jit_uint16_t)i0); + ORI(r0, r0, (uint16_t)i0); } } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t word = _jit->pc.w; # if __WORDSIZE == 32 - LIS(r0, (jit_int16_t)(i0 >> 16)); - ORI(r0, r0, (jit_uint16_t)i0); + LIS(r0, (int16_t)(i0 >> 16)); + ORI(r0, r0, (uint16_t)i0); # else - LIS(r0, (jit_int16_t)(i0 >> 48)); - ORI(r0, r0, (jit_uint16_t)(i0 >> 32)); + LIS(r0, (int16_t)(i0 >> 48)); + ORI(r0, r0, (uint16_t)(i0 >> 32)); SLDI(r0, r0, 16); - ORI(r0, r0, (jit_uint16_t)(i0 >> 16)); + ORI(r0, r0, (uint16_t)(i0 >> 16)); SLDI(r0, r0, 16); - ORI(r0, r0, (jit_uint16_t)i0); + ORI(r0, r0, (uint16_t)i0); # endif return (word); } # if __BYTE_ORDER == __LITTLE_ENDIAN static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0; + int32_t t0; t0 = jit_get_reg(jit_class_gpr); rshi(rn(t0), r1, 8); andi(r0, r1, 0xff); @@ -1134,9 +1134,9 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); ROTLWI(rn(reg), r1, 8); RLWIMI(rn(reg), r1, 24, 0, 7); @@ -1147,9 +1147,9 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ul(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); rshi_u(rn(reg), r1, 32); htonr_ui(r0, r1); @@ -1162,9 +1162,9 @@ _htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) ADDI(r0, r1, i0); else if (can_zero_extend_int_p(i0) && !(i0 & 0x0000ffff)) @@ -1178,9 +1178,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) ADDIC(r0, r1, i0); else { @@ -1192,9 +1192,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); ADDE(r0, r1, rn(reg)); @@ -1202,9 +1202,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t ni0 = -i0; if (can_sign_extend_short_p(ni0)) ADDI(r0, r1, ni0); @@ -1219,9 +1219,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); SUBC(r0, r1, rn(reg)); @@ -1229,9 +1229,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); SUBE(r0, r1, rn(reg)); @@ -1239,16 +1239,16 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) MULLI(r0, r1, i0); else { @@ -1260,10 +1260,10 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 || r0 == r3) { reg = jit_get_reg(jit_class_gpr); mullr(rn(reg), r2, r3); @@ -1281,10 +1281,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqmulr(r0, r1, r2, rn(reg), sign); @@ -1292,9 +1292,9 @@ _iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr(r0, r1, rn(reg)); @@ -1302,9 +1302,9 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); divr_u(r0, r1, rn(reg)); @@ -1312,11 +1312,11 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t sv0, rg0; - jit_int32_t sv1, rg1; + int32_t sv0, rg0; + int32_t sv1, rg1; if (r0 == r2 || r0 == r3) { sv0 = jit_get_reg(jit_class_gpr); @@ -1348,10 +1348,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqdivr(r0, r1, r2, rn(reg), sign); @@ -1359,9 +1359,9 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr(rn(reg), r1, r2); @@ -1377,9 +1377,9 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr(r0, r1, rn(reg)); @@ -1387,9 +1387,9 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr_u(rn(reg), r1, r2); @@ -1405,9 +1405,9 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr_u(r0, r1, rn(reg)); @@ -1415,9 +1415,9 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) ANDI_(r0, r1, i0); else if (can_zero_extend_int_p(i0) && !(i0 & 0x0000ffff)) @@ -1431,9 +1431,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) ORI(r0, r1, i0); else if (can_zero_extend_int_p(i0) && !(i0 & 0x0000ffff)) @@ -1447,9 +1447,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) XORI(r0, r1, i0); else if (can_zero_extend_int_p(i0) && !(i0 & 0x0000ffff)) @@ -1463,7 +1463,7 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1477,7 +1477,7 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1491,7 +1491,7 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1505,7 +1505,7 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); MFCR(r0); @@ -1513,9 +1513,9 @@ _ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else { @@ -1529,7 +1529,7 @@ _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPLW(r1, r2); MFCR(r0); @@ -1537,9 +1537,9 @@ _ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) CMPLWI(r1, i0); else { @@ -1553,7 +1553,7 @@ _lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); CRNOT(CR_GT, CR_GT); @@ -1562,9 +1562,9 @@ _ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else { @@ -1579,7 +1579,7 @@ _lei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPLW(r1, r2); CRNOT(CR_GT, CR_GT); @@ -1588,9 +1588,9 @@ _ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) CMPLWI(r1, i0); else { @@ -1605,7 +1605,7 @@ _lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); MFCR(r0); @@ -1613,9 +1613,9 @@ _eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_eqi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else if (can_zero_extend_short_p(i0)) @@ -1631,7 +1631,7 @@ _eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); CRNOT(CR_LT, CR_LT); @@ -1640,9 +1640,9 @@ _ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else { @@ -1657,7 +1657,7 @@ _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPLW(r1, r2); CRNOT(CR_LT, CR_LT); @@ -1666,9 +1666,9 @@ _ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) CMPLWI(r1, i0); else { @@ -1683,7 +1683,7 @@ _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); MFCR(r0); @@ -1691,9 +1691,9 @@ _gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else { @@ -1707,7 +1707,7 @@ _gti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPLW(r1, r2); MFCR(r0); @@ -1715,9 +1715,9 @@ _gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_short_p(i0)) CMPLWI(r1, i0); else { @@ -1731,7 +1731,7 @@ _gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMPW(r1, r2); CRNOT(CR_EQ, CR_EQ); @@ -1740,9 +1740,9 @@ _ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_short_p(i0)) CMPWI(r1, i0); else if (can_zero_extend_short_p(i0)) @@ -1759,7 +1759,7 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static jit_word_t -_bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -1770,9 +1770,9 @@ _bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -1789,7 +1789,7 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPLW(r0, r1); @@ -1800,9 +1800,9 @@ _bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_zero_extend_short_p(i1)) CMPLWI(r0, i1); @@ -1819,7 +1819,7 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -1830,9 +1830,9 @@ _bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -1849,7 +1849,7 @@ _blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPLW(r0, r1); @@ -1860,9 +1860,9 @@ _bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_zero_extend_short_p(i1)) CMPLWI(r0, i1); @@ -1879,7 +1879,7 @@ _blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -1890,9 +1890,9 @@ _beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -1911,7 +1911,7 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -1922,9 +1922,9 @@ _bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -1941,7 +1941,7 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPLW(r0, r1); @@ -1952,9 +1952,9 @@ _bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_zero_extend_short_p(i1)) CMPLWI(r0, i1); @@ -1971,7 +1971,7 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -1982,9 +1982,9 @@ _bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -2001,7 +2001,7 @@ _bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPLW(r0, r1); @@ -2012,9 +2012,9 @@ _bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_zero_extend_short_p(i1)) CMPLWI(r0, i1); @@ -2031,7 +2031,7 @@ _bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; CMPW(r0, r1); @@ -2042,9 +2042,9 @@ _bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) CMPWI(r0, i1); @@ -2063,10 +2063,10 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmsr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); andr(rn(reg), r0, r1); w = bnei(i0, rn(reg), 0); @@ -2075,10 +2075,10 @@ _bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmsi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); andi(rn(reg), r0, i1); w = bnei(i0, rn(reg), 0); @@ -2087,10 +2087,10 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmcr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); andr(rn(reg), r0, r1); w = beqi(i0, rn(reg), 0); @@ -2099,10 +2099,10 @@ _bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmci(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); andi(rn(reg), r0, i1); w = beqi(i0, rn(reg), 0); @@ -2111,7 +2111,7 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; ADDO(r0, r0, r1); @@ -2123,10 +2123,10 @@ _boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = boaddr(i0, r0, rn(reg)); @@ -2135,7 +2135,7 @@ _boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; ADDO(r0, r0, r1); @@ -2147,10 +2147,10 @@ _bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bxaddr(i0, r0, rn(reg)); @@ -2159,7 +2159,7 @@ _bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; SUBO(r0, r0, r1); @@ -2171,10 +2171,10 @@ _bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bosubr(i0, r0, rn(reg)); @@ -2183,7 +2183,7 @@ _bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; SUBO(r0, r0, r1); @@ -2195,10 +2195,10 @@ _bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bxsubr(i0, r0, rn(reg)); @@ -2207,7 +2207,7 @@ _bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; ADDC(r0, r0, r1); @@ -2219,9 +2219,9 @@ _boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) { ADDIC(r0, r0, i1); @@ -2239,7 +2239,7 @@ _boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; ADDC(r0, r0, r1); @@ -2251,9 +2251,9 @@ _bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; jit_word_t d, w; if (can_sign_extend_short_p(i1)) { ADDIC(r0, r0, i1); @@ -2271,7 +2271,7 @@ _bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; SUBC(r0, r0, r1); @@ -2283,10 +2283,10 @@ _bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bosubr_u(i0, r0, rn(reg)); @@ -2295,7 +2295,7 @@ _bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; SUBC(r0, r0, r1); @@ -2307,10 +2307,10 @@ _bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bxsubr_u(i0, r0, rn(reg)); @@ -2319,44 +2319,44 @@ _bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ldr_uc(r0, r1); extr_c(r0, r0); } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { ldi_uc(r0, i0); extr_c(r0, r0); } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { ldxr_uc(r0, r1, r2); extr_c(r0, r0); } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_uc(r0, r1, i0); extr_c(r0, r0); } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LBZ(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2373,9 +2373,9 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LBZX(r0, r2, r1); @@ -2391,9 +2391,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_uc(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2415,16 +2415,16 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LHA(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2441,9 +2441,9 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LHAX(r0, r2, r1); @@ -2459,9 +2459,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_s(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2483,16 +2483,16 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LHZ(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2509,9 +2509,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LHZX(r0, r2, r1); @@ -2527,9 +2527,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_us(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2552,16 +2552,16 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 32 static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LWZ(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2578,9 +2578,9 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LWZX(r0, r2, r1); @@ -2596,9 +2596,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_i(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2621,16 +2621,16 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # else static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LWA(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2647,9 +2647,9 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LWZX(r0, r2, r1); @@ -2665,9 +2665,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_i(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2689,16 +2689,16 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LWZ(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2715,9 +2715,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LWZX(r0, r2, r1); @@ -2733,9 +2733,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_i(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2757,16 +2757,16 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LD(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2783,9 +2783,9 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LDX(r0, r2, r1); @@ -2801,9 +2801,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_l(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2826,16 +2826,16 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # endif static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STB(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2852,9 +2852,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STBX(r2, r1, r0); @@ -2870,9 +2870,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_c(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2894,16 +2894,16 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STH(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2920,9 +2920,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STHX(r2, r1, r0); @@ -2938,9 +2938,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_s(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -2962,16 +2962,16 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STW(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -2988,9 +2988,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STWX(r2, r1, r0); @@ -3006,9 +3006,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_i(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -3031,16 +3031,16 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STD(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -3057,9 +3057,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STDX(r2, r1, r0); @@ -3075,9 +3075,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_l(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -3100,7 +3100,7 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # endif static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { #if 0 MTLR(r0); @@ -3115,7 +3115,7 @@ _jmpr(jit_state_t *_jit, jit_int32_t r0) static jit_word_t _jmpi(jit_state_t *_jit, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_word_t w, d; w = _jit->pc.w; d = (i0 - w) & ~3; @@ -3135,7 +3135,7 @@ static jit_word_t _jmpi_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); w = movi_p(rn(reg), i0); jmpr(rn(reg)); @@ -3144,7 +3144,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { # if __powerpc__ # if ABI_ELFv2 @@ -3180,7 +3180,7 @@ _calli(jit_state_t *_jit, jit_word_t i0) # if __ppc__ jit_word_t d; # endif - jit_int32_t reg; + int32_t reg; # if __ppc__ d = (i0 - _jit->pc.w) & ~3; if (can_sign_extend_jump_p(d)) @@ -3200,7 +3200,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); w = movi_p(rn(reg), i0); callr(rn(reg)); @@ -3210,7 +3210,7 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) # if __powerpc__ /* order is not guaranteed to be sequential */ -static jit_int32_t save[] = { +static int32_t save[] = { _R14, _R15, _R16, _R17, _R18, _R19, _R20, _R21, _R22, _R23, _R24, _R25, _R26, _R27, _R28, _R29, _R30, _R31, }; @@ -3223,7 +3223,7 @@ _prolog(jit_state_t *_jit, jit_node_t *node) jit_word_t offset; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -3340,7 +3340,7 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { assert(_jitc->function->self.call & jit_call_varargs); @@ -3349,7 +3349,7 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); @@ -3365,7 +3365,7 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_word_t d; union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; u.w = instr; diff --git a/jit/ppc-fpu.c b/jit/ppc-fpu.c index 8db839a1f..fa8a58c89 100644 --- a/jit/ppc-fpu.c +++ b/jit/ppc-fpu.c @@ -117,25 +117,25 @@ static void _FXFL(jit_state_t*,int,int,int,int,int) maybe_unused; # define STFSX(s,a,b) FX(31,s,a,b,663) # define movr_f(r0,r1) movr_d(r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1) -static void _movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d(jit_state_t*,int32_t,jit_int32_t); # define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); # define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); # define extr_f(r0,r1) extr_d(r0,r1) # define extr_d(r0,r1) _extr_d(_jit,r0,r1) -static void _extr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_d(jit_state_t*,int32_t,jit_int32_t); # define truncr_f(r0,r1) truncr_d(r0,r1) # define truncr_f_i(r0,r1) truncr_d_i(r0,r1) # define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) -static void _truncr_d_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 32 # define truncr_d(r0,r1) truncr_d_i(r0,r1) # else # define truncr_d(r0,r1) truncr_d_l(r0,r1) # define truncr_f_l(r0,r1) truncr_d_l(r0,r1) # define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) -static void _truncr_d_l(jit_state_t*,jit_int32_t,jit_int32_t); +static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); # endif # define extr_d_f(r0,r1) FRSP(r0,r1) # define extr_f_d(r0,r1) movr_d(r0,r1) @@ -148,259 +148,259 @@ static void _truncr_d_l(jit_state_t*,jit_int32_t,jit_int32_t); # define addr_f(r0,r1,r2) FADDS(r0,r1,r2) # define addr_d(r0,r1,r2) FADD(r0,r1,r2) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) -static void _addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) -static void _addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define subr_f(r0,r1,r2) FSUBS(r0,r1,r2) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) -static void _subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define subr_d(r0,r1,r2) FSUB(r0,r1,r2) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) -static void _subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) # define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) -static void _rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) # define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) -static void _rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define mulr_f(r0,r1,r2) FMULS(r0,r1,r2) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) -static void _muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define mulr_d(r0,r1,r2) FMUL(r0,r1,r2) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) -static void _muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define divr_f(r0,r1,r2) FDIVS(r0,r1,r2) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) -static void _divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define divr_d(r0,r1,r2) FDIV(r0,r1,r2) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) -static void _divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) # define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) -static void _ltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) -static void _lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) -static void _lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ler_f(r0,r1,r2) ler_d(r0,r1,r2) # define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) -static void _ler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) -static void _lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) -static void _lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) # define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) -static void _eqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) -static void _eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) -static void _eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ger_f(r0,r1,r2) ger_d(r0,r1,r2) # define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) -static void _ger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) -static void _gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) -static void _gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) # define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) -static void _gtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) -static void _gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) -static void _gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ner_f(r0,r1,r2) ner_d(r0,r1,r2) # define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) -static void _ner_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) -static void _nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) -static void _nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) # define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) -static void _unltr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) -static void _unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) -static void _unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unler_f(r0,r1,r2) unler_d(r0,r1,r2) # define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) -static void _unler_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) -static void _unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) -static void _unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) -static void _uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) -static void _uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unger_f(r0,r1,r2) unger_d(r0,r1,r2) # define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) -static void _unger_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) -static void _ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) -static void _ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) # define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) -static void _ungtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) -static void _ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) -static void _ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) -static void _ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) -static void _ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) # define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) -static void _ordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) -static void _ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) -static void _ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) # define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) -static void _unordr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) -static void _unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) -static void _unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) # define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) -static jit_word_t _bltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) -static jit_word_t _blti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) -static jit_word_t _blti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bler_f(i0,r0,r1) bler_d(i0,r0,r1) # define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) -static jit_word_t _bler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) -static jit_word_t _blei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) -static jit_word_t _blei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) # define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) -static jit_word_t _beqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) -static jit_word_t _beqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) -static jit_word_t _beqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bger_f(i0,r0,r1) bger_d(i0,r0,r1) # define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) -static jit_word_t _bger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) -static jit_word_t _bgei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) -static jit_word_t _bgei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) # define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) -static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) -static jit_word_t _bgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) -static jit_word_t _bgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bner_f(i0,r0,r1) bner_d(i0,r0,r1) # define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) -static jit_word_t _bner_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) -static jit_word_t _bnei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) -static jit_word_t _bnei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) # define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) -static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) -static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) -static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) # define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) -static jit_word_t _bunler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) -static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) -static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) -static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) -static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) -static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) # define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) -static jit_word_t _bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) -static jit_word_t _bungei_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) -static jit_word_t _bungei_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) # define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) -static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) -static jit_word_t _bungti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) -static jit_word_t _bungti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) -static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) -static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) -static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) # define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) -static jit_word_t _bordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) -static jit_word_t _bordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) -static jit_word_t _bordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) # define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) -static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) -static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); # define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) -static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); # define ldr_f(r0,r1) LFSX(r0, _R0_REGNO, r1) # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_f(r0,r1) STFSX(r1, _R0_REGNO, r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define ldr_d(r0,r1) LFDX(r0, _R0_REGNO, r1) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_d(r0,r1) STFDX(r1, _R0_REGNO, r0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE @@ -430,20 +430,20 @@ _FXFL(jit_state_t *_jit, int o, int m, int b, int x, int r) } static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) FMR(r0,r1); } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.f = *i0; @@ -458,14 +458,14 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { - jit_int32_t i[2]; + int32_t i[2]; jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.d = *i0; @@ -488,10 +488,10 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) /* should only work on newer ppc (fcfid is a ppc64 instruction) */ static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); rshi(rn(reg), r1, 31); /* use reserved 8 bytes area */ @@ -506,9 +506,9 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); FCTIWZ(rn(reg), r1); /* use reserved 8 bytes area */ @@ -519,9 +519,9 @@ _truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); FCTIDZ(rn(reg), r1); /* use reserved 8 bytes area */ @@ -534,10 +534,10 @@ _truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # define fpr_opi(name, type, size) \ static void \ _##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ movi_##type(rn(reg), i0); \ name##r_##type(r0, r1, rn(reg)); \ jit_unget_reg(reg); \ @@ -545,11 +545,11 @@ _##name##i_##type(jit_state_t *_jit, \ # define fpr_bopi(name, type, size) \ static jit_word_t \ _b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ movi_##type(rn(reg), i1); \ word = b##name##r_##type(i0, r0, rn(reg)); \ @@ -573,7 +573,7 @@ fopi(div) dopi(div) static void -_ltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); MFCR(r0); @@ -583,7 +583,7 @@ fopi(lt) dopi(lt) static void -_ler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); CREQV(CR_GT, CR_GT, CR_UN); @@ -594,7 +594,7 @@ fopi(le) dopi(le) static void -_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); MFCR(r0); @@ -604,7 +604,7 @@ fopi(eq) dopi(eq) static void -_ger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); CREQV(CR_LT, CR_LT, CR_UN); @@ -615,7 +615,7 @@ fopi(ge) dopi(ge) static void -_gtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); MFCR(r0); @@ -625,7 +625,7 @@ fopi(gt) dopi(gt) static void -_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPO(CR_0, r1, r2); CRNOT(CR_EQ, CR_EQ); @@ -636,7 +636,7 @@ fopi(ne) dopi(ne) static void -_unltr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CROR(CR_LT, CR_LT, CR_UN); @@ -647,7 +647,7 @@ fopi(unlt) dopi(unlt) static void -_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CRNOT(CR_GT, CR_GT); @@ -658,7 +658,7 @@ fopi(unle) dopi(unle) static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CROR(CR_EQ, CR_EQ, CR_UN); @@ -669,7 +669,7 @@ fopi(uneq) dopi(uneq) static void -_unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CRNOT(CR_LT, CR_LT); @@ -680,7 +680,7 @@ fopi(unge) dopi(unge) static void -_ungtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CROR(CR_GT, CR_GT, CR_UN); @@ -691,7 +691,7 @@ fopi(ungt) dopi(ungt) static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CROR(CR_GT, CR_GT, CR_LT); @@ -702,7 +702,7 @@ fopi(ltgt) dopi(ltgt) static void -_ordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); CRNOT(CR_UN, CR_UN); @@ -713,7 +713,7 @@ fopi(ord) dopi(ord) static void -_unordr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPU(CR_0, r1, r2); MFCR(r0); @@ -723,7 +723,7 @@ fopi(unord) dopi(unord) static jit_word_t -_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -736,7 +736,7 @@ fbopi(lt) dbopi(lt) static jit_word_t -_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -750,7 +750,7 @@ fbopi(le) dbopi(le) static jit_word_t -_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -763,7 +763,7 @@ fbopi(eq) dbopi(eq) static jit_word_t -_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -777,7 +777,7 @@ fbopi(ge) dbopi(ge) static jit_word_t -_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -790,7 +790,7 @@ fbopi(gt) dbopi(gt) static jit_word_t -_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPO(CR_0, r0, r1); @@ -803,7 +803,7 @@ fbopi(ne) dbopi(ne) static jit_word_t -_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -817,7 +817,7 @@ fbopi(unlt) dbopi(unlt) static jit_word_t -_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -830,7 +830,7 @@ fbopi(unle) dbopi(unle) static jit_word_t -_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -844,7 +844,7 @@ fbopi(uneq) dbopi(uneq) static jit_word_t -_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -857,7 +857,7 @@ fbopi(unge) dbopi(unge) static jit_word_t -_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -871,7 +871,7 @@ fbopi(ungt) dbopi(ungt) static jit_word_t -_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -885,7 +885,7 @@ fbopi(ltgt) dbopi(ltgt) static jit_word_t -_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -898,7 +898,7 @@ fbopi(ord) dbopi(ord) static jit_word_t -_bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; FCMPU(CR_0, r0, r1); @@ -911,16 +911,16 @@ fbopi(unord) dbopi(unord) static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LFS(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -937,16 +937,16 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) LFD(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -963,9 +963,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LFSX(r0, r2, r1); @@ -981,9 +981,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r1 == _R0_REGNO) { if (r2 != _R0_REGNO) LFDX(r0, r2, r1); @@ -999,9 +999,9 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_f(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -1023,9 +1023,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ldr_d(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -1047,16 +1047,16 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STFS(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -1073,16 +1073,16 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { jit_bool_t inv; - jit_int32_t reg; + int32_t reg; jit_word_t lo, hi; if (can_sign_extend_short_p(i0)) STFD(r0, _R0_REGNO, i0); else if (can_sign_extend_int_p(i0)) { - hi = (jit_int16_t)((i0 >> 16) + ((jit_uint16_t)i0 >> 15)); - lo = (jit_int16_t)(i0 - (hi << 16)); + hi = (int16_t)((i0 >> 16) + ((uint16_t)i0 >> 15)); + lo = (int16_t)(i0 - (hi << 16)); reg = jit_get_reg(jit_class_gpr); if ((inv = reg == _R0)) reg = jit_get_reg(jit_class_gpr); LIS(rn(reg), hi); @@ -1099,9 +1099,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STFSX(r2, r1, r0); @@ -1117,9 +1117,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == _R0_REGNO) { if (r1 != _R0_REGNO) STFDX(r2, r1, r0); @@ -1135,9 +1135,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_f(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -1159,9 +1159,9 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) str_d(r0, r1); else if (can_sign_extend_short_p(i0)) { @@ -1183,7 +1183,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { /* Load argument. */ ldr_d(r0, r1); diff --git a/jit/ppc.c b/jit/ppc.c index c43b074d4..2a2ccee11 100644 --- a/jit/ppc.c +++ b/jit/ppc.c @@ -25,9 +25,9 @@ # define I_DISP 0 # define F_DISP 0 #else -# define C_DISP (__WORDSIZE >> 3) - sizeof(jit_int8_t) -# define S_DISP (__WORDSIZE >> 3) - sizeof(jit_int16_t) -# define I_DISP (__WORDSIZE >> 3) - sizeof(jit_int32_t) +# define C_DISP (__WORDSIZE >> 3) - sizeof(int8_t) +# define S_DISP (__WORDSIZE >> 3) - sizeof(int16_t) +# define I_DISP (__WORDSIZE >> 3) - sizeof(int32_t) # define F_DISP (__WORDSIZE >> 3) - sizeof(jit_float32_t) #endif @@ -145,7 +145,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -166,7 +166,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = alloca_offset - 8; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -185,8 +185,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -204,13 +204,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t r0, r1; + int32_t r0, r1; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } r0 = jit_get_reg(jit_class_gpr); @@ -241,7 +241,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -261,7 +261,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (JIT_RET != u) @@ -282,7 +282,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (JIT_FRET != u) @@ -341,7 +341,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -352,7 +352,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -369,7 +369,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_f_reg_p(_jitc->function->self.argf)) offset = _jitc->function->self.argf++; @@ -393,7 +393,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_f_reg_p(_jitc->function->self.argf)) offset = _jitc->function->self.argf++; @@ -414,7 +414,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -426,7 +426,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -438,7 +438,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -450,7 +450,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -462,7 +462,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -480,7 +480,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #if __WORDSIZE == 64 void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -492,7 +492,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -505,7 +505,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #endif void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -519,7 +519,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; jit_inc_synth_wp(putargi, u, v); assert(v->code == jit_code_arg); if (jit_arg_reg_p(v->u.w)) @@ -534,7 +534,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -546,7 +546,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -560,7 +560,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -575,7 +575,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -587,7 +587,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -601,7 +601,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -616,7 +616,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -634,7 +634,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -653,7 +653,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -699,7 +699,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -745,7 +745,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -796,7 +796,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -852,9 +852,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { if (spec & jit_class_gpr) { @@ -872,7 +872,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -905,7 +905,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_c); jit_extr_c(r0, JIT_RET); @@ -913,7 +913,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_uc); jit_extr_uc(r0, JIT_RET); @@ -921,7 +921,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_s); jit_extr_s(r0, JIT_RET); @@ -929,7 +929,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_us); jit_extr_us(r0, JIT_RET); @@ -937,7 +937,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_i); #if __WORDSIZE == 32 @@ -951,7 +951,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) #if __WORDSIZE == 64 void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_ui); jit_extr_ui(r0, JIT_RET); @@ -959,7 +959,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_l); if (r0 != JIT_RET) @@ -969,7 +969,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) #endif void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_f); jit_retval_d(r0); @@ -977,7 +977,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth(retval_d); if (r0 != JIT_FRET) @@ -991,8 +991,8 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; @@ -1691,7 +1691,7 @@ jit_flush(void *fptr, void *tptr) } void -_emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { #if __WORDSIZE == 32 ldxi_i(rn(r0), rn(r1), i0); @@ -1701,7 +1701,7 @@ _emit_ldxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } void -_emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { #if __WORDSIZE == 32 stxi_i(i0, rn(r0), rn(r1)); @@ -1711,13 +1711,13 @@ _emit_stxi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } void -_emit_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { ldxi_d(rn(r0), rn(r1), i0); } void -_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { stxi_d(i0, rn(r0), rn(r1)); } @@ -1725,7 +1725,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/private.h b/jit/private.h index f06f1c8a1..c52767b90 100644 --- a/jit/private.h +++ b/jit/private.h @@ -55,7 +55,7 @@ # define JIT_RET _RAX # if __X32 # define JIT_FRET _ST0 -typedef jit_uint32_t jit_regset_t; +typedef uint32_t jit_regset_t; # else # if __CYGWIN__ # define JIT_RA0 _RCX @@ -64,7 +64,7 @@ typedef jit_uint32_t jit_regset_t; # endif # define JIT_FA0 _XMM0 # define JIT_FRET _XMM0 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; # endif #elif defined(__mips__) # define JIT_RA0 _A0 @@ -72,7 +72,7 @@ typedef jit_uint64_t jit_regset_t; # define JIT_SP _SP # define JIT_RET _V0 # define JIT_FRET _F0 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #elif defined(__arm__) # define JIT_RA0 _R0 # define JIT_FA0 _D0 @@ -83,24 +83,24 @@ typedef jit_uint64_t jit_regset_t; # else # define JIT_FRET _R0 # endif -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #elif defined(__ppc__) || defined(__powerpc__) # define JIT_RA0 _R3 # define JIT_FA0 _F1 # define JIT_SP _R1 # define JIT_RET _R3 # define JIT_FRET _F1 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #elif defined(__sparc__) # define JIT_SP _SP # define JIT_RET _I0 # define JIT_FRET _F0 # if __WORDSIZE == 32 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; # else typedef struct { - jit_uint64_t rl; - jit_uint64_t rh; + uint64_t rl; + uint64_t rh; } jit_regset_t; # endif #elif defined(__ia64__) @@ -108,38 +108,38 @@ typedef struct { # define JIT_RET _R8 # define JIT_FRET _F8 typedef struct { - jit_uint64_t rl; - jit_uint64_t rh; - jit_uint64_t fl; - jit_uint64_t fh; + uint64_t rl; + uint64_t rh; + uint64_t fl; + uint64_t fh; } jit_regset_t; #elif defined(__hppa__) # define JIT_SP _R30 # define JIT_RET _R28 # define JIT_FRET _F4 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #elif defined(__aarch64__) # define JIT_RA0 _R0 # define JIT_FA0 _V0 # define JIT_SP _SP # define JIT_RET _R0 # define JIT_FRET _V0 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #elif defined(__s390__) || defined(__s390x__) # define JIT_SP _R15 # define JIT_RET _R2 # define JIT_FRET _F0 -typedef jit_uint32_t jit_regset_t; +typedef uint32_t jit_regset_t; #elif defined(__alpha__) # define JIT_SP _SP # define JIT_RET _V0 # define JIT_FRET _F0 -typedef jit_uint64_t jit_regset_t; +typedef uint64_t jit_regset_t; #endif #define jit_data(u,v,w) _jit_data(_jit,u,v,w) extern jit_node_t *_jit_data(jit_state_t*, const void*, - jit_word_t, jit_int32_t); + jit_word_t, int32_t); #define jit_size(vector) (sizeof(vector) / sizeof((vector)[0])) @@ -278,7 +278,7 @@ extern void jit_regset_set(jit_regset_t*, jit_regset_t*); extern void -jit_regset_set_mask(jit_regset_t*, jit_int32_t); +jit_regset_set_mask(jit_regset_t*, int32_t); extern jit_bool_t jit_regset_cmp_ui(jit_regset_t*, jit_word_t); @@ -290,13 +290,13 @@ extern jit_bool_t jit_regset_set_p(jit_regset_t*); extern void -jit_regset_clrbit(jit_regset_t*, jit_int32_t); +jit_regset_clrbit(jit_regset_t*, int32_t); extern void -jit_regset_setbit(jit_regset_t*, jit_int32_t); +jit_regset_setbit(jit_regset_t*, int32_t); extern jit_bool_t -jit_regset_tstbit(jit_regset_t*, jit_int32_t); +jit_regset_tstbit(jit_regset_t*, int32_t); # if __sparc__ && __WORDSIZE == 64 # define jit_regset_new(set) \ do { (set)->rl = (set)->rh = 0; } while (0) @@ -325,7 +325,7 @@ jit_regset_tstbit(jit_regset_t*, jit_int32_t); # define jit_regset_del(set) (*(set) = 0) #endif extern unsigned long -jit_regset_scan1(jit_regset_t*, jit_int32_t); +jit_regset_scan1(jit_regset_t*, int32_t); #define jit_reglive_setup() \ do { \ @@ -353,11 +353,11 @@ typedef struct jit_data_info jit_data_info_t; union jit_data { struct { #if __BYTE_ORDER == __LITTLE_ENDIAN - jit_int32_t l; - jit_int32_t h; + int32_t l; + int32_t h; #else - jit_int32_t h; - jit_int32_t l; + int32_t h; + int32_t l; #endif } q; jit_word_t w; @@ -368,7 +368,7 @@ union jit_data { }; struct jit_note { - jit_uint8_t *code; + uint8_t *code; char *name; jit_line_t *lines; jit_word_t length; @@ -377,16 +377,16 @@ struct jit_note { struct jit_line { char *file; - jit_int32_t *linenos; - jit_int32_t *offsets; + int32_t *linenos; + int32_t *offsets; jit_word_t length; }; struct jit_node { jit_node_t *next; jit_code_t code; - jit_uint16_t flag; - jit_uint16_t offset; /* Used if DEVEL_DISASSEMBLER */ + uint16_t flag; + uint16_t offset; /* Used if DEVEL_DISASSEMBLER */ jit_data_t u; jit_data_t v; jit_data_t w; @@ -401,7 +401,7 @@ struct jit_block { }; struct jit_value { - jit_int32_t kind; + int32_t kind; jit_code_t code; jit_data_t base; jit_data_t disp; @@ -424,76 +424,76 @@ struct jit_data_info { struct jit_function { struct { - jit_int32_t argi; - jit_int32_t argf; - jit_int32_t size; - jit_int32_t aoff; - jit_int32_t alen; - jit_int32_t call; - jit_int32_t argn; /* for debug output */ + int32_t argi; + int32_t argf; + int32_t size; + int32_t aoff; + int32_t alen; + int32_t call; + int32_t argn; /* for debug output */ } self; struct { - jit_int32_t argi; - jit_int32_t argf; - jit_int32_t size; - jit_int32_t call; + int32_t argi; + int32_t argf; + int32_t size; + int32_t call; } call; jit_node_t *prolog; jit_node_t *epilog; - jit_int32_t *regoff; + int32_t *regoff; jit_regset_t regset; - jit_int32_t stack; + int32_t stack; /* Helper for common jit generation pattern, used in GNU Smalltalk * and possibly others, where a static frame layout is required or * assumed. */ - jit_int32_t frame; - jit_uint32_t define_frame : 1; - jit_uint32_t assume_frame : 1; + int32_t frame; + uint32_t define_frame : 1; + uint32_t assume_frame : 1; /* alloca offset offset */ - jit_int32_t aoffoff; + int32_t aoffoff; /* uses allocar flag */ - jit_uint32_t allocar : 1; + uint32_t allocar : 1; /* varargs state offsets */ - jit_int32_t vaoff; /* offset of jit_va_list */ - jit_int32_t vagp; /* first gp va argument */ - jit_int32_t vafp; /* first fp va argument */ + int32_t vaoff; /* offset of jit_va_list */ + int32_t vagp; /* first gp va argument */ + int32_t vafp; /* first fp va argument */ }; /* data used only during jit generation */ struct jit_compiler { #if __ia64__ struct { - jit_uint64_t i : 41; - jit_uint64_t t : 4; + uint64_t i : 41; + uint64_t t : 4; } inst[3]; jit_regset_t regs; /* changed regs since last stop */ - jit_int32_t pred; /* changed preds last stop */ - jit_int32_t ioff; /* offset in inst vector */ - jit_int32_t rout; /* first output register */ - jit_int32_t breg; /* base register for prolog/epilog */ + int32_t pred; /* changed preds last stop */ + int32_t ioff; /* offset in inst vector */ + int32_t rout; /* first output register */ + int32_t breg; /* base register for prolog/epilog */ #endif #if __mips__ || __ia64__ || __alpha__ || (__sparc__ && __WORDSIZE == 64) - jit_int32_t carry; + int32_t carry; #define jit_carry _jitc->carry #endif jit_node_t *head; jit_node_t *tail; jit_node_t *prepare; /* inside prepare/finish* block */ - jit_uint32_t realize : 1; /* jit_realize() called? */ - jit_uint32_t dataset : 1; /* jit_dataset() called? */ - jit_uint32_t done : 1; /* emit state finished */ - jit_uint32_t emit : 1; /* emit state entered */ - jit_uint32_t again : 1; /* start over emiting function */ - jit_uint32_t synth : 8; /* emiting synthesized instructions */ + uint32_t realize : 1; /* jit_realize() called? */ + uint32_t dataset : 1; /* jit_dataset() called? */ + uint32_t done : 1; /* emit state finished */ + uint32_t emit : 1; /* emit state entered */ + uint32_t again : 1; /* start over emiting function */ + uint32_t synth : 8; /* emiting synthesized instructions */ #if DEBUG - jit_uint32_t getreg : 1; + uint32_t getreg : 1; #endif - jit_uint32_t no_data : 1; - jit_uint32_t no_note : 1; - jit_int32_t reglen; /* number of registers */ + uint32_t no_data : 1; + uint32_t no_note : 1; + int32_t reglen; /* number of registers */ jit_regset_t regarg; /* cannot allocate */ jit_regset_t regsav; /* automatic spill only once */ jit_regset_t reglive; /* known live registers at some point */ @@ -503,17 +503,17 @@ struct jit_compiler { jit_word_t length; } blockmask; /* mask of visited basic blocks */ struct { - jit_uint8_t *end; + uint8_t *end; } code; struct { - jit_uint8_t *ptr; + uint8_t *ptr; jit_node_t **table; /* very simple hash table */ jit_word_t size; /* number of vectors in table */ jit_word_t count; /* number of hash table entries */ jit_word_t offset; /* offset in bytes in ptr */ } data; jit_node_t **spill; - jit_int32_t *gen; /* ssa like "register version" */ + int32_t *gen; /* ssa like "register version" */ jit_value_t *values; /* temporary jit_value_t vector */ struct { jit_block_t *ptr; @@ -544,11 +544,11 @@ struct jit_compiler { jit_word_t size; jit_node_t *name; jit_node_t *note; - jit_uint8_t *base; + uint8_t *base; } note; #if __arm__ /* prevent using thumb instructions that set flags? */ - jit_uint32_t no_set_flags : 1; + uint32_t no_set_flags : 1; # if DISASSEMBLER struct { jit_data_info_t *ptr; @@ -565,11 +565,11 @@ struct jit_compiler { * test cases start with a "jmpi main" call. */ jit_uword_t thumb; struct { - jit_uint8_t *data; /* pointer to code */ + uint8_t *data; /* pointer to code */ jit_word_t size; /* size data */ jit_word_t offset; /* pending patches */ jit_word_t length; /* number of pending constants */ - jit_int32_t values[1024]; /* pending constants */ + int32_t values[1024]; /* pending constants */ jit_word_t patches[2048]; } consts; #elif __powerpc__ || __ia64__ @@ -589,25 +589,25 @@ struct jit_compiler { /* Global flag for code buffer heuristic size computation */ jit_word_t mult; /* Pointer to code to prevent miscalculation if reallocating buffer */ - jit_uint8_t *cptr; + uint8_t *cptr; #endif }; #define _jitc _jit->comp struct jit_state { union { - jit_uint8_t *uc; - jit_uint16_t *us; - jit_uint32_t *ui; - jit_uint64_t *ul; + uint8_t *uc; + uint16_t *us; + uint32_t *ui; + uint64_t *ul; jit_word_t w; } pc; struct { - jit_uint8_t *ptr; + uint8_t *ptr; jit_word_t length; } code; struct { - jit_uint8_t *ptr; + uint8_t *ptr; jit_word_t length; } data; struct { @@ -616,8 +616,8 @@ struct jit_state { } note; jit_compiler_t *comp; /* Flags to know if user did set the code and data buffers */ - jit_uint32_t user_code : 1; - jit_uint32_t user_data : 1; + uint32_t user_code : 1; + uint32_t user_data : 1; }; struct jit_register { @@ -655,42 +655,42 @@ _jit_reglive(jit_state_t*, jit_node_t*); #define jit_regarg_set(n,v) _jit_regarg_set(_jit,n,v) extern void -_jit_regarg_set(jit_state_t*, jit_node_t*, jit_int32_t); +_jit_regarg_set(jit_state_t*, jit_node_t*, int32_t); #define jit_regarg_clr(n,v) _jit_regarg_clr(_jit,n,v) extern void -_jit_regarg_clr(jit_state_t*, jit_node_t*, jit_int32_t); +_jit_regarg_clr(jit_state_t*, jit_node_t*, int32_t); #define jit_get_reg(s) _jit_get_reg(_jit,s) -extern jit_int32_t -_jit_get_reg(jit_state_t*, jit_int32_t); +extern int32_t +_jit_get_reg(jit_state_t*, int32_t); #define jit_unget_reg(r) _jit_unget_reg(_jit,r) extern void -_jit_unget_reg(jit_state_t*, jit_int32_t); +_jit_unget_reg(jit_state_t*, int32_t); #define jit_save(reg) _jit_save(_jit, reg) extern void -_jit_save(jit_state_t*, jit_int32_t); +_jit_save(jit_state_t*, int32_t); #define jit_load(reg) _jit_load(_jit, reg) extern void -_jit_load(jit_state_t*, jit_int32_t); +_jit_load(jit_state_t*, int32_t); #define jit_trampoline(u,v) _jit_trampoline(_jit, u, v) -extern void _jit_trampoline(jit_state_t*, jit_int32_t, jit_bool_t); +extern void _jit_trampoline(jit_state_t*, int32_t, jit_bool_t); #define jit_optimize() _jit_optimize(_jit) extern void _jit_optimize(jit_state_t*); #define jit_classify(code) _jit_classify(_jit, code) -extern jit_int32_t +extern int32_t _jit_classify(jit_state_t*, jit_code_t); #define jit_regarg_p(n, r) _jit_regarg_p(_jit, n, r) extern jit_bool_t -_jit_regarg_p(jit_state_t*, jit_node_t*, jit_int32_t); +_jit_regarg_p(jit_state_t*, jit_node_t*, int32_t); #define emit_code() _emit_code(_jit) extern jit_pointer_t @@ -701,19 +701,19 @@ jit_flush(void *fptr, void *tptr); #define emit_ldxi(r0, r1, i0) _emit_ldxi(_jit, r0, r1, i0) extern void -_emit_ldxi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +_emit_ldxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); #define emit_stxi(i0, r0, r1) _emit_stxi(_jit, i0, r0, r1) extern void -_emit_stxi(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +_emit_stxi(jit_state_t*, jit_word_t, int32_t, jit_int32_t); #define emit_ldxi_d(r0, r1, i0) _emit_ldxi_d(_jit, r0, r1, i0) extern void -_emit_ldxi_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +_emit_ldxi_d(jit_state_t*, int32_t, jit_int32_t, jit_word_t); #define emit_stxi_d(i0, r0, r1) _emit_stxi_d(_jit, i0, r0, r1) extern void -_emit_stxi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +_emit_stxi_d(jit_state_t*, jit_word_t, int32_t, jit_int32_t); extern void jit_init_debug(const char*); extern void jit_finish_debug(void); @@ -721,7 +721,7 @@ extern void jit_finish_debug(void); extern void jit_init_note(void); extern void jit_finish_note(void); #define jit_set_note(n,u,v,w) _jit_set_note(_jit, n, u, v, w) -extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, int, jit_int32_t); +extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, int, int32_t); #define jit_annotate() _jit_annotate(_jit) extern void _jit_annotate(jit_state_t*); diff --git a/jit/s390-cpu.c b/jit/s390-cpu.c index 824a2c6e3..b82ce7378 100644 --- a/jit/s390-cpu.c +++ b/jit/s390-cpu.c @@ -114,8 +114,8 @@ SLGR: # define CC_NH 0xD # define CC_NO 0xE # define CC_AL 0xF -# define _us jit_uint16_t -# define _ui jit_uint32_t +# define _us uint16_t +# define _ui uint32_t # define E_(Op) _E(_jit,Op) static void _E(jit_state_t*,_ui); # define I_(Op,I) _I(_jit,Op,I) @@ -160,7 +160,7 @@ static void _SSE(jit_state_t*,_ui,_ui,_ui,_ui,_ui); # undef _us # undef _ui # define nop(c) _nop(_jit,c) -static void _nop(jit_state_t*,jit_int32_t); +static void _nop(jit_state_t*,int32_t); # if __WORDSIZE == 32 # define ADD_(r0,r1) AR(r0,r1) # define ADDI_(r0,i0) AHI(r0,i0) @@ -881,204 +881,204 @@ static void _nop(jit_state_t*,jit_int32_t); /* TEST SUBCHANNEL */ # define TSCH(D2,B2) S_(0xB235,B2,D2) # define xdivr(r0,r1) _xdivr(_jit,r0,r1) -static jit_int32_t _xdivr(jit_state_t*,jit_int32_t,jit_int32_t); +static int32_t _xdivr(jit_state_t*,jit_int32_t,jit_int32_t); # define xdivr_u(r0,r1) _xdivr_u(_jit,r0,r1) -static jit_int32_t _xdivr_u(jit_state_t*,jit_int32_t,jit_int32_t); +static int32_t _xdivr_u(jit_state_t*,jit_int32_t,jit_int32_t); # define xdivi(r0,i0) _xdivi(_jit,r0,i0) -static jit_int32_t _xdivi(jit_state_t*,jit_int32_t,jit_word_t); +static int32_t _xdivi(jit_state_t*,jit_int32_t,jit_word_t); # define xdivi_u(r0,i0) _xdivi_u(_jit,r0,i0) -static jit_int32_t _xdivi_u(jit_state_t*,jit_int32_t,jit_word_t); +static int32_t _xdivi_u(jit_state_t*,jit_int32_t,jit_word_t); # define crr(cc,r0,r1,r2) _crr(_jit,cc,r0,r1,r2) static void _crr(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define cri(cc,r0,r1,i0) _cri(_jit,cc,r0,r1,i0) static void _cri(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define crr_u(cc,r0,r1,r2) _crr_u(_jit,cc,r0,r1,r2) static void _crr_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define cri_u(cc,r0,r1,i0) _cri_u(_jit,cc,r0,r1,i0) static void _cri_u(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); + int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define brr(cc,i0,r0,r1) _brr(_jit,cc,i0,r0,r1) -static void _brr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _brr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define brr_p(cc,i0,r0,r1) _brr_p(_jit,cc,i0,r0,r1) -static jit_word_t _brr_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _brr_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bri(cc,i0,r0,i1) _bri(_jit,cc,i0,r0,i1) -static void _bri(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static void _bri(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define bri_p(cc,i0,r0,i1) _bri_p(_jit,cc,i0,r0,i1) -static jit_word_t _bri_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bri_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define brr_u(cc,i0,r0,r1) _brr_u(_jit,cc,i0,r0,r1) -static void _brr_u(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _brr_u(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define brr_u_p(cc,i0,r0,r1) _brr_u_p(_jit,cc,i0,r0,r1) -static jit_word_t _brr_u_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _brr_u_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bri_u(cc,i0,r0,i1) _bri_u(_jit,cc,i0,r0,i1) -static void _bri_u(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static void _bri_u(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define bri_u_p(cc,i0,r0,i1) _bri_u_p(_jit,cc,i0,r0,i1) -static jit_word_t _bri_u_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bri_u_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define baddr(c,s,i0,r0,r1) _baddr(_jit,c,s,i0,r0,r1) -static void _baddr(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _baddr(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_int32_t); # define baddr_p(c,s,i0,r0,r1) _baddr_p(_jit,c,s,i0,r0,r1) -static jit_word_t _baddr_p(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _baddr_p(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_int32_t); # define baddi(c,s,i0,r0,i1) _baddi(_jit,c,s,i0,r0,i1) -static void _baddi(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); +static void _baddi(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_word_t); # define baddi_p(c,s,i0,r0,i1) _baddi_p(_jit,c,s,i0,r0,i1) -static jit_word_t _baddi_p(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _baddi_p(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_word_t); # define bsubr(c,s,i0,r0,r1) _bsubr(_jit,c,s,i0,r0,r1) -static void _bsubr(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _bsubr(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_int32_t); # define bsubr_p(c,s,i0,r0,r1) _bsubr_p(_jit,c,s,i0,r0,r1) -static jit_word_t _bsubr_p(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bsubr_p(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_int32_t); # define bsubi(c,s,i0,r0,i1) _bsubi(_jit,c,s,i0,r0,i1) -static void _bsubi(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); +static void _bsubi(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_word_t); # define bsubi_p(c,s,i0,r0,i1) _bsubi_p(_jit,c,s,i0,r0,i1) -static jit_word_t _bsubi_p(jit_state_t*,jit_int32_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bsubi_p(jit_state_t*,int32_t,jit_bool_t, + jit_word_t,int32_t,jit_word_t); # define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1) -static void _bmxr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _bmxr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bmxr_p(cc,i0,r0,r1) _bmxr_p(_jit,cc,i0,r0,r1) -static jit_word_t _bmxr_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmxr_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bmxi(cc,i0,r0,i1) _bmxi(_jit,cc,i0,r0,i1) -static void _bmxi(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static void _bmxi(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define bmxi_p(cc,i0,r0,i1) _bmxi_p(_jit,cc,i0,r0,i1) -static jit_word_t _bmxi_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmxi_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define movr(r0,r1) _movr(_jit,r0,r1) -static void _movr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr(jit_state_t*,int32_t,jit_int32_t); # define movi(r0,i0) _movi(_jit,r0,i0) -static void _movi(jit_state_t*,jit_int32_t,jit_word_t); +static void _movi(jit_state_t*,int32_t,jit_word_t); # define movi_p(r0,i0) _movi_p(_jit,r0,i0) -static jit_word_t _movi_p(jit_state_t*,jit_int32_t,jit_word_t); +static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); # define addr(r0,r1,r2) _addr(_jit,r0,r1,r2) -static void _addr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) -static void _addi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addcr(r0,r1,r2) _addcr(_jit,r0,r1,r2) -static void _addcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) -static void _addci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define addxr(r0,r1,r2) _addxr(_jit,r0,r1,r2) -static void _addxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) -static void _addxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subr(r0,r1,r2) _subr(_jit,r0,r1,r2) -static void _subr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) -static void _subi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subcr(r0,r1,r2) _subcr(_jit,r0,r1,r2) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) _subxr(_jit,r0,r1,r2) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) -static void _mulr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) -static void _muli(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) -static void _qmulr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) -static void _qmuli(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) -static void _qmulr_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qmulr_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) -static void _qmuli_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qmuli_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) -static void _divr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) -static void _divi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) -static void _divr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) -static void _divi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) -static void _remr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) -static void _remi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) -static void _remr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) -static void _remi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define qdivr(r0,r1,r2,r3) _qdivr(_jit,r0,r1,r2,r3) -static void _qdivr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qdivr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0) -static void _qdivi(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qdivi(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # define qdivr_u(r0,r1,r2,r3) _qdivr_u(_jit,r0,r1,r2,r3) -static void _qdivr_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _qdivr_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0) -static void _qdivi_u(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_word_t); +static void _qdivi_u(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define lshr(r0,r1,r2) _lshr(_jit,r0,r1,r2) -static void _lshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _lshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # else # define lshr(r0,r1,r2) SLLG(r0,r1,0,r2) # endif # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) -static void _lshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define rshr(r0,r1,r2) _rshr(_jit,r0,r1,r2) -static void _rshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # else # define rshr(r0,r1,r2) SRAG(r0,r1,0,r2) # endif # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) -static void _rshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define rshr_u(r0,r1,r2) _rshr_u(_jit,r0,r1,r2) -static void _rshr_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _rshr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # else # define rshr_u(r0,r1,r2) SRLG(r0,r1,0,r2) # endif # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) -static void _rshi_u(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define negr(r0,r1) LCR(r0,r1) # else # define negr(r0,r1) LCGR(r0,r1) # endif # define comr(r0,r1) _comr(_jit,r0,r1) -static void _comr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _comr(jit_state_t*,int32_t,jit_int32_t); # define andr(r0,r1,r2) _andr(_jit,r0,r1,r2) -static void _andr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _andr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) -static void _andi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define orr(r0,r1,r2) _orr(_jit,r0,r1,r2) -static void _orr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _orr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) -static void _ori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define xorr(r0,r1,r2) _xorr(_jit,r0,r1,r2) -static void _xorr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _xorr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) -static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define htonr_us(r0,r1) extr_us(r0,r1) # if __WORDSIZE == 32 # define htonr_ui(r0,r1) movr(r0,r1) @@ -1096,92 +1096,92 @@ static void _xori(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # endif # define ldr_c(r0,r1) LGB(r0,0,0,r1) # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) -static void _ldxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_uc(r0,r1) LLGC(r0,0,0,r1) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) -static void _ldxr_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldr_s(r0,r1) LH(r0,0,0,r1) # else # define ldr_s(r0,r1) LGH(r0,0,0,r1) # endif # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) -static void _ldxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_us(r0,r1) LLGH(r0,0,0,r1) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) -static void _ldxr_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldr_i(r0,r1) LLGF(r0,0,0,r1) # else # define ldr_i(r0,r1) LGF(r0,0,0,r1) # endif # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) -static void _ldxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldr_ui(r0,r1) LLGF(r0,0,0,r1) # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) -static void _ldxr_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldr_l(r0,r1) LG(r0,0,0,r1) # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # define ldxr_l(r0,r1,r2) _ldxr_l(_jit,r0,r1,r2) -static void _ldxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # endif # define str_c(r0,r1) STC(r1,0,0,r0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) -static void _stxr_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_s(r0,r1) STH(r1,0,0,r0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) -static void _stxr_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define str_i(r0,r1) ST(r1,0,0,r0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) -static void _stxr_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define str_l(r0,r1) STG(r1,0,0,r0) # define sti_l(i0,r0) _sti_l(_jit,i0,r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # define stxr_l(r0,r1,r2) _stxr_l(_jit,r0,r1,r2) -static void _stxr_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_l(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # endif # define ltr(r0,r1,r2) crr(CC_L,r0,r1,r2) # define lti(r0,r1,i0) cri(CC_L,r0,r1,i0) @@ -1298,16 +1298,16 @@ static void _prolog(jit_state_t*,jit_node_t*); # define epilog(i0) _epilog(_jit,i0) static void _epilog(jit_state_t*,jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define patch_at(instr,label) _patch_at(_jit,instr,label) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif #if CODE -# define _us jit_uint16_t -# define _ui jit_uint32_t +# define _us uint16_t +# define _ui uint32_t static void _E(jit_state_t *_jit, _ui Op) { @@ -1938,7 +1938,7 @@ _SSE(jit_state_t *_jit, _ui Op, _ui B1, _ui D1, _ui B2, _ui D2) # undef _ui static void -_nop(jit_state_t *_jit, jit_int32_t c) +_nop(jit_state_t *_jit, int32_t c) { assert(c >= 0 && !(c & 1)); while (c) { @@ -1947,10 +1947,10 @@ _nop(jit_state_t *_jit, jit_int32_t c) } } -static jit_int32_t -_xdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +static int32_t +_xdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t regno; + int32_t regno; regno = jit_get_reg_pair(); #if __WORDSIZE == 32 movr(rn(regno), r0); @@ -1963,10 +1963,10 @@ _xdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) return (regno); } -static jit_int32_t -_xdivr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +static int32_t +_xdivr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t regno; + int32_t regno; regno = jit_get_reg_pair(); #if __WORDSIZE == 32 movr(rn(regno), r0); @@ -1980,10 +1980,10 @@ _xdivr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) return (regno); } -static jit_int32_t -_xdivi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +static int32_t +_xdivi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t imm, regno; + int32_t imm, regno; regno = jit_get_reg_pair(); imm = jit_get_reg(jit_class_gpr); #if __WORDSIZE == 32 @@ -1999,11 +1999,11 @@ _xdivi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) return (regno); } -static jit_int32_t -_xdivi_u(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +static int32_t +_xdivi_u(jit_state_t *_jit, int32_t r0, jit_word_t i0) { /* cannot overlap because operand is 128-bit */ - jit_int32_t imm, regno; + int32_t imm, regno; regno = jit_get_reg_pair(); imm = jit_get_reg(jit_class_gpr); #if __WORDSIZE == 32 @@ -2021,11 +2021,11 @@ _xdivi_u(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_crr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_crr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; - jit_int32_t reg, rg; + int32_t reg, rg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); rg = rn(reg); @@ -2045,10 +2045,10 @@ _crr(jit_state_t *_jit, jit_int32_t cc, } static void -_cri(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_cri(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); crr(cc, r0, r1, rn(reg)); @@ -2056,11 +2056,11 @@ _cri(jit_state_t *_jit, jit_int32_t cc, } static void -_crr_u(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_crr_u(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; - jit_int32_t reg, rg; + int32_t reg, rg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); rg = rn(reg); @@ -2080,10 +2080,10 @@ _crr_u(jit_state_t *_jit, jit_int32_t cc, } static void -_cri_u(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_cri_u(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); crr_u(cc, r0, r1, rn(reg)); @@ -2091,8 +2091,8 @@ _cri_u(jit_state_t *_jit, jit_int32_t cc, } static void -_brr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_brr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; CMP_(r0, r1); @@ -2106,8 +2106,8 @@ _brr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_brr_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_brr_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP_(r0, r1); @@ -2117,10 +2117,10 @@ _brr_p(jit_state_t *_jit, jit_int32_t cc, } static void -_bri(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bri(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); brr(cc, i0, r0, rn(reg)); @@ -2128,11 +2128,11 @@ _bri(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bri_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bri_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = brr_p(cc, i0, r0, rn(reg)); @@ -2141,8 +2141,8 @@ _bri_p(jit_state_t *_jit, jit_int32_t cc, } static void -_brr_u(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_brr_u(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; CMPU_(r0, r1); @@ -2156,8 +2156,8 @@ _brr_u(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_brr_u_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_brr_u_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMPU_(r0, r1); @@ -2167,10 +2167,10 @@ _brr_u_p(jit_state_t *_jit, jit_int32_t cc, } static void -_bri_u(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bri_u(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); brr_u(cc, i0, r0, rn(reg)); @@ -2178,11 +2178,11 @@ _bri_u(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bri_u_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bri_u_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = brr_u_p(cc, i0, r0, rn(reg)); @@ -2191,8 +2191,8 @@ _bri_u_p(jit_state_t *_jit, jit_int32_t cc, } static void -_baddr(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_baddr(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; if (s) addr(r0, r0, r1); @@ -2207,10 +2207,10 @@ _baddr(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static void -_baddi(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_baddi(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); baddr(c, s, i0, r0, rn(reg)); @@ -2218,8 +2218,8 @@ _baddi(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static jit_word_t -_baddr_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_baddr_p(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; if (s) addr(r0, r0, r1); @@ -2231,11 +2231,11 @@ _baddr_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static jit_word_t -_baddi_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_baddi_p(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = baddr_p(c, s, i0, r0, rn(reg)); @@ -2244,8 +2244,8 @@ _baddi_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static void -_bsubr(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bsubr(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; if (s) subr(r0, r0, r1); @@ -2260,10 +2260,10 @@ _bsubr(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static void -_bsubi(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bsubi(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); bsubr(c, s, i0, r0, rn(reg)); @@ -2271,8 +2271,8 @@ _bsubi(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static jit_word_t -_bsubr_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bsubr_p(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d, w; if (s) subr(r0, r0, r1); @@ -2284,11 +2284,11 @@ _bsubr_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static jit_word_t -_bsubi_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bsubi_p(jit_state_t *_jit, int32_t c, jit_bool_t s, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi(rn(reg), i1); w = bsubr_p(c, s, i0, r0, rn(reg)); @@ -2297,11 +2297,11 @@ _bsubi_p(jit_state_t *_jit, jit_int32_t c, jit_bool_t s, } static void -_bmxr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmxr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r0); andr(rn(reg), rn(reg), r1); @@ -2317,11 +2317,11 @@ _bmxr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bmxr_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmxr_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r0); andr(rn(reg), rn(reg), r1); @@ -2333,11 +2333,11 @@ _bmxr_p(jit_state_t *_jit, jit_int32_t cc, } static void -_bmxi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmxi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t d; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); andr(rn(reg), rn(reg), r0); @@ -2353,11 +2353,11 @@ _bmxi(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bmxi_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmxi_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); andr(rn(reg), rn(reg), r0); @@ -2369,7 +2369,7 @@ _bmxi_p(jit_state_t *_jit, jit_int32_t cc, } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if __WORDSIZE == 32 if (r0 != r1) @@ -2381,11 +2381,11 @@ _movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t d; #if __WORDSIZE == 64 - jit_int32_t bits; + int32_t bits; #endif d = (i0 - _jit->pc.w) >> 1; if (s16_p(i0)) { @@ -2425,7 +2425,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; w = _jit->pc.w; @@ -2443,7 +2443,7 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) ADD_(r0, r1); @@ -2454,9 +2454,9 @@ _addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 && s16_p(i0)) ADDI_(r0, x16(i0)); #if __WORDSIZE == 64 @@ -2472,7 +2472,7 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) ADDC_(r0, r1); @@ -2483,9 +2483,9 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); addcr(r0, r1, rn(reg)); @@ -2493,7 +2493,7 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) ADDX_(r0, r1); @@ -2504,9 +2504,9 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); addxr(r0, r1, rn(reg)); @@ -2514,9 +2514,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r2); @@ -2531,9 +2531,9 @@ _subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 && s16_p(-i0)) ADDI_(r0, x16(-i0)); #if __WORDSIZE == 64 @@ -2549,9 +2549,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r2); @@ -2566,9 +2566,9 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subcr(r0, r1, rn(reg)); @@ -2576,9 +2576,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r2); @@ -2593,9 +2593,9 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); subxr(r0, r1, rn(reg)); @@ -2603,14 +2603,14 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) MUL_(r0, r1); @@ -2621,9 +2621,9 @@ _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s16_p(i0)) { movr(r0, r1); MULI_(r0, x16(i0)); @@ -2638,11 +2638,11 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) static void _qmulr(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t reg; + int32_t reg; /* The only invalid condition is r0 == r1 */ - jit_int32_t t2, t3, s2, s3; + int32_t t2, t3, s2, s3; if (r2 == r0 || r2 == r1) { s2 = jit_get_reg(jit_class_gpr); t2 = rn(s2); @@ -2676,9 +2676,9 @@ _qmulr(jit_state_t *_jit, static void _qmuli(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); qmulr(r0, r1, r2, rn(reg)); @@ -2687,9 +2687,9 @@ _qmuli(jit_state_t *_jit, static void _qmulr_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t regno; + int32_t regno; regno = jit_get_reg_pair(); movr(rn(regno) + 1, r2); MULU_(rn(regno), r3); @@ -2700,9 +2700,9 @@ _qmulr_u(jit_state_t *_jit, static void _qmuli_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = jit_get_reg_pair(); movr(rn(regno) + 1, r2); movi(rn(regno), i0); @@ -2713,74 +2713,74 @@ _qmuli_u(jit_state_t *_jit, } static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t regno; + int32_t regno; regno = xdivr(r1, r2); movr(r0, rn(regno) + 1); } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi(r1, i0); movr(r0, rn(regno) + 1); } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t regno; + int32_t regno; regno = xdivr_u(r1, r2); movr(r0, rn(regno) + 1); } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi_u(r1, i0); movr(r0, rn(regno) + 1); } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t regno; + int32_t regno; regno = xdivr(r1, r2); movr(r0, rn(regno)); } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi(r1, i0); movr(r0, rn(regno)); } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t regno; + int32_t regno; regno = xdivr_u(r1, r2); movr(r0, rn(regno)); } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi_u(r1, i0); movr(r0, rn(regno)); } static void _qdivr(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t regno; + int32_t regno; regno = xdivr(r2, r3); movr(r0, rn(regno) + 1); movr(r1, rn(regno)); @@ -2788,9 +2788,9 @@ _qdivr(jit_state_t *_jit, static void _qdivi(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi(r2, i0); movr(r0, rn(regno) + 1); movr(r1, rn(regno)); @@ -2798,9 +2798,9 @@ _qdivi(jit_state_t *_jit, static void _qdivr_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - jit_int32_t regno; + int32_t regno; regno = xdivr_u(r2, r3); movr(r0, rn(regno) + 1); movr(r1, rn(regno)); @@ -2808,9 +2808,9 @@ _qdivr_u(jit_state_t *_jit, static void _qdivi_u(jit_state_t *_jit, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) + int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_word_t i0) { - jit_int32_t regno; + int32_t regno; regno = xdivi_u(r2, i0); movr(r0, rn(regno) + 1); movr(r1, rn(regno)); @@ -2818,9 +2818,9 @@ _qdivi_u(jit_state_t *_jit, # if __WORDSIZE == 32 static void -_lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_lshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg_but_zero(0); movr(rn(reg), r2); @@ -2836,9 +2836,9 @@ _lshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) #endif static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); lshr(r0, r1, rn(reg)); @@ -2847,9 +2847,9 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 32 static void -_rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_rshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg_but_zero(0); movr(rn(reg), r2); @@ -2865,9 +2865,9 @@ _rshr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) #endif static void -_rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); rshr(r0, r1, rn(reg)); @@ -2876,9 +2876,9 @@ _rshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 32 static void -_rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_rshr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg_but_zero(0); movr(rn(reg), r2); @@ -2894,9 +2894,9 @@ _rshr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) #endif static void -_rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); rshr_u(r0, r1, rn(reg)); @@ -2904,9 +2904,9 @@ _rshi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_comr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), -1); movr(r0, r1); @@ -2915,7 +2915,7 @@ _comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_andr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) AND_(r0, r1); @@ -2926,7 +2926,7 @@ _andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(r0, r1); NILL(r0, x16(i0)); @@ -2938,7 +2938,7 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_orr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) OR_(r0, r1); @@ -2949,7 +2949,7 @@ _orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(r0, r1); OILL(r0, x16(i0)); @@ -2961,7 +2961,7 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_xorr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) XOR_(r0, r1); @@ -2972,9 +2972,9 @@ _xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); xorr(r0, r1, rn(reg)); @@ -2982,14 +2982,14 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_c(r0, r0); } static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3003,9 +3003,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) { #if __WORDSIZE == 32 LB(r0, x20(i0), 0, r1); @@ -3028,14 +3028,14 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_uc(r0, r0); } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3049,9 +3049,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) LLGC(r0, x20(i0), 0, r1); else if (r0 != r1) { @@ -3069,14 +3069,14 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_s(r0, r0); } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3090,9 +3090,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; #if __WORDSIZE == 32 if (u12_p(i0)) LH(r0, i0, 0, r1); @@ -3120,14 +3120,14 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_us(r0, r0); } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3141,9 +3141,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) LLGH(r0, x20(i0), 0, r1); else if (r0 != r1) { @@ -3161,14 +3161,14 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_i(r0, r0); } static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3182,9 +3182,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) LGF(r0, x20(i0), 0, r1); else if (r0 != r1) { @@ -3203,14 +3203,14 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __WORDSIZE == 64 static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_ui(r0, r0); } static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3224,9 +3224,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) LLGF(r0, x20(i0), 0, r1); else if (r0 != r1) { @@ -3244,14 +3244,14 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { movi(r0, i0); ldr_l(r0, r0); } static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) { addr(r0, r0, r1); @@ -3265,9 +3265,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) LG(r0, x20(i0), 0, r1); else if (r0 != r1) { @@ -3286,9 +3286,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #endif static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_c(rn(reg), r0); @@ -3296,9 +3296,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -3307,9 +3307,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) STC(r1, i0, 0, r0); else if (s20_p(i0)) @@ -3323,9 +3323,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_s(rn(reg), r0); @@ -3333,9 +3333,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -3344,9 +3344,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) STH(r1, i0, 0, r0); else if (s20_p(i0)) @@ -3360,9 +3360,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_i(rn(reg), r0); @@ -3370,9 +3370,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -3381,9 +3381,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) ST(r1, i0, 0, r0); else if (s20_p(i0)) @@ -3398,9 +3398,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) #if __WORDSIZE == 64 static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_l(rn(reg), r0); @@ -3408,9 +3408,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -3419,9 +3419,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s20_p(i0)) STG(r1, x20(i0), 0, r0); else { @@ -3437,7 +3437,7 @@ static void _jmpi(jit_state_t *_jit, jit_word_t i0) { jit_word_t d; - jit_int32_t reg; + int32_t reg; d = (i0 - _jit->pc.w) >> 1; if (s16_p(d)) J(x16(d)); @@ -3455,7 +3455,7 @@ static jit_word_t _jmpi_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(jit_class_nospill); w = movi_p(rn(reg), i0); jmpr(rn(reg)); @@ -3467,7 +3467,7 @@ static void _calli(jit_state_t *_jit, jit_word_t i0) { jit_word_t d; - jit_int32_t reg; + int32_t reg; d = (i0 - _jit->pc.w) >> 1; if (s32_p(d)) BRASL(_R14_REGNO, d); @@ -3483,7 +3483,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); w = movi_p(rn(reg), i0); callr(rn(reg)); @@ -3491,7 +3491,7 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) return (w); } -static jit_int32_t gprs[] = { +static int32_t gprs[] = { _R2, _R3, _R4, _R5, _R6, _R7, _R8, _R9, _R10, _R11, _R12, _R13 }; @@ -3499,9 +3499,9 @@ static jit_int32_t gprs[] = { static void _prolog(jit_state_t *_jit, jit_node_t *i0) { - jit_int32_t regno, offset; + int32_t regno, offset; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -3602,7 +3602,7 @@ _prolog(jit_state_t *_jit, jit_node_t *i0) static void _epilog(jit_state_t *_jit, jit_node_t *i0) { - jit_int32_t regno, offset; + int32_t regno, offset; if (_jitc->function->assume_frame) return; if ((_jitc->function->self.call & jit_call_varargs) && @@ -3670,9 +3670,9 @@ _epilog(jit_state_t *_jit, jit_node_t *i0) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); @@ -3699,11 +3699,11 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0; - jit_int32_t rg1; - jit_int32_t rg2; + int32_t rg0; + int32_t rg1; + int32_t rg2; jit_word_t ge_code; jit_word_t lt_code; @@ -3771,30 +3771,30 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_word_t d; union { - jit_uint16_t *s; + uint16_t *s; jit_word_t w; } u; u.w = instr; union { struct { - jit_uint16_t op : 8; - jit_uint16_t r1 : 4; - jit_uint16_t r3 : 4; + uint16_t op : 8; + uint16_t r1 : 4; + uint16_t r3 : 4; } b; - jit_uint16_t s; + uint16_t s; } i0; union { struct { - jit_uint16_t i2; + uint16_t i2; } b; - jit_uint16_t s; + uint16_t s; } i1; union { struct { - jit_uint32_t ih : 16; - jit_uint32_t il : 16; + uint32_t ih : 16; + uint32_t il : 16; } b; - jit_uint32_t i; + uint32_t i; } i12; i0.s = u.s[0]; /* movi_p */ diff --git a/jit/s390-fpu.c b/jit/s390-fpu.c index cb35241df..393284f03 100644 --- a/jit/s390-fpu.c +++ b/jit/s390-fpu.c @@ -286,66 +286,66 @@ # define TCXB(R1,D2,X2,B2) RXE_(0xED,R1,X2,B2,D2,0x12) # define fp(code,r0,r1,i0) _fp(_jit,jit_code_##code##i_f,r0,r1,i0) static void _fp(jit_state_t*,jit_code_t, - jit_int32_t,jit_int32_t,jit_float32_t*); + int32_t,jit_int32_t,jit_float32_t*); # define dp(code,r0,r1,i0) _dp(_jit,jit_code_##code##i_d,r0,r1,i0) static void _dp(jit_state_t*,jit_code_t, - jit_int32_t,jit_int32_t,jit_float64_t*); + int32_t,jit_int32_t,jit_float64_t*); # define fr(cc,r0,r1,r2) _fr(_jit,cc,r0,r1,r2) -static void _fr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _fr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define dr(cc,r0,r1,r2) _dr(_jit,cc,r0,r1,r2) -static void _dr(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +static void _dr(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t); # define fi(cc,r0,r1,i0) _fi(_jit,cc,r0,r1,i0) -static void _fi(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float32_t*); +static void _fi(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float32_t*); # define di(cc,r0,r1,i0) _di(_jit,cc,r0,r1,i0) -static void _di(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float64_t*); +static void _di(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float64_t*); # define bfr(cc,i0,r0,r1) _bfr(_jit,cc,i0,r0,r1) -static void _bfr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _bfr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bdr(cc,i0,r0,r1) _bdr(_jit,cc,i0,r0,r1) -static void _bdr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static void _bdr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bfr_p(cc,i0,r0,r1) _bfr_p(_jit,cc,i0,r0,r1) -static jit_word_t _bfr_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bfr_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bdr_p(cc,i0,r0,r1) _bdr_p(_jit,cc,i0,r0,r1) -static jit_word_t _bdr_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bdr_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bfi(cc,i0,r0,i1) _bfi(_jit,cc,i0,r0,i1) -static void _bfi(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_float32_t*); +static void _bfi(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_float32_t*); # define bdi(cc,i0,r0,i1) _bdi(_jit,cc,i0,r0,i1) -static void _bdi(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_float64_t*); +static void _bdi(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_float64_t*); # define bfi_p(cc,i0,r0,i1) _bfi_p(_jit,cc,i0,r0,i1) -static jit_word_t _bfi_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_float32_t*); +static jit_word_t _bfi_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_float32_t*); # define bdi_p(cc,i0,r0,i1) _bdi_p(_jit,cc,i0,r0,i1) -static jit_word_t _bdi_p(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_float64_t*); +static jit_word_t _bdi_p(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_float64_t*); # define buneqr(db,i0,r0,r1) _buneqr(_jit,db,i0,r0,r1) -static jit_word_t _buneqr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _buneqr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define buneqi(db,i0,r0,i1) _buneqi(_jit,db,i0,r0,(jit_word_t)i1) -static jit_word_t _buneqi(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _buneqi(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define bltgtr(db,i0,r0,r1) _bltgtr(_jit,db,i0,r0,r1) -static jit_word_t _bltgtr(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bltgtr(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_int32_t); # define bltgti(db,i0,r0,i1) _bltgti(_jit,db,i0,r0,(jit_word_t)i1) -static jit_word_t _bltgti(jit_state_t*,jit_int32_t, - jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bltgti(jit_state_t*,int32_t, + jit_word_t,int32_t,jit_word_t); # define movr_f(r0,r1) _movr_f(_jit,r0,r1) -static void _movr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_f(jit_state_t*,int32_t,jit_int32_t); # define movi_f(r0,i0) _movi_f(_jit,r0,i0) -static void _movi_f(jit_state_t*,jit_int32_t,jit_float32_t*); +static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); # define movr_d(r0,r1) _movr_d(_jit,r0,r1) -static void _movr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movr_d(jit_state_t*,int32_t,jit_int32_t); # define movi_d(r0,i0) _movi_d(_jit,r0,i0) -static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); +static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); # define absr_f(r0,r1) LPEBR(r0,r1) # define absr_d(r0,r1) LPDBR(r0,r1) # define negr_f(r0,r1) LCEBR(r0,r1) @@ -368,61 +368,61 @@ static void _movi_d(jit_state_t*,jit_int32_t,jit_float64_t*); # define extr_d_f(r0,r1) LEDBR(r0,r1) # define extr_f_d(r0,r1) LDEBR(r0,r1) # define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2) -static void _addr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi_f(r0,r1,i0) fp(add,r0,r1,i0) # define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2) -static void _addr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _addr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define addi_d(r0,r1,i0) dp(add,r0,r1,i0) # define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2) -static void _subr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi_f(r0,r1,i0) fp(sub,r0,r1,i0) # define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2) -static void _subr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subi_d(r0,r1,i0) dp(sub,r0,r1,i0) # define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) # define rsbi_f(r0,r1,i0) fp(rsb,r0,r1,i0) # define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) # define rsbi_d(r0,r1,i0) dp(rsb,r0,r1,i0) # define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2) -static void _mulr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli_f(r0,r1,i0) fp(mul,r0,r1,i0) # define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2) -static void _mulr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _mulr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define muli_d(r0,r1,i0) dp(mul,r0,r1,i0) # define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) -static void _divr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_f(r0,r1,i0) fp(div,r0,r1,i0) # define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) -static void _divr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define divi_d(r0,r1,i0) dp(div,r0,r1,i0) # define ldr_f(r0,r1) LE(r0,0,0,r1) # define ldr_d(r0,r1) LD(r0,0,0,r1) # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) -static void _ldxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define str_f(r0,r1) STE(r1,0,0,r0) # define str_d(r0,r1) STD(r1,0,0,r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # define sti_d(i0,r0) _sti_d(_jit,i0,r0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) -static void _stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) -static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define ltr_f(r0,r1,r2) fr(CC_L,r0,r1,r2) # define ltr_d(r0,r1,r2) dr(CC_L,r0,r1,r2) # define lti_f(r0,r1,i0) fi(CC_L,r0,r1,i0) @@ -456,9 +456,9 @@ static void _stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); # define unlei_f(r0,r1,i0) fi(CC_NH,r0,r1,i0) # define unlei_d(r0,r1,i0) di(CC_NH,r0,r1,i0) # define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2) -static void _uneqr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) -static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define uneqi_f(r0,r1,i0) fp(uneq,r0,r1,i0) # define uneqi_d(r0,r1,i0) dp(uneq,r0,r1,i0) # define unger_f(r0,r1,r2) fr(CC_NL,r0,r1,r2) @@ -470,9 +470,9 @@ static void _uneqr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); # define ungti_f(r0,r1,i0) fi(CC_NLE,r0,r1,i0) # define ungti_d(r0,r1,i0) di(CC_NLE,r0,r1,i0) # define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2) -static void _ltgtr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) -static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ltgti_f(r0,r1,i0) fp(ltgt,r0,r1,i0) # define ltgti_d(r0,r1,i0) dp(ltgt,r0,r1,i0) # define ordr_f(r0,r1,r2) fr(CC_NO,r0,r1,r2) @@ -596,15 +596,15 @@ static void _ltgtr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); # define bunordi_f_p(i0,r0,i1) bfi_p(CC_O,i0,r0,i1) # define bunordi_d_p(i0,r0,i1) bdi_p(CC_O,i0,r0,i1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE static void _fp(jit_state_t *_jit, jit_code_t code, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); movi_f(rn(reg), i0); switch (code) { @@ -622,9 +622,9 @@ _fp(jit_state_t *_jit, jit_code_t code, static void _dp(jit_state_t *_jit, jit_code_t code, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr); movi_d(rn(reg), i0); switch (code) { @@ -641,8 +641,8 @@ _dp(jit_state_t *_jit, jit_code_t code, } static void -_fr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_fr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; LGHI(r0, 1); @@ -654,8 +654,8 @@ _fr(jit_state_t *_jit, jit_int32_t cc, } static void -_dr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_dr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t w; LGHI(r0, 1); @@ -667,10 +667,10 @@ _dr(jit_state_t *_jit, jit_int32_t cc, } static void -_fi(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) +_fi(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_f(rn(reg), i0); fr(cc, r0, r1, rn(reg)); @@ -678,10 +678,10 @@ _fi(jit_state_t *_jit, jit_int32_t cc, } static void -_di(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) +_di(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); movi_d(rn(reg), i0); dr(cc, r0, r1, rn(reg)); @@ -690,8 +690,8 @@ _di(jit_state_t *_jit, jit_int32_t cc, static void -_bfr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bfr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; CEBR(r0, r1); @@ -705,8 +705,8 @@ _bfr(jit_state_t *_jit, jit_int32_t cc, } static void -_bdr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bdr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t d; CDBR(r0, r1); @@ -720,8 +720,8 @@ _bdr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bfr_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bfr_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CEBR(r0, r1); @@ -731,8 +731,8 @@ _bfr_p(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bdr_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bdr_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CDBR(r0, r1); @@ -742,10 +742,10 @@ _bdr_p(jit_state_t *_jit, jit_int32_t cc, } static void -_bfi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float32_t *i1) +_bfi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float32_t *i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi_f(rn(reg), i1); bfr(cc, i0, r0, rn(reg)); @@ -753,10 +753,10 @@ _bfi(jit_state_t *_jit, jit_int32_t cc, } static void -_bdi(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float64_t *i1) +_bdi(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float64_t *i1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi_d(rn(reg), i1); bdr(cc, i0, r0, rn(reg)); @@ -764,11 +764,11 @@ _bdi(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bfi_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float32_t *i1) +_bfi_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float32_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi_f(rn(reg), i1); w = bfr_p(cc, i0, r0, rn(reg)); @@ -777,11 +777,11 @@ _bfi_p(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bdi_p(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float64_t *i1) +_bdi_p(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float64_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); movi_d(rn(reg), i1); w = bdr_p(cc, i0, r0, rn(reg)); @@ -790,8 +790,8 @@ _bdi_p(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_buneqr(jit_state_t *_jit, jit_int32_t db, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_buneqr(jit_state_t *_jit, int32_t db, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t unord, ne, w; if (db) CDBR(r0, r1); @@ -808,11 +808,11 @@ _buneqr(jit_state_t *_jit, jit_int32_t db, } static jit_word_t -_buneqi(jit_state_t *_jit, jit_int32_t db, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_buneqi(jit_state_t *_jit, int32_t db, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); if (db) movi_d(rn(reg), (jit_float64_t *)i1); @@ -824,8 +824,8 @@ _buneqi(jit_state_t *_jit, jit_int32_t db, } static jit_word_t -_bltgtr(jit_state_t *_jit, jit_int32_t db, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltgtr(jit_state_t *_jit, int32_t db, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t unord, eq, w; if (db) CDBR(r0, r1); @@ -842,11 +842,11 @@ _bltgtr(jit_state_t *_jit, jit_int32_t db, } static jit_word_t -_bltgti(jit_state_t *_jit, jit_int32_t db, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bltgti(jit_state_t *_jit, int32_t db, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_fpr|jit_class_nospill); if (db) movi_d(rn(reg), (jit_float64_t *)i1); @@ -858,22 +858,22 @@ _bltgti(jit_state_t *_jit, jit_int32_t db, } static void -_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) LER(r0, r1); } static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; - if (*(jit_int32_t *)i0 == 0) + if (*(int32_t *)i0 == 0) LZER(r0); else if (_jitc->no_data) { data.f = *i0; @@ -888,26 +888,26 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) LDR(r0, r1); } static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { #if __WORDSIZE == 32 - jit_int32_t i[2]; + int32_t i[2]; #else - jit_int64_t l; + int64_t l; #endif jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; - if (*(jit_int64_t *)i0 == 0) + if (*(int64_t *)i0 == 0) LZDR(r0); else if (_jitc->no_data) { data.d = *i0; @@ -929,7 +929,7 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) } static void -_addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) AEBR(r0, r1); @@ -940,7 +940,7 @@ _addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) ADBR(r0, r1); @@ -951,9 +951,9 @@ _addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_fpr); movr_f(rn(reg), r2); @@ -968,9 +968,9 @@ _subr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_fpr); movr_d(rn(reg), r2); @@ -985,7 +985,7 @@ _subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) MEEBR(r0, r1); @@ -996,7 +996,7 @@ _mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) MDBR(r0, r1); @@ -1007,9 +1007,9 @@ _mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_fpr); movr_f(rn(reg), r2); @@ -1024,9 +1024,9 @@ _divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2) { reg = jit_get_reg(jit_class_fpr); movr_d(rn(reg), r2); @@ -1041,9 +1041,9 @@ _divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); ldr_f(r0, rn(reg)); @@ -1051,9 +1051,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); ldr_d(r0, rn(reg)); @@ -1061,9 +1061,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r1); addr(rn(reg), rn(reg), r2); @@ -1072,9 +1072,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r1); addr(rn(reg), rn(reg), r2); @@ -1083,9 +1083,9 @@ _ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) LE(r0, i0, 0, r1); else if (s20_p(i0)) @@ -1100,9 +1100,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) LD(r0, i0, 0, r1); else if (s20_p(i0)) @@ -1117,9 +1117,9 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_f(rn(reg), r0); @@ -1127,9 +1127,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movi(rn(reg), i0); str_d(rn(reg), r0); @@ -1137,9 +1137,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -1148,9 +1148,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg_but_zero(0); movr(rn(reg), r0); addr(rn(reg), rn(reg), r1); @@ -1159,9 +1159,9 @@ _stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) STE(r1, i0, 0, r0); else if (s20_p(i0)) @@ -1176,9 +1176,9 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (u12_p(i0)) STD(r1, i0, 0, r0); else if (s20_p(i0)) @@ -1193,7 +1193,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t unord, eq; movi(r0, 1); /* set to one */ @@ -1208,7 +1208,7 @@ _uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t unord, eq; movi(r0, 1); /* set to one */ @@ -1223,7 +1223,7 @@ _uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t unord, eq; movi(r0, 0); /* set to zero */ @@ -1238,7 +1238,7 @@ _ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_word_t unord, eq; movi(r0, 0); /* set to zero */ @@ -1253,11 +1253,11 @@ _ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t rg0; - jit_int32_t rg1; - jit_int32_t rg2; + int32_t rg0; + int32_t rg1; + int32_t rg2; jit_word_t ge_code; jit_word_t lt_code; diff --git a/jit/s390.c b/jit/s390.c index 56aa1b9be..66306d3dc 100644 --- a/jit/s390.c +++ b/jit/s390.c @@ -73,11 +73,11 @@ type = struct __va_list_tag { * Prototypes */ #define jit_get_reg_pair() _jit_get_reg_pair(_jit) -static jit_int32_t _jit_get_reg_pair(jit_state_t*); +static int32_t _jit_get_reg_pair(jit_state_t*); #define jit_unget_reg_pair(regno) _jit_unget_reg_pair(_jit,regno) -static void _jit_unget_reg_pair(jit_state_t*,jit_int32_t); +static void _jit_unget_reg_pair(jit_state_t*,int32_t); #define jit_get_reg_but_zero(flags) _jit_get_reg_but_zero(_jit,flags) -static jit_int32_t _jit_get_reg_but_zero(jit_state_t*,jit_int32_t); +static int32_t _jit_get_reg_but_zero(jit_state_t*,jit_int32_t); #define jit_unget_reg_but_zero(reg) jit_unget_reg(reg) #define patch(instr, node) _patch(_jit, instr, node) static void _patch(jit_state_t*,jit_word_t,jit_node_t*); @@ -147,7 +147,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -169,7 +169,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = -8; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -188,8 +188,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -207,13 +207,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -240,7 +240,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); jit_movr(JIT_RET, u); @@ -258,7 +258,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); jit_movr_f(JIT_FRET, u); @@ -276,7 +276,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); jit_movr_d(JIT_FRET, u); @@ -344,7 +344,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -355,7 +355,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -373,7 +373,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_f_reg_p(_jitc->function->self.argf)) offset = _jitc->function->self.argf++; @@ -391,7 +391,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_f_reg_p(_jitc->function->self.argf)) offset = _jitc->function->self.argf++; @@ -406,7 +406,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -414,12 +414,12 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_c(u, _R2 - v->u.w); else jit_ldxi_c(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int8_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int8_t)); jit_dec_synth(); } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -427,12 +427,12 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_uc(u, _R2 - v->u.w); else jit_ldxi_uc(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_uint8_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(uint8_t)); jit_dec_synth(); } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -440,12 +440,12 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_s(u, _R2 - v->u.w); else jit_ldxi_s(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int16_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int16_t)); jit_dec_synth(); } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -453,12 +453,12 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_us(u, _R2 - v->u.w); else jit_ldxi_us(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_uint16_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(uint16_t)); jit_dec_synth(); } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -471,13 +471,13 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } else jit_ldxi_i(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int32_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int32_t)); jit_dec_synth(); } #if __WORDSIZE == 64 void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -485,12 +485,12 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_ui(u, _R2 - v->u.w); else jit_ldxi_ui(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_uint32_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(uint32_t)); jit_dec_synth(); } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -503,7 +503,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #endif void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -517,7 +517,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -532,7 +532,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -549,7 +549,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -567,7 +567,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -586,7 +586,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -598,7 +598,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -612,7 +612,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); if (jit_arg_f_reg_p(v->u.w)) @@ -627,7 +627,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -646,7 +646,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -665,7 +665,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -688,7 +688,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -711,7 +711,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -730,7 +730,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -749,9 +749,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { regno = _R2 - regno; @@ -767,7 +767,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -802,7 +802,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -810,7 +810,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -818,7 +818,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -826,7 +826,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -834,7 +834,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); #if __WORDSIZE == 64 @@ -847,7 +847,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) #if __WORDSIZE == 64 void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_ui, r0); jit_extr_ui(r0, JIT_RET); @@ -855,7 +855,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); jit_movr(r0, JIT_RET); @@ -864,7 +864,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) #endif void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); jit_movr_f(r0, JIT_FRET); @@ -872,7 +872,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); jit_movr_d(r0, JIT_FRET); @@ -885,15 +885,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1590,10 +1590,10 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_gpr_t r0, jit_fpr_t r1) stxi_d(i0, rn(r0), rn(r1)); } -static jit_int32_t +static int32_t _jit_get_reg_pair(jit_state_t *_jit) { - jit_int32_t r1, r2; + int32_t r1, r2; /* Try to find a register pair for use with operations that * require a odd based register pair. Search for the best * match to avoid spills or at least a valid operation. @@ -1638,9 +1638,9 @@ _jit_get_reg_pair(jit_state_t *_jit) } static void -_jit_unget_reg_pair(jit_state_t *_jit, jit_int32_t reg) +_jit_unget_reg_pair(jit_state_t *_jit, int32_t reg) { - jit_int32_t r1, r2; + int32_t r1, r2; r1 = reg; switch (r1) { case _R0: r2 = _R1; break; @@ -1655,10 +1655,10 @@ _jit_unget_reg_pair(jit_state_t *_jit, jit_int32_t reg) jit_unget_reg(r2); } -static jit_int32_t -_jit_get_reg_but_zero(jit_state_t *_jit, jit_int32_t flags) +static int32_t +_jit_get_reg_but_zero(jit_state_t *_jit, int32_t flags) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); if (reg == _R0) { reg = jit_get_reg(jit_class_gpr|flags); @@ -1670,7 +1670,7 @@ _jit_get_reg_but_zero(jit_state_t *_jit, jit_int32_t flags) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/sparc-cpu.c b/jit/sparc-cpu.c index a4d88d1ca..246c34814 100644 --- a/jit/sparc-cpu.c +++ b/jit/sparc-cpu.c @@ -49,32 +49,32 @@ */ # define stack_framesize ((16 + (__WORDSIZE == 32) + 6) * sizeof(jit_word_t)) typedef union { - struct { jit_uint32_t b: 2; } op; - struct { jit_uint32_t _: 2; jit_uint32_t b: 1; } a; - struct { jit_uint32_t _: 2; jit_uint32_t b: 5; } rd; - struct { jit_uint32_t _: 2; jit_uint32_t b: 30; } disp30; - struct { jit_uint32_t _: 3; jit_uint32_t b: 4; } cond; - struct { jit_uint32_t _: 7; jit_uint32_t b: 3; } op2; - struct { jit_uint32_t _: 7; jit_uint32_t b: 6; } op3; - struct { jit_uint32_t _: 10; jit_uint32_t b: 1; } cc1; - struct { jit_uint32_t _: 10; jit_uint32_t b: 22; } imm22; - struct { jit_uint32_t _: 10; jit_uint32_t b: 22; } disp22; - struct { jit_uint32_t _: 11; jit_uint32_t b: 1; } cc0; - struct { jit_uint32_t _: 12; jit_uint32_t b: 1; } p; - struct { jit_uint32_t _: 13; jit_uint32_t b: 19; } disp19; - struct { jit_uint32_t _: 13; jit_uint32_t b: 5; } rs1; - struct { jit_uint32_t _: 18; jit_uint32_t b: 1; } i; - struct { jit_uint32_t _: 18; jit_uint32_t b: 9; } opf; - struct { jit_uint32_t _: 19; jit_uint32_t b: 1; } x; - struct { jit_uint32_t _: 19; jit_uint32_t b: 8; } asi; - struct { jit_uint32_t _: 19; jit_uint32_t b: 6; } res; - struct { jit_uint32_t _: 19; jit_uint32_t b: 13; } simm13; - struct { jit_uint32_t _: 20; jit_uint32_t b: 7; } asix; - struct { jit_uint32_t _: 20; jit_uint32_t b: 6; } asis; - struct { jit_uint32_t _: 26; jit_uint32_t b: 6; } shim; - struct { jit_uint32_t _: 25; jit_uint32_t b: 7; } imm7; - struct { jit_uint32_t _: 27; jit_uint32_t b: 5; } rs2; - jit_int32_t v; + struct { uint32_t b: 2; } op; + struct { uint32_t _: 2; jit_uint32_t b: 1; } a; + struct { uint32_t _: 2; jit_uint32_t b: 5; } rd; + struct { uint32_t _: 2; jit_uint32_t b: 30; } disp30; + struct { uint32_t _: 3; jit_uint32_t b: 4; } cond; + struct { uint32_t _: 7; jit_uint32_t b: 3; } op2; + struct { uint32_t _: 7; jit_uint32_t b: 6; } op3; + struct { uint32_t _: 10; jit_uint32_t b: 1; } cc1; + struct { uint32_t _: 10; jit_uint32_t b: 22; } imm22; + struct { uint32_t _: 10; jit_uint32_t b: 22; } disp22; + struct { uint32_t _: 11; jit_uint32_t b: 1; } cc0; + struct { uint32_t _: 12; jit_uint32_t b: 1; } p; + struct { uint32_t _: 13; jit_uint32_t b: 19; } disp19; + struct { uint32_t _: 13; jit_uint32_t b: 5; } rs1; + struct { uint32_t _: 18; jit_uint32_t b: 1; } i; + struct { uint32_t _: 18; jit_uint32_t b: 9; } opf; + struct { uint32_t _: 19; jit_uint32_t b: 1; } x; + struct { uint32_t _: 19; jit_uint32_t b: 8; } asi; + struct { uint32_t _: 19; jit_uint32_t b: 6; } res; + struct { uint32_t _: 19; jit_uint32_t b: 13; } simm13; + struct { uint32_t _: 20; jit_uint32_t b: 7; } asix; + struct { uint32_t _: 20; jit_uint32_t b: 6; } asis; + struct { uint32_t _: 26; jit_uint32_t b: 6; } shim; + struct { uint32_t _: 25; jit_uint32_t b: 7; } imm7; + struct { uint32_t _: 27; jit_uint32_t b: 5; } rs2; + int32_t v; } jit_instr_t; # define ii(i) *_jit->pc.ui++ = i # define s7_p(imm) ((imm) <= 63 && (imm) >= -64) @@ -83,39 +83,39 @@ typedef union { # define s22_p(imm) ((imm) <= 2097151 && (imm) >= -20971512) # define s30_p(imm) ((imm) <= 536870911 && (imm) >= -536870912) # define f1(op, disp30) _f1(_jit, op, disp30) -static void _f1(jit_state_t*,jit_int32_t,jit_int32_t); +static void _f1(jit_state_t*,int32_t,jit_int32_t); # define f2r(op, rd, op2, imm22) _f2r(_jit, op, rd, op2, imm22) -static void _f2r(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _f2r(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define f2b(op, a, cond, op2, disp22) _f2b(_jit, op, a, cond, op2, disp22) static void -_f2b(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +_f2b(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # if __WORDSIZE == 64 # define f2bp(op,a,cond,op2,cc1,cc0,p,disp19) \ _f2bp(_jit,op,a,cond,op2,cc1,cc0,p,disp19) static void -_f2bp(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t); +_f2bp(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_int32_t); # endif # define f3r(op, rd, op3, rs1, rs2) _f3r(_jit, op, rd, op3, rs1, rs2) static void _f3r(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # if __WORDSIZE == 64 # define f3rx(op, rd, op3, rs1, rs2) _f3rx(_jit, op, rd, op3, rs1, rs2) static void _f3rx(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # endif # define f3i(op, rd, op3, rs1, simm13) _f3i(_jit, op, rd, op3, rs1, simm13) static void _f3i(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define f3s(op, rd, op3, rs1, simm13) _f3s(_jit, op, rd, op3, rs1, simm13) static void _f3s(jit_state_t*, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); + int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define f3t(cond, rs1, i, ri) _f3t(_jit, cond, rs1, i, ri) -static void _f3t(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) +static void _f3t(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; # define f3a(op, rd, op3, rs1, rs2) _f3a(_jit, op, rd, op3, rs1, asi, rs2) -static void _f3a(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) +static void _f3a(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; # define LDSB(rs1, rs2, rd) f3r(3, rd, 9, rs1, rs2) # define LDSBI(rs1, imm, rd) f3i(3, rd, 9, rs1, imm) @@ -538,122 +538,122 @@ static void _f3a(jit_state_t*,jit_int32_t, # define FLUSH(rs1, rs2) f3r(2, 0, 59, rs1, rs2) # define FLUSHI(rs1, im) f3i(2, 0, 59, rs1, imm) # define nop(i0) _nop(_jit, i0) -static void _nop(jit_state_t*, jit_int32_t); +static void _nop(jit_state_t*, int32_t); # define movr(r0, r1) _movr(_jit, r0, r1) -static void _movr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _movr(jit_state_t*, int32_t, jit_int32_t); # define movi(r0, i0) _movi(_jit, r0, i0) -static void _movi(jit_state_t*, jit_int32_t, jit_word_t); +static void _movi(jit_state_t*, int32_t, jit_word_t); # define movi_p(r0, i0) _movi_p(_jit, r0, i0) -static jit_word_t _movi_p(jit_state_t*, jit_int32_t, jit_word_t); +static jit_word_t _movi_p(jit_state_t*, int32_t, jit_word_t); # define comr(r0, r1) XNOR(r1, 0, r0) # define negr(r0, r1) NEG(r1, r0) # define addr(r0, r1, r2) ADD(r1, r2, r0) # define addi(r0, r1, i0) _addi(_jit, r0, r1, i0) -static void _addi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define addcr(r0, r1, r2) ADDcc(r1, r2, r0) # else # define addcr(r0, r1, r2) _addcr(_jit, r0, r1, r2) -static void _addcr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # endif # define addci(r0, r1, i0) _addci(_jit, r0, r1, i0) -static void _addci(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define addxr(r0, r1, r2) ADDXcc(r1, r2, r0) # else # define addxr(r0, r1, r2) _addxr(_jit, r0, r1, r2) -static void _addxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # endif # define addxi(r0, r1, i0) _addxi(_jit, r0, r1, i0) -static void _addxi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define subr(r0, r1, r2) SUB(r1, r2, r0) # define subi(r0, r1, i0) _subi(_jit, r0, r1, i0) -static void _subi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _subi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define subcr(r0, r1, r2) SUBcc(r1, r2, r0) # else # define subcr(r0, r1, r2) _subcr(_jit, r0, r1, r2) -static void _subcr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _subcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # endif # define subci(r0, r1, i0) _subci(_jit, r0, r1, i0) -static void _subci(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _subci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define subxr(r0, r1, r2) SUBXcc(r1, r2, r0) # else # define subxr(r0, r1, r2) _subxr(_jit, r0, r1, r2) -static void _subxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _subxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # endif # define subxi(r0, r1, i0) _subxi(_jit, r0, r1, i0) -static void _subxi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _subxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define mulr(r0, r1, r2) UMUL(r1, r2, r0) # else # define mulr(r0, r1, r2) MULX(r1, r2, r0) # endif # define muli(r0, r1, i0) _muli(_jit, r0, r1, i0) -static void _muli(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _muli(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) -static void _iqmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) -static void _iqmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # else # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) -static void _qmulr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t); +static void _qmulr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t); # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) -static void _qmuli(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t); +static void _qmuli(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t); # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) -static void _qmulr_u(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t); +static void _qmulr_u(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t); # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) -static void _qmuli_u(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t); +static void _qmuli_u(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t); # endif # define divr(r0, r1, r2) _divr(_jit, r0, r1, r2) -static void _divr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _divr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define divi(r0, r1, i0) _divi(_jit, r0, r1, i0) -static void _divi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _divi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define divr_u(r0, r1, r2) _divr_u(_jit, r0, r1, r2) -static void _divr_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _divr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define divi_u(r0, r1, i0) _divi_u(_jit, r0, r1, i0) -static void _divi_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _divi_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) -static void _iqdivr(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_int32_t,jit_bool_t); +static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_int32_t,jit_bool_t); # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) -static void _iqdivi(jit_state_t*,jit_int32_t,jit_int32_t, - jit_int32_t,jit_word_t,jit_bool_t); +static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, + int32_t,jit_word_t,jit_bool_t); # define remr(r0, r1, r2) _remr(_jit, r0, r1, r2) -static void _remr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _remr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define remi(r0, r1, i0) _remi(_jit, r0, r1, i0) -static void _remi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _remi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define remr_u(r0, r1, r2) _remr_u(_jit, r0, r1, r2) -static void _remr_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _remr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define remi_u(r0, r1, i0) _remi_u(_jit, r0, r1, i0) -static void _remi_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _remi_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define andr(r0, r1, r2) AND(r1, r2, r0) # define andi(r0, r1, i0) _andi(_jit, r0, r1, i0) -static void _andi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _andi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define orr(r0, r1, r2) OR(r1, r2, r0) # define ori(r0, r1, i0) _ori(_jit, r0, r1, i0) -static void _ori(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ori(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define xorr(r0, r1, r2) XOR(r1, r2, r0) # define xori(r0, r1, i0) _xori(_jit, r0, r1, i0) -static void _xori(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _xori(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __WORDSIZE == 32 # define lshr(r0, r1, r2) SLL(r1, r2, r0) # define lshi(r0, r1, i0) SLLI(r1, i0, r0) @@ -671,26 +671,26 @@ static void _xori(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); # endif # define htonr_us(r0,r1) extr_us(r0,r1) # define extr_c(r0,r1) _extr_c(_jit,r0,r1) -static void _extr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_c(jit_state_t*,int32_t,jit_int32_t); # define extr_uc(r0,r1) andi(r0, r1, 0xff) # define extr_s(r0,r1) _extr_s(_jit,r0,r1) -static void _extr_s(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_s(jit_state_t*,int32_t,jit_int32_t); # define extr_us(r0,r1) _extr_us(_jit,r0,r1) -static void _extr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_us(jit_state_t*,int32_t,jit_int32_t); # if __WORDSIZE == 32 # define htonr_ui(r0,r1) movr(r0,r1) # else # define htonr_ui(r0,r1) extr_ui(r0,r1) # define htonr_ul(r0,r1) movr(r0,r1) # define extr_i(r0,r1) _extr_i(_jit,r0,r1) -static void _extr_i(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_i(jit_state_t*,int32_t,jit_int32_t); # define extr_ui(r0,r1) _extr_ui(_jit,r0,r1) -static void _extr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_ui(jit_state_t*,int32_t,jit_int32_t); # endif # define cr(cc, r0, r1, r2) _cr(_jit, cc, r0, r1, r2) -static void _cr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _cr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define cw(cc, r0, r1, i0) _cw(_jit, cc, r0, r1, i0) -static void _cw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); +static void _cw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define ltr(r0, r1, r2) cr(SPARC_BL, r0, r1, r2) # define lti(r0, r1, i0) cw(SPARC_BL, r0, r1, i0) @@ -736,16 +736,16 @@ static void _cw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); # endif # define ldr_c(r0, r1) LDSB(r1, 0, r0) # define ldi_c(r0, i0) _ldi_c(_jit, r0, i0) -static void _ldi_c(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_c(jit_state_t*,int32_t,jit_word_t); # define ldr_uc(r0, r1) LDUB(r1, 0, r0) # define ldi_uc(r0, i0) _ldi_uc(_jit, r0, i0) -static void _ldi_uc(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); # define ldr_s(r0, r1) LDSH(r1, 0, r0) # define ldi_s(r0, i0) _ldi_s(_jit, r0, i0) -static void _ldi_s(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_s(jit_state_t*,int32_t,jit_word_t); # define ldr_us(r0, r1) LDUH(r1, 0, r0) # define ldi_us(r0, i0) _ldi_us(_jit, r0, i0) -static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_us(jit_state_t*,int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldr_i(r0, r1) LD(r1, 0, r0) # define ldr(u, v) ldr_i(u, v) @@ -758,25 +758,25 @@ static void _ldi_us(jit_state_t*,jit_int32_t,jit_word_t); # define ldi(u, v) ldi_l(u, v) # endif # define ldi_i(r0, i0) _ldi_i(_jit, r0, i0) -static void _ldi_i(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_i(jit_state_t*,int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldi_ui(r0, i0) _ldi_ui(_jit, r0, i0) -static void _ldi_ui(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); # define ldi_l(r0, i0) _ldi_l(_jit, r0, i0) -static void _ldi_l(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_l(jit_state_t*,int32_t,jit_word_t); # endif # define ldxr_c(r0, r1, r2) LDSB(r1, r2, r0) # define ldxi_c(r0, r1, i0) _ldxi_c(_jit, r0, r1, i0) -static void _ldxi_c(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_uc(r0, r1, r2) LDUB(r1, r2, r0) # define ldxi_uc(r0, r1, i0) _ldxi_uc(_jit, r0, r1, i0) -static void _ldxi_uc(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_s(r0, r1, r2) LDSH(r1, r2, r0) # define ldxi_s(r0, r1, i0) _ldxi_s(_jit, r0, r1, i0) -static void _ldxi_s(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxr_us(r0, r1, r2) LDUH(r1, r2, r0) # define ldxi_us(r0, r1, i0) _ldxi_us(_jit, r0, r1, i0) -static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldxr(u, v, w) ldxr_i(u, v, w) # define ldxr_i(r0, r1, r2) LD(r1, r2, r0) @@ -789,19 +789,19 @@ static void _ldxi_us(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # define ldxi(u, v, w) ldxi_l(u, v, w) # endif # define ldxi_i(r0, r1, i0) _ldxi_i(_jit, r0, r1, i0) -static void _ldxi_i(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 64 # define ldxi_ui(r0, r1, i0) _ldxi_ui(_jit, r0, r1, i0) -static void _ldxi_ui(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define ldxi_l(r0, r1, i0) _ldxi_l(_jit, r0, r1, i0) -static void _ldxi_l(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # endif # define str_c(r0, r1) STB(r1, r0, 0) # define sti_c(i0, r0) _sti_c(_jit, i0, r0) -static void _sti_c(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_c(jit_state_t*,jit_word_t,int32_t); # define str_s(r0, r1) STH(r1, r0, 0) # define sti_s(i0, r0) _sti_s(_jit, i0, r0) -static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_s(jit_state_t*,jit_word_t,int32_t); # if __WORDSIZE == 32 # define str(u, v) str_i(u, v) # define str_i(r0, r1) STI(r1, r0, 0) @@ -813,17 +813,17 @@ static void _sti_s(jit_state_t*,jit_word_t,jit_int32_t); # define sti(u, v) sti_l(u, v) # endif # define sti_i(i0, r0) _sti_i(_jit, i0, r0) -static void _sti_i(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_i(jit_state_t*,jit_word_t,int32_t); # if __WORDSIZE == 64 # define sti_l(i0, r0) _sti_l(_jit, i0, r0) -static void _sti_l(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_l(jit_state_t*,jit_word_t,int32_t); # endif # define stxr_c(r0, r1, r2) STB(r2, r1, r0) # define stxi_c(i0, r0, r1) _stxi_c(_jit, i0, r0, r1) -static void _stxi_c(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define stxr_s(r0, r1, r2) STH(r2, r1, r0) # define stxi_s(i0, r0, r1) _stxi_s(_jit, i0, r0, r1) -static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __WORDSIZE == 32 # define stxr(u, v, w) stxr_i(u, v, w) # define stxr_i(r0, r1, r2) ST(r2, r1, r0) @@ -835,17 +835,17 @@ static void _stxi_s(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); # define stxr_l(r0, r1, r2) STX(r2, r1, r0) # endif # define stxi_i(i0, r0, r1) _stxi_i(_jit, i0, r0, r1) -static void _stxi_i(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # if __WORDSIZE == 64 # define stxi_l(i0, r0, r1) _stxi_l(_jit, i0, r0, r1) -static void _stxi_l(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # endif # define br(cc, i0, r0, r1) _br(_jit, cc, i0, r0, r1) static jit_word_t -_br(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_br(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define bw(cc, i0, r0, i1) _bw(_jit, cc, i0, r0, i1) static jit_word_t -_bw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +_bw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define bltr(i0, r0, r1) br(SPARC_BL, i0, r0, r1) # define blti(i0, r0, i1) bw(SPARC_BL, i0, r0, i1) @@ -892,11 +892,11 @@ _bw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); # define b_asr(jif,add,sgn,i0,r0,r1) _b_asr(_jit,jif,add,sgn,i0,r0,r1) static jit_word_t _b_asr(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_int32_t); + jit_word_t,int32_t,jit_int32_t); # define b_asw(jif,add,sgn,i0,r0,i1) _b_asw(_jit,jif,add,sgn,i0,r0,i1) static jit_word_t _b_asw(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t, - jit_word_t,jit_int32_t,jit_word_t); + jit_word_t,int32_t,jit_word_t); # define boaddr(i0, r0, r1) b_asr(1, 1, 1, i0, r0, r1) # define boaddi(i0, r0, i1) b_asw(1, 1, 1, i0, r0, i1) # define boaddr_u(i0, r0, r1) b_asr(1, 1, 0, i0, r0, r1) @@ -915,22 +915,22 @@ _b_asw(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t, # define bxsubi_u(i0, r0, i1) b_asw(0, 0, 0, i0, r0, i1) # define bm_r(set, i0, r0, r1) _bm_r(_jit,set,i0,r0,r1) static jit_word_t -_bm_r(jit_state_t*,jit_bool_t,jit_word_t,jit_int32_t,jit_int32_t); +_bm_r(jit_state_t*,jit_bool_t,jit_word_t,int32_t,jit_int32_t); # define bm_w(set,i0,r0,i1) _bm_w(_jit,set,i0,r0,i1) static jit_word_t -_bm_w(jit_state_t*,jit_bool_t,jit_word_t,jit_int32_t,jit_word_t); +_bm_w(jit_state_t*,jit_bool_t,jit_word_t,int32_t,jit_word_t); # define bmsr(i0, r0, r1) bm_r(1, i0, r0, r1) # define bmsi(i0, r0, i1) bm_w(1, i0, r0, i1) # define bmcr(i0, r0, r1) bm_r(0, i0, r0, r1) # define bmci(i0, r0, i1) bm_w(0, i0, r0, i1) # define jmpr(r0) _jmpr(_jit, r0) -static void _jmpr(jit_state_t*,jit_int32_t); +static void _jmpr(jit_state_t*,int32_t); # define jmpi(i0) _jmpi(_jit, i0) static void _jmpi(jit_state_t*,jit_word_t); # define jmpi_p(i0) _jmpi_p(_jit, i0) static jit_word_t _jmpi_p(jit_state_t*,jit_word_t); # define callr(r0) _callr(_jit, r0) -static void _callr(jit_state_t*,jit_int32_t); +static void _callr(jit_state_t*,int32_t); # define calli(i0) _calli(_jit, i0) static void _calli(jit_state_t*,jit_word_t); # define calli_p(i0) _calli_p(_jit, i0) @@ -940,9 +940,9 @@ static void _prolog(jit_state_t*,jit_node_t*); # define epilog(node) _epilog(_jit, node) static void _epilog(jit_state_t*,jit_node_t*); #define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); #define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); #define patch_at(jump, label) _patch_at(_jit, jump, label) static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #endif @@ -950,7 +950,7 @@ static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); #if CODE static void _f2r(jit_state_t *_jit, - jit_int32_t op, jit_int32_t rd, jit_int32_t op2, jit_int32_t imm22) + int32_t op, jit_int32_t rd, jit_int32_t op2, jit_int32_t imm22) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -966,8 +966,8 @@ _f2r(jit_state_t *_jit, static void _f2b(jit_state_t *_jit, - jit_int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, - jit_int32_t disp22) + int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, + int32_t disp22) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -986,8 +986,8 @@ _f2b(jit_state_t *_jit, # if __WORDSIZE == 64 static void _f2bp(jit_state_t *_jit, - jit_int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, - jit_int32_t cc1, jit_int32_t cc0, jit_int32_t p, jit_int32_t disp19) + int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, + int32_t cc1, jit_int32_t cc0, jit_int32_t p, jit_int32_t disp19) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1008,8 +1008,8 @@ _f2bp(jit_state_t *_jit, # endif static void -_f3r(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t rs2) +_f3r(jit_state_t *_jit, int32_t op, jit_int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t rs2) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1029,8 +1029,8 @@ _f3r(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, # if __WORDSIZE == 64 static void -_f3rx(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t rs2) +_f3rx(jit_state_t *_jit, int32_t op, jit_int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t rs2) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1050,8 +1050,8 @@ _f3rx(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, } static void -_f3s(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t shim) +_f3s(jit_state_t *_jit, int32_t op, jit_int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t shim) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1072,8 +1072,8 @@ _f3s(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, # endif static void -_f3i(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t simm13) +_f3i(jit_state_t *_jit, int32_t op, jit_int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t simm13) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1091,8 +1091,8 @@ _f3i(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, } static void -_f3t(jit_state_t *_jit, jit_int32_t cond, - jit_int32_t rs1, jit_int32_t i, jit_int32_t rs2_imm7) +_f3t(jit_state_t *_jit, int32_t cond, + int32_t rs1, jit_int32_t i, jit_int32_t rs2_imm7) { jit_instr_t v; assert(!(cond & 0xfffffff0)); @@ -1116,8 +1116,8 @@ _f3t(jit_state_t *_jit, jit_int32_t cond, } static void -_f3a(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t asi, jit_int32_t rs2) +_f3a(jit_state_t *_jit, int32_t op, jit_int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t asi, jit_int32_t rs2) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1137,7 +1137,7 @@ _f3a(jit_state_t *_jit, jit_int32_t op, jit_int32_t rd, } static void -_f1(jit_state_t *_jit, jit_int32_t op, jit_int32_t disp30) +_f1(jit_state_t *_jit, int32_t op, jit_int32_t disp30) { jit_instr_t v; assert(!(op & 0xfffffffc)); @@ -1148,7 +1148,7 @@ _f1(jit_state_t *_jit, jit_int32_t op, jit_int32_t disp30) } static void -_nop(jit_state_t *_jit, jit_int32_t i0) +_nop(jit_state_t *_jit, int32_t i0) { for (; i0 > 0; i0 -= 4) NOP(); @@ -1156,21 +1156,21 @@ _nop(jit_state_t *_jit, jit_int32_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) ORI(r1, 0, r0); } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { if (s13_p(i0)) ORI(0, i0, r0); else { # if __WORDSIZE == 64 if (i0 & 0xffffffff00000000) { - jit_int32_t reg = jit_get_reg(jit_class_gpr); + int32_t reg = jit_get_reg(jit_class_gpr); movi(rn(reg), (i0 >> 32) & 0xffffffff); movi(r0, i0 & 0xffffffff); lshi(rn(reg), rn(reg), 32); @@ -1189,11 +1189,11 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { jit_word_t w; # if __WORDSIZE == 64 - jit_int32_t reg; + int32_t reg; # endif w = _jit->pc.w; # if __WORDSIZE == 64 @@ -1214,9 +1214,9 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) ADDI(r1, i0, r0); else { @@ -1229,9 +1229,9 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -1249,10 +1249,10 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) # endif static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) ADDIcc(r1, i0, r0); else { @@ -1262,7 +1262,7 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) jit_unget_reg(reg); } # else - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -1281,9 +1281,9 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -1294,10 +1294,10 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) # endif static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) ADDXIcc(r1, i0, r0); else { @@ -1307,7 +1307,7 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) jit_unget_reg(reg); } # else - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -1318,9 +1318,9 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) SUBI(r1, i0, r0); else { @@ -1333,9 +1333,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -1353,10 +1353,10 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) # endif static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) SUBIcc(r1, i0, r0); else { @@ -1366,7 +1366,7 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) jit_unget_reg(reg); } # else - jit_int32_t reg; + int32_t reg; if (jit_carry == _NOREG) jit_carry = jit_get_reg(jit_class_gpr); if (r0 == r1) { @@ -1385,9 +1385,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -1398,10 +1398,10 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) #endif static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) SUBXIcc(r1, i0, r0); else { @@ -1411,7 +1411,7 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) jit_unget_reg(reg); } # else - jit_int32_t reg; + int32_t reg; assert(jit_carry != _NOREG); reg = jit_get_reg(jit_class_gpr); movr(rn(reg), rn(jit_carry)); @@ -1422,16 +1422,16 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 UMULI(r1, i0, r0); @@ -1449,8 +1449,8 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 32 static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { if (sign) SMUL(r2, r3, r0); @@ -1460,10 +1460,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { if (sign) SMULI(r2, i0, r0); @@ -1510,8 +1510,8 @@ static __int128_t __llmul(jit_word_t a, jit_word_t b) } while (0) static void -_qmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3) +_qmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3) { QMUL_PROLOG(); movr(_O0_REGNO, r3); @@ -1523,8 +1523,8 @@ _qmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_qmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0) +_qmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0) { QMUL_PROLOG(); movi(_O0_REGNO, i0); @@ -1541,8 +1541,8 @@ static __uint128_t __ullmul(jit_uword_t a, jit_uword_t b) } static void -_qmulr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3) +_qmulr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3) { QMUL_PROLOG(); movr(_O0_REGNO, r3); @@ -1554,8 +1554,8 @@ _qmulr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_qmuli_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0) +_qmuli_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0) { QMUL_PROLOG(); movi(_O0_REGNO, i0); @@ -1568,10 +1568,10 @@ _qmuli_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, # endif static void -_divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { # if __WORDSIZE == 32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); rshi(rn(reg), r1, 31); WRY(rn(reg), 0); @@ -1583,9 +1583,9 @@ _divr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 32 reg = jit_get_reg(jit_class_gpr); # endif @@ -1614,7 +1614,7 @@ _divi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { # if __WORDSIZE == 32 WRYI(0, 0); @@ -1625,9 +1625,9 @@ _divr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 WRYI(0, 0); @@ -1645,11 +1645,11 @@ _divi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t sv0, rg0; - jit_int32_t sv1, rg1; + int32_t sv0, rg0; + int32_t sv1, rg1; if (r0 == r2 || r0 == r3) { sv0 = jit_get_reg(jit_class_gpr); @@ -1681,10 +1681,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); iqdivr(r0, r1, r2, rn(reg), sign); @@ -1692,9 +1692,9 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr(rn(reg), r1, r2); @@ -1710,9 +1710,9 @@ _remr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr(r0, r1, rn(reg)); @@ -1720,9 +1720,9 @@ _remi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1 || r0 == r2) { reg = jit_get_reg(jit_class_gpr); divr_u(rn(reg), r1, r2); @@ -1738,9 +1738,9 @@ _remr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); remr_u(r0, r1, rn(reg)); @@ -1748,9 +1748,9 @@ _remi_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) ANDI(r1, i0, r0); else { @@ -1762,9 +1762,9 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) ORI(r1, i0, r0); else { @@ -1776,9 +1776,9 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) XORI(r1, i0, r0); else { @@ -1790,21 +1790,21 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, __WORDSIZE - 8); rshi(r0, r0, __WORDSIZE - 8); } static void -_extr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, __WORDSIZE - 16); rshi(r0, r0, __WORDSIZE - 16); } static void -_extr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, __WORDSIZE - 16); rshi_u(r0, r0, __WORDSIZE - 16); @@ -1812,14 +1812,14 @@ _extr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #if __WORDSIZE == 64 static void -_extr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, __WORDSIZE - 32); rshi(r0, r0, __WORDSIZE - 32); } static void -_extr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { lshi(r0, r1, __WORDSIZE - 32); rshi_u(r0, r0, __WORDSIZE - 32); @@ -1827,8 +1827,8 @@ _extr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_cr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_cr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { CMP(r1, r2); # if __WORDSIZE == 32 @@ -1841,10 +1841,10 @@ _cr(jit_state_t *_jit, jit_int32_t cc, } static void -_cw(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_cw(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { CMPI(r1, i0); # if __WORDSIZE == 32 @@ -1864,9 +1864,9 @@ _cw(jit_state_t *_jit, jit_int32_t cc, } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDSBI(0, i0, r0); else { @@ -1878,9 +1878,9 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUBI(0, i0, r0); else { @@ -1892,9 +1892,9 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDSHI(0, i0, r0); else { @@ -1906,9 +1906,9 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUHI(0, i0, r0); else { @@ -1920,9 +1920,9 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 LDI(0, i0, r0); @@ -1940,9 +1940,9 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) # if __WORDSIZE == 64 static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUWI(0, i0, r0); else { @@ -1954,9 +1954,9 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDXI(0, i0, r0); else { @@ -1969,9 +1969,9 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) # endif static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDSBI(r1, i0, r0); else { @@ -1983,9 +1983,9 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUBI(r1, i0, r0); else { @@ -1997,9 +1997,9 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDSHI(r1, i0, r0); else { @@ -2011,9 +2011,9 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUHI(r1, i0, r0); else { @@ -2025,9 +2025,9 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 LDI(r1, i0, r0); @@ -2045,9 +2045,9 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDUWI(r1, i0, r0); else { @@ -2059,9 +2059,9 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDXI(r1, i0, r0); else { @@ -2074,9 +2074,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # endif static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STBI(r0, 0, i0); else { @@ -2088,9 +2088,9 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STHI(r0, 0, i0); else { @@ -2102,9 +2102,9 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 STI(r0, 0, i0); @@ -2122,9 +2122,9 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) # if __WORDSIZE == 64 static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STXI(r0, 0, i0); else { @@ -2137,9 +2137,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) # endif static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STBI(r1, r0, i0); else { @@ -2151,9 +2151,9 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STHI(r1, r0, i0); else { @@ -2165,9 +2165,9 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 32 STI(r1, r0, i0); @@ -2185,9 +2185,9 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STXI(r1, r0, i0); else { @@ -2200,8 +2200,8 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) # endif static jit_word_t -_br(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_br(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; CMP(r0, r1); @@ -2216,11 +2216,11 @@ _br(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_bw(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bw(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (s13_p(i1)) { CMPI(r0, i1); w = _jit->pc.w; @@ -2242,7 +2242,7 @@ _bw(jit_state_t *_jit, jit_int32_t cc, static jit_word_t _b_asr(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; if (add) @@ -2267,10 +2267,10 @@ _b_asr(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn, static jit_word_t _b_asw(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (s13_p(i1)) { if (add) ADDIcc(r0, i1, r0); @@ -2301,7 +2301,7 @@ _b_asw(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn, static jit_word_t _bm_r(jit_state_t *_jit, jit_bool_t set, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; BTST(r0, r1); @@ -2317,10 +2317,10 @@ _bm_r(jit_state_t *_jit, jit_bool_t set, static jit_word_t _bm_w(jit_state_t *_jit, jit_bool_t set, - jit_word_t i0, jit_int32_t r0, jit_word_t i1) + jit_word_t i0, int32_t r0, jit_word_t i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; if (s13_p(i1)) { BTSTI(r0, i1); w = _jit->pc.w; @@ -2341,7 +2341,7 @@ _bm_w(jit_state_t *_jit, jit_bool_t set, } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { JMPL(0, r0, 0); NOP(); @@ -2351,7 +2351,7 @@ static void _jmpi(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; w = (i0 - _jit->pc.w) >> 2; if (s22_p(w)) { BA(w); @@ -2369,7 +2369,7 @@ static jit_word_t _jmpi_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr|jit_class_nospill); w = movi_p(rn(reg), i0); jmpr(rn(reg)); @@ -2378,7 +2378,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { CALL(r0); NOP(); @@ -2397,7 +2397,7 @@ static jit_word_t _calli_p(jit_state_t *_jit, jit_word_t i0) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); w = movi_p(rn(reg), i0); callr(rn(reg)); @@ -2409,9 +2409,9 @@ _calli_p(jit_state_t *_jit, jit_word_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg; + int32_t reg; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -2488,7 +2488,7 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { /* Initialize stack pointer to the first stack argument. */ if (jit_arg_reg_p(_jitc->function->vagp)) @@ -2500,7 +2500,7 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); @@ -2516,7 +2516,7 @@ _patch_at(jit_state_t *_jit, jit_word_t instr, jit_word_t label) { jit_instr_t i; union { - jit_int32_t *i; + int32_t *i; jit_word_t w; } u; diff --git a/jit/sparc-fpu.c b/jit/sparc-fpu.c index c56b211e9..355096683 100644 --- a/jit/sparc-fpu.c +++ b/jit/sparc-fpu.c @@ -92,7 +92,7 @@ # define FPop2(rd, rs1, opf, rs2) f3f(rd, 53, rs1, opf, rs2) # define f3f(rd, op3, rs1, opf, rs2) _f3f(_jit, rd, op3, rs1, opf, rs2) static void -_f3f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, jit_int32_t,jit_int32_t); +_f3f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, jit_int32_t,jit_int32_t); # define FITOS(rs2, rd) FPop1(rd, 0, 196, rs2) # define FITOD(rs2, rd) FPop1(rd, 0, 200, rs2) # define FITOQ(rs2, rd) FPop1(rd, 0, 204, rs2) @@ -168,7 +168,7 @@ _f3f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, jit_int32_t,jit_int32_t); # define CPop1(rd, rs1, opc, rs2) f3f(rd, 54, rs1, opf, rs2) # define CPop2(rd, rs1, opc, rs2) f3f(rd, 55, rs1, opf, rs2) # define extr_f(r0, r1) _extr_f(_jit, r0, r1) -static void _extr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _extr_f(jit_state_t*, int32_t, jit_int32_t); # if __WORDSIZSE == 32 # define truncr_f(r0, r1) truncr_f_i(r0, r1) # define truncr_d(r0, r1) truncr_d_i(r0, r1) @@ -177,60 +177,60 @@ static void _extr_f(jit_state_t*, jit_int32_t, jit_int32_t); # define truncr_d(r0, r1) truncr_d_l(r0, r1) # endif # define truncr_f_i(r0, r1) _truncr_f_i(_jit, r0, r1) -static void _truncr_f_i(jit_state_t*, jit_int32_t, jit_int32_t); +static void _truncr_f_i(jit_state_t*, int32_t, jit_int32_t); # if __WORDSIZE == 64 # define truncr_f_l(r0, r1) _truncr_f_l(_jit, r0, r1) -static void _truncr_f_l(jit_state_t*, jit_int32_t, jit_int32_t); +static void _truncr_f_l(jit_state_t*, int32_t, jit_int32_t); # endif # if __WORDSIZE == 32 # define extr_d_f(r0, r1) FDTOS(r1, r0) # else # define extr_d_f(r0, r1) _extr_d_f(_jit, r0, r1) -static void _extr_d_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _extr_d_f(jit_state_t*, int32_t, jit_int32_t); # endif # define movi_f(r0, i0) _movi_f(_jit, r0, i0) # if __WORDSIZE == 32 # define movr_f(r0, r1) FMOVS(r1, r0) # else # define movr_f(r0, r1) _movr_f(_jit, r0, r1) -static void _movr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _movr_f(jit_state_t*, int32_t, jit_int32_t); # endif -static void _movi_f(jit_state_t*, jit_int32_t, jit_float32_t*); +static void _movi_f(jit_state_t*, int32_t, jit_float32_t*); # if __WORDSIZE == 32 # define negr_f(r0, r1) FNEGS(r1, r0) # define absr_f(r0, r1) FABSS(r1, r0) # define sqrtr_f(r0, r1) FSQRTS(r1, r0) # else # define negr_f(r0, r1) _negr_f(_jit, r0, r1) -static void _negr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _negr_f(jit_state_t*, int32_t, jit_int32_t); # define absr_f(r0, r1) _absr_f(_jit, r0, r1) -static void _absr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _absr_f(jit_state_t*, int32_t, jit_int32_t); # define sqrtr_f(r0, r1) _sqrtr_f(_jit, r0, r1) -static void _sqrtr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _sqrtr_f(jit_state_t*, int32_t, jit_int32_t); # endif # define extr_d(r0, r1) _extr_d(_jit, r0, r1) -static void _extr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _extr_d(jit_state_t*, int32_t, jit_int32_t); # define truncr_d_i(r0, r1) _truncr_d_i(_jit, r0, r1) -static void _truncr_d_i(jit_state_t*, jit_int32_t, jit_int32_t); +static void _truncr_d_i(jit_state_t*, int32_t, jit_int32_t); # if __WORDSIZE == 64 # define truncr_d_l(r0, r1) _truncr_d_l(_jit, r0, r1) -static void _truncr_d_l(jit_state_t*, jit_int32_t, jit_int32_t); +static void _truncr_d_l(jit_state_t*, int32_t, jit_int32_t); # endif # if __WORDSIZE == 32 # define extr_f_d(r0, r1) FSTOD(r1, r0) # else # define extr_f_d(r0, r1) _extr_f_d(_jit, r0, r1) -static void _extr_f_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _extr_f_d(jit_state_t*, int32_t, jit_int32_t); # endif # define movi_d(r0, i0) _movi_d(_jit, r0, i0) -static void _movi_d(jit_state_t*, jit_int32_t, jit_float64_t*); +static void _movi_d(jit_state_t*, int32_t, jit_float64_t*); # if __WORDSIZE == 32 # define movr_d(r0, r1) _movr_d(_jit, r0, r1) -static void _movr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _movr_d(jit_state_t*, int32_t, jit_int32_t); # define negr_d(r0, r1) _negr_d(_jit, r0, r1) -static void _negr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _negr_d(jit_state_t*, int32_t, jit_int32_t); # define absr_d(r0, r1) _absr_d(_jit, r0, r1) -static void _absr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _absr_d(jit_state_t*, int32_t, jit_int32_t); # else # define movr_d(r0, r1) FMOVD(r1, r0) # define negr_d(r0, r1) FNEGD(r1, r0) @@ -238,17 +238,17 @@ static void _absr_d(jit_state_t*, jit_int32_t, jit_int32_t); # endif # define sqrtr_d(r0, r1) FSQRTD(r1, r0) # define fop1f(op, r0, r1, i0) _fop1f(_jit, op, r0, r1, i0) -static void _fop1f(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float32_t*); +static void _fop1f(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float32_t*); # define rfop1f(op, r0, r1, i0) _rfop1f(_jit, op, r0, r1, i0) -static void _rfop1f(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float32_t*); +static void _rfop1f(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float32_t*); # define fop1d(op, r0, r1, i0) _fop1d(_jit, op, r0, r1, i0) -static void _fop1d(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float64_t*); +static void _fop1d(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float64_t*); # define rfop1d(op, r0, r1, i0) _rfop1d(_jit, op, r0, r1, i0) -static void _rfop1d(jit_state_t*,jit_int32_t, - jit_int32_t,jit_int32_t,jit_float64_t*); +static void _rfop1d(jit_state_t*,int32_t, + int32_t,jit_int32_t,jit_float64_t*); # if __WORDSIZE == 32 # define addr_f(r0, r1, r2) FADDS(r1, r2, r0) # define subr_f(r0, r1, r2) FSUBS(r1, r2, r0) @@ -256,8 +256,8 @@ static void _rfop1d(jit_state_t*,jit_int32_t, # define divr_f(r0, r1, r2) FDIVS(r1, r2, r0) # else # define fop2f(op, r0, r1, r2) _fop2f(_jit, op, r0, r1, r2) -static void _fop2f(jit_state_t*, jit_int32_t, - jit_int32_t, jit_int32_t, jit_int32_t); +static void _fop2f(jit_state_t*, int32_t, + int32_t, jit_int32_t, jit_int32_t); # define addr_f(r0, r1, r2) fop2f(SPARC_FADDS, r0, r1, r2) # define subr_f(r0, r1, r2) fop2f(SPARC_FSUBS, r0, r1, r2) # define mulr_f(r0, r1, r2) fop2f(SPARC_FMULS, r0, r1, r2) @@ -282,10 +282,10 @@ static void _fop2f(jit_state_t*, jit_int32_t, # define divr_d(r0, r1, r2) FDIVD(r1, r2, r0) # define divi_d(r0, r1, i0) fop1d(SPARC_FDIVD, r0, r1, i0) #define fcr(cc, r0, r1, r2) _fcr(_jit, cc, r0, r1, r2) -static void _fcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _fcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define fcw(cc, r0, r1, i0) _fcw(_jit, cc, r0, r1, i0) static void -_fcw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_float32_t*); +_fcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float32_t*); # define ltr_f(r0, r1, r2) fcr(SPARC_FBL, r0, r1, r2) # define lti_f(r0, r1, i0) fcw(SPARC_FBL, r0, r1, i0) # define ler_f(r0, r1, r2) fcr(SPARC_FBLE, r0, r1, r2) @@ -315,10 +315,10 @@ _fcw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_float32_t*); # define unordr_f(r0, r1, r2) fcr(SPARC_FBU, r0, r1, r2) # define unordi_f(r0, r1, i0) fcw(SPARC_FBU, r0, r1, i0) #define dcr(cc, r0, r1, r2) _dcr(_jit, cc, r0, r1, r2) -static void _dcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _dcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); #define dcw(cc, r0, r1, i0) _dcw(_jit, cc, r0, r1, i0) static void -_dcw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_float64_t*); +_dcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float64_t*); # define ltr_d(r0, r1, r2) dcr(SPARC_FBL, r0, r1, r2) # define lti_d(r0, r1, i0) dcw(SPARC_FBL, r0, r1, i0) # define ler_d(r0, r1, r2) dcr(SPARC_FBLE, r0, r1, r2) @@ -351,52 +351,52 @@ _dcw(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_float64_t*); # define ldr_f(r0, r1) LDF(r1, 0, r0) # else # define ldr_f(r0, r1) _ldr_f(_jit, r0, r1) -static void _ldr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _ldr_f(jit_state_t*,int32_t,jit_int32_t); # endif # define ldi_f(r0, i0) _ldi_f(_jit, r0, i0) -static void _ldi_f(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_f(jit_state_t*,int32_t,jit_word_t); # if __WORDSIZE == 32 # define ldxr_f(r0, r1, r2) LDF(r1, r2, r0) # else # define ldxr_f(r0, r1, r2) _ldxr_f(_jit, r0, r1, r2) -static void _ldxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # endif # define ldxi_f(r0, r1, i0) _ldxi_f(_jit, r0, r1, i0) -static void _ldxi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define str_f(r0, r1) STF(r1, r0, 0) # else # define str_f(r0, r1) _str_f(_jit, r0, r1) -static void _str_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _str_f(jit_state_t*,int32_t,jit_int32_t); # endif # define sti_f(r0, i0) _sti_f(_jit, r0, i0) -static void _sti_f(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_f(jit_state_t*,jit_word_t,int32_t); # if __WORDSIZE == 32 # define stxr_f(r0, r1, r2) STF(r2, r1, r0) # else # define stxr_f(r0, r1, r2) _stxr_f(_jit, r0, r1, r2) -static void _stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # endif # define stxi_f(r0, r1, i0) _stxi_f(_jit, r0, r1, i0) -static void _stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define ldr_d(r0, r1) LDDF(r1, 0, r0) # define ldi_d(r0, i0) _ldi_d(_jit, r0, i0) -static void _ldi_d(jit_state_t*,jit_int32_t,jit_word_t); +static void _ldi_d(jit_state_t*,int32_t,jit_word_t); # define ldxr_d(r0, r1, r2) LDDF(r1, r2, r0) # define ldxi_d(r0, r1, i0) _ldxi_d(_jit, r0, r1, i0) -static void _ldxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define str_d(r0, r1) STDF(r1, r0, 0) # define sti_d(r0, i0) _sti_d(_jit, r0, i0) -static void _sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _sti_d(jit_state_t*,jit_word_t,int32_t); # define stxr_d(r0, r1, r2) STDF(r2, r1, r0) # define stxi_d(r0, r1, i0) _stxi_d(_jit, r0, r1, i0) -static void _stxi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _stxi_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define fbr(cc, i0, r0, r1) _fbr(_jit, cc, i0, r0, r1) static jit_word_t -_fbr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_fbr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define fbw(cc, i0, r0, i1) _fbw(_jit, cc, i0, r0, i1) static jit_word_t -_fbw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float32_t*); +_fbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t*); # define bltr_f(i0, r0, r1) fbr(SPARC_FBL, i0, r0, r1) # define blti_f(i0, r0, i1) fbw(SPARC_FBL, i0, r0, i1) # define bler_f(i0, r0, r1) fbr(SPARC_FBLE, i0, r0, r1) @@ -427,10 +427,10 @@ _fbw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float32_t*); # define bunordi_f(i0, r0, i1) fbw(SPARC_FBU, i0, r0, i1) # define dbr(cc, i0, r0, r1) _dbr(_jit, cc, i0, r0, r1) static jit_word_t -_dbr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +_dbr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define dbw(cc, i0, r0, i1) _dbw(_jit, cc, i0, r0, i1) static jit_word_t -_dbw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float64_t*); +_dbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t*); # define bltr_d(i0, r0, r1) dbr(SPARC_FBL, i0, r0, r1) # define blti_d(i0, r0, i1) dbw(SPARC_FBL, i0, r0, i1) # define bler_d(i0, r0, r1) dbr(SPARC_FBLE, i0, r0, r1) @@ -460,13 +460,13 @@ _dbw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float64_t*); # define bunordr_d(i0, r0, r1) dbr(SPARC_FBU, i0, r0, r1) # define bunordi_d(i0, r0, i1) dbw(SPARC_FBU, i0, r0, i1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); #endif #if CODE static void -_f3f(jit_state_t *_jit, jit_int32_t rd, - jit_int32_t op3, jit_int32_t rs1, jit_int32_t opf, jit_int32_t rs2) +_f3f(jit_state_t *_jit, int32_t rd, + int32_t op3, jit_int32_t rs1, jit_int32_t opf, jit_int32_t rs2) { jit_instr_t v; # if __WORDSIZE == 64 @@ -499,9 +499,9 @@ _f3f(jit_state_t *_jit, jit_int32_t rd, # if __WORDSIZE == 64 static void -_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0, t1; + int32_t t0, t1; if (r0 != r1) { if (single_precision_p(r0)) { if (single_precision_p(r1)) @@ -532,9 +532,9 @@ _movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0, t1; + int32_t t0, t1; if (single_precision_p(r0)) { if (single_precision_p(r1)) FNEGS(r1, r0); @@ -563,9 +563,9 @@ _negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0, t1; + int32_t t0, t1; if (single_precision_p(r0)) { if (single_precision_p(r1)) FABSS(r1, r0); @@ -594,9 +594,9 @@ _absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t t0, t1; + int32_t t0, t1; if (single_precision_p(r0)) { if (single_precision_p(r1)) FSQRTS(r1, r0); @@ -627,9 +627,9 @@ _sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r0)) { reg = jit_get_reg(CLASS_SNG); movr_d(rn(reg), r0); @@ -643,13 +643,13 @@ _extr_d_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.f = *i0; @@ -665,9 +665,9 @@ _movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) # if __WORDSIZE == 64 static void -_extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r1)) { reg = jit_get_reg(CLASS_SNG); movr_d(rn(reg), r1); @@ -680,17 +680,17 @@ _extr_f_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { # if __WORDSIZE == 32 - jit_int32_t i[2]; + int32_t i[2]; # else jit_word_t w; # endif jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; if (_jitc->no_data) { data.d = *i0; @@ -714,7 +714,7 @@ _movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) # if __WORDSIZE == 32 static void -_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(!(r0 & 1)); assert(!(r1 & 1)); @@ -725,7 +725,7 @@ _movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(!(r0 & 1)); assert(!(r1 & 1)); @@ -735,7 +735,7 @@ _negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(!(r0 & 1)); assert(!(r1 & 1)); @@ -748,9 +748,9 @@ _absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 # define single_rrr(NAME, CODE) \ static void \ -NAME(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) \ +NAME(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) \ { \ - jit_int32_t x0, t0, x1, t1, x2, t2, mask = 0; \ + int32_t x0, t0, x1, t1, x2, t2, mask = 0; \ if (!single_precision_p(r0)) { \ mask |= 1; \ t0 = jit_get_reg(CLASS_SNG); \ @@ -802,10 +802,10 @@ NAME(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) \ } static void -_fop2f(jit_state_t *_jit, jit_int32_t op, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_fop2f(jit_state_t *_jit, int32_t op, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t x0, t0, x1, t1, x2, t2, mask = 0; + int32_t x0, t0, x1, t1, x2, t2, mask = 0; if (!single_precision_p(r0)) { mask |= 1; t0 = jit_get_reg(CLASS_SNG); @@ -858,12 +858,12 @@ _fop2f(jit_state_t *_jit, jit_int32_t op, # endif static void -_fop1f(jit_state_t *_jit, jit_int32_t op, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) +_fop1f(jit_state_t *_jit, int32_t op, + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 - jit_int32_t x0, t0, x1, t1, mask = 0; + int32_t x0, t0, x1, t1, mask = 0; # endif reg = jit_get_reg(CLASS_SNG); movi_f(rn(reg), i0); @@ -903,12 +903,12 @@ _fop1f(jit_state_t *_jit, jit_int32_t op, } static void -_rfop1f(jit_state_t *_jit, jit_int32_t op, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) +_rfop1f(jit_state_t *_jit, int32_t op, + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 - jit_int32_t x0, t0, x1, t1, mask = 0; + int32_t x0, t0, x1, t1, mask = 0; # endif reg = jit_get_reg(CLASS_SNG); movi_f(rn(reg), i0); @@ -948,10 +948,10 @@ _rfop1f(jit_state_t *_jit, jit_int32_t op, } static void -_fop1d(jit_state_t *_jit, jit_int32_t op, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) +_fop1d(jit_state_t *_jit, int32_t op, + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_DBL); movi_d(rn(reg), i0); FPop1(r0, r1, op, rn(reg)); @@ -959,10 +959,10 @@ _fop1d(jit_state_t *_jit, jit_int32_t op, } static void -_rfop1d(jit_state_t *_jit, jit_int32_t op, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) +_rfop1d(jit_state_t *_jit, int32_t op, + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_DBL); movi_d(rn(reg), i0); FPop1(r0, rn(reg), op, r1); @@ -970,7 +970,7 @@ _rfop1d(jit_state_t *_jit, jit_int32_t op, } static void -_extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi(BIAS(-8), _FP_REGNO, r1); # if __WORDSIZE == 32 @@ -979,7 +979,7 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # else ldxi_d(r0, _FP_REGNO, BIAS(-8)); if (!single_precision_p(r0)) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_SNG); movr_d(rn(reg), r0); FXTOS(rn(reg), rn(reg)); @@ -992,9 +992,9 @@ _extr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_SNG); # if __WORDSIZE == 64 if (!single_precision_p(r1)) { @@ -1011,9 +1011,9 @@ _truncr_f_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_truncr_f_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_f_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_SNG); # if __WORDSIZE == 64 if (!single_precision_p(r1)) { @@ -1030,11 +1030,11 @@ _truncr_f_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_fcr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_fcr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { # if __WORDSIZE == 64 - jit_int32_t x0, t0, x1, t1, mask = 0; + int32_t x0, t0, x1, t1, mask = 0; if (!single_precision_p(r1)) { mask |= 1; t0 = jit_get_reg(CLASS_SNG); @@ -1067,12 +1067,12 @@ _fcr(jit_state_t *_jit, jit_int32_t cc, } static void -_fcw(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float32_t *i0) +_fcw(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float32_t *i0) { - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 - jit_int32_t x0, t0, mask = 0; + int32_t x0, t0, mask = 0; if (!single_precision_p(r1)) { mask |= 1; t0 = jit_get_reg(CLASS_SNG); @@ -1098,8 +1098,8 @@ _fcw(jit_state_t *_jit, jit_int32_t cc, } static void -_dcr(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_dcr(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { FCMPD(r1, r2); FBa(cc, 3); @@ -1108,10 +1108,10 @@ _dcr(jit_state_t *_jit, jit_int32_t cc, } static void -_dcw(jit_state_t *_jit, jit_int32_t cc, - jit_int32_t r0, jit_int32_t r1, jit_float64_t *i0) +_dcw(jit_state_t *_jit, int32_t cc, + int32_t r0, jit_int32_t r1, jit_float64_t *i0) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_DBL); movi_d(rn(reg), i0); FCMPD(r1, rn(reg)); @@ -1123,9 +1123,9 @@ _dcw(jit_state_t *_jit, jit_int32_t cc, # if __WORDSIZE == 64 static void -_ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r0)) { reg = jit_get_reg(CLASS_SNG); LDF(r1, 0, rn(reg)); @@ -1138,9 +1138,9 @@ _ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 64 if (!single_precision_p(r0)) { @@ -1163,9 +1163,9 @@ _ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) # if __WORDSIZE == 64 static void -_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r0)) { reg = jit_get_reg(CLASS_SNG); LDF(r1, r2, rn(reg)); @@ -1178,9 +1178,9 @@ _ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) # endif static void -_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 64 if (!single_precision_p(r0)) { @@ -1203,9 +1203,9 @@ _ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if __WORDSIZE == 64 static void -_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r1)) { reg = jit_get_reg(CLASS_SNG); movr_d(rn(reg), r1); @@ -1218,9 +1218,9 @@ _str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 64 if (!single_precision_p(r0)) { @@ -1243,9 +1243,9 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) # if __WORDSIZE == 64 static void -_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (!single_precision_p(r2)) { reg = jit_get_reg(CLASS_SNG); movr_d(rn(reg), r2); @@ -1258,9 +1258,9 @@ _stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) # endif static void -_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) { # if __WORDSIZE == 64 if (!single_precision_p(r1)) { @@ -1282,7 +1282,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi(BIAS(-8), _FP_REGNO, r1); # if __WORDSIZE == 32 @@ -1297,9 +1297,9 @@ _extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_SNG); # if __WORDSIZE == 64 if (!single_precision_p(r1)) { @@ -1316,9 +1316,9 @@ _truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __WORDSIZE == 64 static void -_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_DBL); FDTOX(r1, rn(reg)); stxi_d(BIAS(-8), _FP_REGNO, rn(reg)); @@ -1328,9 +1328,9 @@ _truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDDFI(0, i0, r0); else { @@ -1342,9 +1342,9 @@ _ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t i0) +_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t i0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) LDDFI(r1, i0, r0); else { @@ -1356,9 +1356,9 @@ _ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t i0) } static void -_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STDFI(r0, 0, i0); else { @@ -1370,9 +1370,9 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_stxi_d(jit_state_t *_jit, jit_int32_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_d(jit_state_t *_jit, int32_t i0, jit_int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (s13_p(i0)) STDFI(r1, r0, i0); else { @@ -1384,11 +1384,11 @@ _stxi_d(jit_state_t *_jit, jit_int32_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_fbr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0,jit_int32_t r1) +_fbr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0,jit_int32_t r1) { # if __WORDSIZE == 64 - jit_int32_t x0, t0, x1, t1, mask = 0; + int32_t x0, t0, x1, t1, mask = 0; # endif jit_word_t w; # if __WORDSIZE == 64 @@ -1425,13 +1425,13 @@ _fbr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_fbw(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float32_t *i1) +_fbw(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float32_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; # if __WORDSIZE == 64 - jit_int32_t x0, t0, mask = 0; + int32_t x0, t0, mask = 0; if (!single_precision_p(r0)) { mask |= 1; t0 = jit_get_reg(CLASS_SNG); @@ -1458,8 +1458,8 @@ _fbw(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_dbr(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_dbr(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t w; FCMPD(r0, r1); @@ -1470,11 +1470,11 @@ _dbr(jit_state_t *_jit, jit_int32_t cc, } static jit_word_t -_dbw(jit_state_t *_jit, jit_int32_t cc, - jit_word_t i0, jit_int32_t r0, jit_float64_t *i1) +_dbw(jit_state_t *_jit, int32_t cc, + jit_word_t i0, int32_t r0, jit_float64_t *i1) { jit_word_t w; - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(CLASS_DBL); movi_d(rn(reg), i1); FCMPD(r0, rn(reg)); @@ -1486,7 +1486,7 @@ _dbw(jit_state_t *_jit, jit_int32_t cc, } static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { assert(_jitc->function->self.call & jit_call_varargs); diff --git a/jit/sparc.c b/jit/sparc.c index a318bff8c..59783200c 100644 --- a/jit/sparc.c +++ b/jit/sparc.c @@ -168,7 +168,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -194,7 +194,7 @@ _jit_prolog(jit_state_t *_jit) # endif _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -213,8 +213,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -232,13 +232,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -265,7 +265,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); if (JIT_RET != u) @@ -285,7 +285,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (JIT_FRET != u) @@ -306,7 +306,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (JIT_FRET != u) @@ -371,7 +371,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -382,7 +382,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); if (jit_arg_reg_p(_jitc->function->self.argi)) offset = _jitc->function->self.argi++; @@ -404,7 +404,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; # if __WORDSIZE == 64 jit_bool_t inc; # endif @@ -435,7 +435,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; # if __WORDSIZE == 64 jit_bool_t inc; # endif @@ -469,7 +469,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -477,12 +477,12 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_c(u, _I0 + v->u.w); else jit_ldxi_c(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int8_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int8_t)); jit_dec_synth(); } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -490,12 +490,12 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_uc(u, _I0 + v->u.w); else jit_ldxi_uc(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_uint8_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(uint8_t)); jit_dec_synth(); } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -503,12 +503,12 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_s(u, _I0 + v->u.w); else jit_ldxi_s(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int16_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int16_t)); jit_dec_synth(); } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -516,12 +516,12 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_us(u, _I0 + v->u.w); else jit_ldxi_us(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_uint16_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(uint16_t)); jit_dec_synth(); } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -534,13 +534,13 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } else jit_ldxi_i(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int32_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int32_t)); jit_dec_synth(); } # if __WORDSIZE == 64 void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -548,12 +548,12 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) jit_extr_ui(u, _I0 + v->u.w); else jit_ldxi_ui(u, JIT_FP, - v->u.w + (__WORDSIZE >> 3) - sizeof(jit_int32_t)); + v->u.w + (__WORDSIZE >> 3) - sizeof(int32_t)); jit_dec_synth(); } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -566,7 +566,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) # endif void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -580,7 +580,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); if (jit_arg_reg_p(v->u.w)) @@ -595,7 +595,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); assert(_jitc->function); @@ -618,7 +618,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -642,7 +642,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); # if __WORDSIZE == 32 @@ -672,7 +672,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); assert(_jitc->function); @@ -705,9 +705,9 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); # if __WORDSIZE == 32 @@ -748,9 +748,9 @@ void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { # if __WORDSIZE == 32 - jit_int32_t gpr; + int32_t gpr; # endif - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); # if __WORDSIZE == 32 @@ -795,7 +795,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(pushargr, u); jit_link_prepare(); @@ -818,7 +818,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; jit_inc_synth_w(pushargi, u); jit_link_prepare(); if (jit_arg_reg_p(_jitc->function->call.argi)) { @@ -841,7 +841,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(pushargr_f, u); jit_link_prepare(); @@ -884,7 +884,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); # if __WORDSIZE == 32 @@ -933,7 +933,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(pushargr_d, u); jit_link_prepare(); @@ -984,7 +984,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); # if __WORDSIZE == 32 @@ -1041,9 +1041,9 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if ((spec & (jit_class_arg|jit_class_gpr)) == @@ -1065,7 +1065,7 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { jit_node_t *call; assert(_jitc->function); @@ -1100,7 +1100,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, _O0); @@ -1108,7 +1108,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, _O0); @@ -1116,7 +1116,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, _O0); @@ -1124,7 +1124,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, _O0); @@ -1132,7 +1132,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); # if __WORDSIZE == 32 @@ -1146,7 +1146,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) # if __WORDSIZE == 64 void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); if (r0 != _O0) @@ -1155,7 +1155,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); if (r0 != _O0) @@ -1165,7 +1165,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) # endif void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); if (r0 != JIT_FRET) @@ -1174,7 +1174,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); if (r0 != JIT_FRET) @@ -1188,15 +1188,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -1904,7 +1904,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_gpr_t r0, jit_fpr_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) diff --git a/jit/x86-cpu.c b/jit/x86-cpu.c index 18ace1ff8..45147a1a8 100644 --- a/jit/x86-cpu.c +++ b/jit/x86-cpu.c @@ -139,108 +139,108 @@ # define patch_abs(instr, label) \ *(jit_word_t *)(instr - sizeof(jit_word_t)) = label # define patch_rel(instr, label) \ - *(jit_int32_t *)(instr - 4) = label - instr + *(int32_t *)(instr - 4) = label - instr # define patch_rel_char(instr, label) \ - *(jit_int8_t *)(instr - 1) = label - instr + *(int8_t *)(instr - 1) = label - instr # define rex(l, w, r, x, b) _rex(_jit, l, w, r, x, b) static void -_rex(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +_rex(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define rx(rd, md, rb, ri, ms) _rx(_jit, rd, md, rb, ri, ms) static void -_rx(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +_rx(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define nop(n) _nop(_jit, n) -static void _nop(jit_state_t*, jit_int32_t); +static void _nop(jit_state_t*, int32_t); # define emms() is(0x770f) # define lea(md, rb, ri, ms, rd) _lea(_jit, md, rb, ri, ms, rd) static void -_lea(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +_lea(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define pushr(r0) _pushr(_jit, r0) -static void _pushr(jit_state_t*, jit_int32_t) maybe_unused; +static void _pushr(jit_state_t*, int32_t) maybe_unused; # define popr(r0) _popr(_jit, r0) -static void _popr(jit_state_t*, jit_int32_t) maybe_unused; +static void _popr(jit_state_t*, int32_t) maybe_unused; # define xchgr(r0, r1) _xchgr(_jit, r0, r1) -static void _xchgr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _xchgr(jit_state_t*, int32_t, jit_int32_t); # define testr(r0, r1) _testr(_jit, r0, r1) -static void _testr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _testr(jit_state_t*, int32_t, jit_int32_t); # define testi(r0, i0) _testi(_jit, r0, i0) -static void _testi(jit_state_t*, jit_int32_t, jit_word_t); +static void _testi(jit_state_t*, int32_t, jit_word_t); # define cc(code, r0) _cc(_jit, code, r0) -static void _cc(jit_state_t*, jit_int32_t, jit_int32_t); +static void _cc(jit_state_t*, int32_t, jit_int32_t); # define icmpr(r0, r1) alur(X86_CMP, r0, r1) # define alur(code, r0, r1) _alur(_jit, code, r0, r1) -static void _alur(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _alur(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define icmpi(r0, i0) alui(X86_CMP, r0, i0) # define alui(code, r0, i0) _alui(_jit, code, r0, i0) -static void _alui(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _alui(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define iaddr(r0, r1) alur(X86_ADD, r0, r1) # define save(r0) _save(_jit, r0) -static void _save(jit_state_t*, jit_int32_t); +static void _save(jit_state_t*, int32_t); # define load(r0) _load(_jit, r0) -static void _load(jit_state_t*, jit_int32_t); +static void _load(jit_state_t*, int32_t); # define addr(r0, r1, r2) _addr(_jit, r0, r1, r2) -static void _addr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define iaddi(r0, i0) alui(X86_ADD, r0, i0) # define addi(r0, r1, i0) _addi(_jit, r0, r1, i0) -static void _addi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); #define addcr(r0, r1, r2) _addcr(_jit, r0, r1, r2) -static void _addcr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); #define addci(r0, r1, i0) _addci(_jit, r0, r1, i0) -static void _addci(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define iaddxr(r0, r1) alur(X86_ADC, r0, r1) # define addxr(r0, r1, r2) _addxr(_jit, r0, r1, r2) -static void _addxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _addxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define iaddxi(r0, i0) alui(X86_ADC, r0, i0) # define addxi(r0, r1, i0) _addxi(_jit, r0, r1, i0) -static void _addxi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _addxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define isubr(r0, r1) alur(X86_SUB, r0, r1) # define subr(r0, r1, r2) _subr(_jit, r0, r1, r2) -static void _subr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _subr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define isubi(r0, i0) alui(X86_SUB, r0, i0) # define subi(r0, r1, i0) _subi(_jit, r0, r1, i0) -static void _subi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _subi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define subcr(r0, r1, r2) _subcr(_jit, r0, r1, r2) -static void _subcr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define subci(r0, r1, i0) _subci(_jit, r0, r1, i0) -static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define isubxr(r0, r1) alur(X86_SBB, r0, r1) # define subxr(r0, r1, r2) _subxr(_jit, r0, r1, r2) -static void _subxr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define isubxi(r0, i0) alui(X86_SBB, r0, i0) # define subxi(r0, r1, i0) _subxi(_jit, r0, r1, i0) -static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) -static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); # define imulr(r0, r1) _imulr(_jit, r0, r1) -static void _imulr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _imulr(jit_state_t*, int32_t, jit_int32_t); # define imuli(r0, r1, i0) _imuli(_jit, r0, r1, i0) -static void _imuli(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _imuli(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define mulr(r0, r1, r2) _mulr(_jit, r0, r1, r2) -static void _mulr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _mulr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define muli(r0, r1, i0) _muli(_jit, r0, r1, i0) -static void _muli(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _muli(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define umulr(r0) unr(X86_IMUL, r0) # define umulr_u(r0) unr(X86_MUL, r0) # define qmulr(r0, r1, r2, r3) _iqmulr(_jit, r0, r1, r2, r3, 1) # define qmulr_u(r0, r1, r2, r3) _iqmulr(_jit, r0, r1, r2, r3, 0) # define iqmulr(r0, r1, r2, r3, sign) _iqmulr(_jit, r0, r1, r2, r3, sign) -static void _iqmulr(jit_state_t*, jit_int32_t, jit_int32_t, - jit_int32_t,jit_int32_t, jit_bool_t); +static void _iqmulr(jit_state_t*, int32_t, jit_int32_t, + int32_t,jit_int32_t, jit_bool_t); # define qmuli(r0, r1, r2, i0) _iqmuli(_jit, r0, r1, r2, i0, 1) # define qmuli_u(r0, r1, r2, i0) _iqmuli(_jit, r0, r1, r2, i0, 0) # define iqmuli(r0, r1, r2, i0, sign) _iqmuli(_jit, r0, r1, r2, i0, sign) -static void _iqmuli(jit_state_t*, jit_int32_t, jit_int32_t, - jit_int32_t,jit_word_t, jit_bool_t); +static void _iqmuli(jit_state_t*, int32_t, jit_int32_t, + int32_t,jit_word_t, jit_bool_t); # define sign_extend_rdx_rax() _sign_extend_rdx_rax(_jit) static void _sign_extend_rdx_rax(jit_state_t*); # define idivr(r0) unr(X86_IDIV, r0) # define idivr_u(r0) unr(X86_DIV, r0) # define divremr(r0, r1, r2, i0, i1) _divremr(_jit, r0, r1, r2, i0, i1) static void -_divremr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t, +_divremr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, jit_bool_t,jit_bool_t); # define divremi(r0, r1, i0, i1, i2) _divremi(_jit, r0, r1, i0, i1, i2) static void -_divremi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t,jit_bool_t,jit_bool_t); +_divremi(jit_state_t*,int32_t,jit_int32_t,jit_word_t,jit_bool_t,jit_bool_t); # define divr(r0, r1, r2) divremr(r0, r1, r2, 1, 1) # define divi(r0, r1, i0) divremi(r0, r1, i0, 1, 1) # define divr_u(r0, r1, r2) divremr(r0, r1, r2, 0, 1) @@ -248,145 +248,145 @@ _divremi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t,jit_bool_t,jit_bool_t); # define qdivr(r0, r1, r2, r3) _iqdivr(_jit, r0, r1, r2, r3, 1) # define qdivr_u(r0, r1, r2, r3) _iqdivr(_jit, r0, r1, r2, r3, 0) # define iqdivr(r0, r1, r2, r3, sign) _iqdivr(_jit, r0, r1, r2, r3, sign) -static void _iqdivr(jit_state_t*, jit_int32_t, jit_int32_t, - jit_int32_t,jit_int32_t, jit_bool_t); +static void _iqdivr(jit_state_t*, int32_t, jit_int32_t, + int32_t,jit_int32_t, jit_bool_t); # define qdivi(r0, r1, r2, i0) _iqdivi(_jit, r0, r1, r2, i0, 1) # define qdivi_u(r0, r1, r2, i0) _iqdivi(_jit, r0, r1, r2, i0, 0) # define iqdivi(r0, r1, r2, i0, sign) _iqdivi(_jit, r0, r1, r2, i0, sign) -static void _iqdivi(jit_state_t*, jit_int32_t, jit_int32_t, - jit_int32_t,jit_word_t, jit_bool_t); +static void _iqdivi(jit_state_t*, int32_t, jit_int32_t, + int32_t,jit_word_t, jit_bool_t); # define remr(r0, r1, r2) divremr(r0, r1, r2, 1, 0) # define remi(r0, r1, i0) divremi(r0, r1, i0, 1, 0) # define remr_u(r0, r1, r2) divremr(r0, r1, r2, 0, 0) # define remi_u(r0, r1, i0) divremi(r0, r1, i0, 0, 0) # define iandr(r0, r1) alur(X86_AND, r0, r1) # define andr(r0, r1, r2) _andr(_jit, r0, r1, r2) -static void _andr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _andr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define iandi(r0, i0) alui(X86_AND, r0, i0) # define andi(r0, r1, i0) _andi(_jit, r0, r1, i0) -static void _andi(jit_state_t*, jit_int32_t,jit_int32_t,jit_word_t); +static void _andi(jit_state_t*, int32_t,jit_int32_t,jit_word_t); # define iorr(r0, r1) alur(X86_OR, r0, r1) # define orr(r0, r1, r2) _orr(_jit, r0, r1, r2) -static void _orr(jit_state_t*, jit_int32_t,jit_int32_t,jit_int32_t); +static void _orr(jit_state_t*, int32_t,jit_int32_t,jit_int32_t); # define iori(r0, i0) alui(X86_OR, r0, i0) # define ori(r0, r1, i0) _ori(_jit, r0, r1, i0) -static void _ori(jit_state_t*, jit_int32_t,jit_int32_t,jit_word_t); +static void _ori(jit_state_t*, int32_t,jit_int32_t,jit_word_t); # define ixorr(r0, r1) alur(X86_XOR, r0, r1) # define xorr(r0, r1, r2) _xorr(_jit, r0, r1, r2) -static void _xorr(jit_state_t*, jit_int32_t,jit_int32_t,jit_int32_t); +static void _xorr(jit_state_t*, int32_t,jit_int32_t,jit_int32_t); # define ixori(r0, i0) alui(X86_XOR, r0, i0) # define xori(r0, r1, i0) _xori(_jit, r0, r1, i0) -static void _xori(jit_state_t*, jit_int32_t,jit_int32_t,jit_word_t); +static void _xori(jit_state_t*, int32_t,jit_int32_t,jit_word_t); # define irotshr(code, r0) _irotshr(_jit, code, r0) -static void _irotshr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _irotshr(jit_state_t*, int32_t, jit_int32_t); # define rotshr(code, r0, r1, r2) _rotshr(_jit, code, r0, r1, r2) static void -_rotshr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +_rotshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define irotshi(code, r0, i0) _irotshi(_jit, code, r0, i0) -static void _irotshi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _irotshi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define rotshi(code, r0, r1, i0) _rotshi(_jit, code, r0, r1, i0) static void -_rotshi(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_word_t); +_rotshi(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t); # define lshr(r0, r1, r2) rotshr(X86_SHL, r0, r1, r2) # define lshi(r0, r1, i0) _lshi(_jit, r0, r1, i0) -static void _lshi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _lshi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define rshr(r0, r1, r2) rotshr(X86_SAR, r0, r1, r2) # define rshi(r0, r1, i0) rotshi(X86_SAR, r0, r1, i0) # define rshr_u(r0, r1, r2) rotshr(X86_SHR, r0, r1, r2) # define rshi_u(r0, r1, i0) rotshi(X86_SHR, r0, r1, i0) # define unr(code, r0) _unr(_jit, code, r0) -static void _unr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _unr(jit_state_t*, int32_t, jit_int32_t); # define inegr(r0) unr(X86_NEG, r0) # define negr(r0, r1) _negr(_jit, r0, r1) -static void _negr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _negr(jit_state_t*, int32_t, jit_int32_t); # define icomr(r0) unr(X86_NOT, r0) # define comr(r0, r1) _comr(_jit, r0, r1) -static void _comr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _comr(jit_state_t*, int32_t, jit_int32_t); # if USE_INC_DEC # define incr(r0, r1) _incr(_jit, r0, r1) -static void _incr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _incr(jit_state_t*, int32_t, jit_int32_t); # define decr(r0, r1) _decr(_jit, r0, r1) -static void _decr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _decr(jit_state_t*, int32_t, jit_int32_t); # endif # define cr(code, r0, r1, r2) _cr(_jit, code, r0, r1, r2) static void -_cr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_cr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define ci(code, r0, r1, i0) _ci(_jit, code, r0, r1, i0) static void -_ci(jit_state_t *_jit, jit_int32_t, jit_int32_t, jit_int32_t, jit_word_t); +_ci(jit_state_t *_jit, int32_t, jit_int32_t, jit_int32_t, jit_word_t); # define ci0(code, r0, r1) _ci0(_jit, code, r0, r1) -static void _ci0(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ci0(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ltr(r0, r1, r2) _ltr(_jit, r0, r1, r2) -static void _ltr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ltr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define lti(r0, r1, i0) _lti(_jit, r0, r1, i0) -static void _lti(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _lti(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ltr_u(r0, r1, r2) _ltr_u(_jit, r0, r1, r2) -static void _ltr_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ltr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define lti_u(r0, r1, i0) ci(X86_CC_B, r0, r1, i0) # define ler(r0, r1, r2) _ler(_jit, r0, r1, r2) -static void _ler(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ler(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define lei(r0, r1, i0) ci(X86_CC_LE, r0, r1, i0) # define ler_u(r0, r1, r2) _ler_u(_jit, r0, r1, r2) -static void _ler_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ler_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define lei_u(r0, r1, i0) _lei_u(_jit, r0, r1, i0) -static void _lei_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _lei_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define eqr(r0, r1, r2) _eqr(_jit, r0, r1, r2) -static void _eqr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _eqr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define eqi(r0, r1, i0) _eqi(_jit, r0, r1, i0) -static void _eqi(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _eqi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ger(r0, r1, r2) _ger(_jit, r0, r1, r2) -static void _ger(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ger(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define gei(r0, r1, i0) _gei(_jit, r0, r1, i0) -static void _gei(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _gei(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ger_u(r0, r1, r2) _ger_u(_jit, r0, r1, r2) -static void _ger_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ger_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define gei_u(r0, r1, i0) _gei_u(_jit, r0, r1, i0) -static void _gei_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _gei_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define gtr(r0, r1, r2) _gtr(_jit, r0, r1, r2) -static void _gtr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _gtr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define gti(r0, r1, i0) _ci(_jit, X86_CC_G, r0, r1, i0) # define gtr_u(r0, r1, r2) _gtr_u(_jit, r0, r1, r2) -static void _gtr_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _gtr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define gti_u(r0, r1, i0) _gti_u(_jit, r0, r1, i0) -static void _gti_u(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _gti_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ner(r0, r1, r2) _ner(_jit, r0, r1, r2) -static void _ner(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ner(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define nei(r0, r1, i0) _nei(_jit, r0, r1, i0) -static void _nei(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _nei(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define movr(r0, r1) _movr(_jit, r0, r1) -static void _movr(jit_state_t*, jit_int32_t, jit_int32_t); +static void _movr(jit_state_t*, int32_t, jit_int32_t); # define imovi(r0, i0) _imovi(_jit, r0, i0) -static void _imovi(jit_state_t*, jit_int32_t, jit_word_t); +static void _imovi(jit_state_t*, int32_t, jit_word_t); # define movi(r0, i0) _movi(_jit, r0, i0) -static void _movi(jit_state_t*, jit_int32_t, jit_word_t); +static void _movi(jit_state_t*, int32_t, jit_word_t); # define movi_p(r0, i0) _movi_p(_jit, r0, i0) -static jit_word_t _movi_p(jit_state_t*, jit_int32_t, jit_word_t); +static jit_word_t _movi_p(jit_state_t*, int32_t, jit_word_t); # define movcr(r0, r1) _movcr(_jit, r0, r1) -static void _movcr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movcr(jit_state_t*,int32_t,jit_int32_t); # define movcr_u(r0, r1) _movcr_u(_jit, r0, r1) -static void _movcr_u(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movcr_u(jit_state_t*,int32_t,jit_int32_t); # define movsr(r0, r1) _movsr(_jit, r0, r1) -static void _movsr(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movsr(jit_state_t*,int32_t,jit_int32_t); # define movsr_u(r0, r1) _movsr_u(_jit, r0, r1) -static void _movsr_u(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movsr_u(jit_state_t*,int32_t,jit_int32_t); # if __X64 && !__X64_32 # define movir(r0, r1) _movir(_jit, r0, r1) -static void _movir(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movir(jit_state_t*,int32_t,jit_int32_t); # define movir_u(r0, r1) _movir_u(_jit, r0, r1) -static void _movir_u(jit_state_t*,jit_int32_t,jit_int32_t); +static void _movir_u(jit_state_t*,int32_t,jit_int32_t); # endif # define htonr_us(r0, r1) _htonr_us(_jit, r0, r1) -static void _htonr_us(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); # define htonr_ui(r0, r1) _htonr_ui(_jit, r0, r1) -static void _htonr_ui(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); # if __X64 && !__X64_32 #define htonr_ul(r0, r1) _htonr_ul(_jit, r0, r1) -static void _htonr_ul(jit_state_t*,jit_int32_t,jit_int32_t); +static void _htonr_ul(jit_state_t*,int32_t,jit_int32_t); #endif # define extr_c(r0, r1) _extr_c(_jit, r0, r1) -static void _extr_c(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_c(jit_state_t*,int32_t,jit_int32_t); # define extr_uc(r0, r1) _extr_uc(_jit, r0, r1) -static void _extr_uc(jit_state_t*,jit_int32_t,jit_int32_t); +static void _extr_uc(jit_state_t*,int32_t,jit_int32_t); # define extr_s(r0, r1) movsr(r0, r1) # define extr_us(r0, r1) movsr_u(r0, r1) # if __X64 && !__X64_32 @@ -394,26 +394,26 @@ static void _extr_uc(jit_state_t*,jit_int32_t,jit_int32_t); # define extr_ui(r0, r1) movir_u(r0, r1) # endif # define ldr_c(r0, r1) _ldr_c(_jit, r0, r1) -static void _ldr_c(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_c(jit_state_t*, int32_t, jit_int32_t); # define ldi_c(r0, i0) _ldi_c(_jit, r0, i0) -static void _ldi_c(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_c(jit_state_t*, int32_t, jit_word_t); # define ldr_uc(r0, r1) _ldr_uc(_jit, r0, r1) -static void _ldr_uc(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_uc(jit_state_t*, int32_t, jit_int32_t); # define ldi_uc(r0, i0) _ldi_uc(_jit, r0, i0) -static void _ldi_uc(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_uc(jit_state_t*, int32_t, jit_word_t); # define ldr_s(r0, r1) _ldr_s(_jit, r0, r1) -static void _ldr_s(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_s(jit_state_t*, int32_t, jit_int32_t); # define ldi_s(r0, i0) _ldi_s(_jit, r0, i0) -static void _ldi_s(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_s(jit_state_t*, int32_t, jit_word_t); # define ldr_us(r0, r1) _ldr_us(_jit, r0, r1) -static void _ldr_us(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_us(jit_state_t*, int32_t, jit_int32_t); # define ldi_us(r0, i0) _ldi_us(_jit, r0, i0) -static void _ldi_us(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_us(jit_state_t*, int32_t, jit_word_t); # if __X32 || !__X64_32 # define ldr_i(r0, r1) _ldr_i(_jit, r0, r1) -static void _ldr_i(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_i(jit_state_t*, int32_t, jit_int32_t); # define ldi_i(r0, i0) _ldi_i(_jit, r0, i0) -static void _ldi_i(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_i(jit_state_t*, int32_t, jit_word_t); # endif # if __X64 # if __X64_32 @@ -423,36 +423,36 @@ static void _ldi_i(jit_state_t*, jit_int32_t, jit_word_t); # define ldr_ui(r0, r1) _ldr_ui(_jit, r0, r1) # define ldi_ui(r0, i0) _ldi_ui(_jit, r0, i0) # endif -static void _ldr_ui(jit_state_t*, jit_int32_t, jit_int32_t); -static void _ldi_ui(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldr_ui(jit_state_t*, int32_t, jit_int32_t); +static void _ldi_ui(jit_state_t*, int32_t, jit_word_t); # if !__X64_32 # define ldr_l(r0, r1) _ldr_l(_jit, r0, r1) -static void _ldr_l(jit_state_t*, jit_int32_t, jit_int32_t); +static void _ldr_l(jit_state_t*, int32_t, jit_int32_t); # define ldi_l(r0, i0) _ldi_l(_jit, r0, i0) -static void _ldi_l(jit_state_t*, jit_int32_t, jit_word_t); +static void _ldi_l(jit_state_t*, int32_t, jit_word_t); # endif # endif # define ldxr_c(r0, r1, r2) _ldxr_c(_jit, r0, r1, r2) -static void _ldxr_c(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_c(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_c(r0, r1, i0) _ldxi_c(_jit, r0, r1, i0) -static void _ldxi_c(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_c(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ldxr_uc(r0, r1, r2) _ldxr_uc(_jit, r0, r1, r2) -static void _ldxr_uc(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_uc(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_uc(r0, r1, i0) _ldxi_uc(_jit, r0, r1, i0) -static void _ldxi_uc(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_uc(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ldxr_s(r0, r1, r2) _ldxr_s(_jit, r0, r1, r2) -static void _ldxr_s(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_s(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_s(r0, r1, i0) _ldxi_s(_jit, r0, r1, i0) -static void _ldxi_s(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_s(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define ldxr_us(r0, r1, r2) _ldxr_us(_jit, r0, r1, r2) -static void _ldxr_us(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_us(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_us(r0, r1, i0) _ldxi_us(_jit, r0, r1, i0) -static void _ldxi_us(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_us(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if __X32 || !__X64_32 # define ldxr_i(r0, r1, r2) _ldxr_i(_jit, r0, r1, r2) -static void _ldxr_i(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_i(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_i(r0, r1, i0) _ldxi_i(_jit, r0, r1, i0) -static void _ldxi_i(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_i(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # endif # if __X64 # if __X64_32 @@ -462,50 +462,50 @@ static void _ldxi_i(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); # define ldxr_ui(r0, r1, r2) _ldxr_ui(_jit, r0, r1, r2) # define ldxi_ui(r0, r1, i0) _ldxi_ui(_jit, r0, r1, i0) # endif -static void _ldxr_ui(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); -static void _ldxi_ui(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxr_ui(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); +static void _ldxi_ui(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # if !__X64_32 # define ldxr_l(r0, r1, r2) _ldxr_l(_jit, r0, r1, r2) -static void _ldxr_l(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _ldxr_l(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define ldxi_l(r0, r1, i0) _ldxi_l(_jit, r0, r1, i0) -static void _ldxi_l(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _ldxi_l(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # endif # endif # define str_c(r0, r1) _str_c(_jit, r0, r1) -static void _str_c(jit_state_t*, jit_int32_t, jit_int32_t); +static void _str_c(jit_state_t*, int32_t, jit_int32_t); # define sti_c(i0, r0) _sti_c(_jit, i0, r0) -static void _sti_c(jit_state_t*, jit_word_t, jit_int32_t); +static void _sti_c(jit_state_t*, jit_word_t, int32_t); # define str_s(r0, r1) _str_s(_jit, r0, r1) -static void _str_s(jit_state_t*, jit_int32_t, jit_int32_t); +static void _str_s(jit_state_t*, int32_t, jit_int32_t); # define sti_s(i0, r0) _sti_s(_jit, i0, r0) -static void _sti_s(jit_state_t*, jit_word_t, jit_int32_t); +static void _sti_s(jit_state_t*, jit_word_t, int32_t); # define str_i(r0, r1) _str_i(_jit, r0, r1) -static void _str_i(jit_state_t*, jit_int32_t, jit_int32_t); +static void _str_i(jit_state_t*, int32_t, jit_int32_t); # define sti_i(i0, r0) _sti_i(_jit, i0, r0) -static void _sti_i(jit_state_t*, jit_word_t, jit_int32_t); +static void _sti_i(jit_state_t*, jit_word_t, int32_t); # if __X64 && !__X64_32 # define str_l(r0, r1) _str_l(_jit, r0, r1) -static void _str_l(jit_state_t*, jit_int32_t, jit_int32_t); +static void _str_l(jit_state_t*, int32_t, jit_int32_t); # define sti_l(i0, r0) _sti_l(_jit, i0, r0) -static void _sti_l(jit_state_t*, jit_word_t, jit_int32_t); +static void _sti_l(jit_state_t*, jit_word_t, int32_t); # endif # define stxr_c(r0, r1, r2) _stxr_c(_jit, r0, r1, r2) -static void _stxr_c(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _stxr_c(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define stxi_c(i0, r0, r1) _stxi_c(_jit, i0, r0, r1) -static void _stxi_c(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static void _stxi_c(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define stxr_s(r0, r1, r2) _stxr_s(_jit, r0, r1, r2) -static void _stxr_s(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _stxr_s(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define stxi_s(i0, r0, r1) _stxi_s(_jit, i0, r0, r1) -static void _stxi_s(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static void _stxi_s(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define stxr_i(r0, r1, r2) _stxr_i(_jit, r0, r1, r2) -static void _stxr_i(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _stxr_i(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define stxi_i(i0, r0, r1) _stxi_i(_jit, i0, r0, r1) -static void _stxi_i(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static void _stxi_i(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # if __X64 && !__X64_32 # define stxr_l(r0, r1, r2) _stxr_l(_jit, r0, r1, r2) -static void _stxr_l(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _stxr_l(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define stxi_l(i0, r0, r1) _stxi_l(_jit, i0, r0, r1) -static void _stxi_l(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static void _stxi_l(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # endif # define jcc(code, i0) _jcc(_jit, code, i0) # define jo(i0) jcc(X86_CC_O, i0) @@ -538,7 +538,7 @@ static void _stxi_l(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); # define jng(i0) jcc(X86_CC_NG, i0) # define jg(i0) jcc(X86_CC_G, i0) # define jnle(i0) jcc(X86_CC_NLE, i0) -static void _jcc(jit_state_t*, jit_int32_t, jit_word_t); +static void _jcc(jit_state_t*, int32_t, jit_word_t); # define jccs(code, i0) _jccs(_jit, code, i0) # define jos(i0) jccs(X86_CC_O, i0) # define jnos(i0) jccs(X86_CC_NO, i0) @@ -570,113 +570,113 @@ static void _jcc(jit_state_t*, jit_int32_t, jit_word_t); # define jngs(i0) jccs(X86_CC_NG, i0) # define jgs(i0) jccs(X86_CC_G, i0) # define jnles(i0) jccs(X86_CC_NLE, i0) -static void _jccs(jit_state_t*, jit_int32_t, jit_word_t); +static void _jccs(jit_state_t*, int32_t, jit_word_t); # define jcr(code, i0, r0, r1) _jcr(_jit, code, i0, r0, r1) -static void _jcr(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_int32_t); +static void _jcr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); # define jci(code, i0, r0, i1) _jci(_jit, code, i0, r0, i1) -static void _jci(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_word_t); +static void _jci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); # define jci0(code, i0, r0) _jci0(_jit, code, i0, r0) -static void _jci0(jit_state_t*, jit_int32_t, jit_word_t, jit_int32_t); +static void _jci0(jit_state_t*, int32_t, jit_word_t, jit_int32_t); # define bltr(i0, r0, r1) _bltr(_jit, i0, r0, r1) -static jit_word_t _bltr(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bltr(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define blti(i0, r0, i1) _blti(_jit, i0, r0, i1) -static jit_word_t _blti(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _blti(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bltr_u(i0, r0, r1) _bltr_u(_jit, i0, r0, r1) -static jit_word_t _bltr_u(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bltr_u(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define blti_u(i0, r0, i1) _blti_u(_jit, i0, r0, i1) -static jit_word_t _blti_u(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _blti_u(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bler(i0, r0, r1) _bler(_jit, i0, r0, r1) -static jit_word_t _bler(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bler(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define blei(i0, r0, i1) _blei(_jit, i0, r0, i1) -static jit_word_t _blei(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _blei(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bler_u(i0, r0, r1) _bler_u(_jit, i0, r0, r1) -static jit_word_t _bler_u(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bler_u(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define blei_u(i0, r0, i1) _blei_u(_jit, i0, r0, i1) -static jit_word_t _blei_u(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _blei_u(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define beqr(i0, r0, r1) _beqr(_jit, i0, r0, r1) -static jit_word_t _beqr(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _beqr(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define beqi(i0, r0, i1) _beqi(_jit, i0, r0, i1) -static jit_word_t _beqi(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _beqi(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bger(i0, r0, r1) _bger(_jit, i0, r0, r1) -static jit_word_t _bger(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bger(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define bgei(i0, r0, i1) _bgei(_jit, i0, r0, i1) -static jit_word_t _bgei(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _bgei(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bger_u(i0, r0, r1) _bger_u(_jit, i0, r0, r1) -static jit_word_t _bger_u(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bger_u(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define bgei_u(i0, r0, i1) _bgei_u(_jit, i0, r0, i1) -static jit_word_t _bgei_u(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _bgei_u(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bgtr(i0, r0, r1) _bgtr(_jit, i0, r0, r1) -static jit_word_t _bgtr(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bgtr(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define bgti(i0, r0, i1) _bgti(_jit, i0, r0, i1) -static jit_word_t _bgti(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _bgti(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bgtr_u(i0, r0, r1) _bgtr_u(_jit, i0, r0, r1) -static jit_word_t _bgtr_u(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bgtr_u(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define bgti_u(i0, r0, i1) _bgti_u(_jit, i0, r0, i1) -static jit_word_t _bgti_u(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _bgti_u(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bner(i0, r0, r1) _bner(_jit, i0, r0, r1) -static jit_word_t _bner(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +static jit_word_t _bner(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define bnei(i0, r0, i1) _bnei(_jit, i0, r0, i1) -static jit_word_t _bnei(jit_state_t*, jit_word_t, jit_int32_t, jit_word_t); +static jit_word_t _bnei(jit_state_t*, jit_word_t, int32_t, jit_word_t); # define bmsr(i0, r0, r1) _bmsr(_jit, i0, r0, r1) -static jit_word_t _bmsr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmsr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bmsi(i0, r0, i1) _bmsi(_jit, i0, r0, i1) -static jit_word_t _bmsi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmsi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bmcr(i0, r0, r1) _bmcr(_jit, i0, r0, r1) -static jit_word_t _bmcr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bmcr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bmci(i0, r0, i1) _bmci(_jit, i0, r0, i1) -static jit_word_t _bmci(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bmci(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define boaddr(i0, r0, r1) _boaddr(_jit, i0, r0, r1) -static jit_word_t _boaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define boaddi(i0, r0, i1) _boaddi(_jit, i0, r0, i1) -static jit_word_t _boaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define boaddr_u(i0, r0, r1) _boaddr_u(_jit, i0, r0, r1) -static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _boaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define boaddi_u(i0, r0, i1) _boaddi_u(_jit, i0, r0, i1) -static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _boaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxaddr(i0, r0, r1) _bxaddr(_jit, i0, r0, r1) -static jit_word_t _bxaddr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxaddi(i0, r0, i1) _bxaddi(_jit, i0, r0, i1) -static jit_word_t _bxaddi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxaddr_u(i0, r0, r1) _bxaddr_u(_jit, i0, r0, r1) -static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxaddr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxaddi_u(i0, r0, i1) _bxaddi_u(_jit, i0, r0, i1) -static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxaddi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bosubr(i0, r0, r1) _bosubr(_jit, i0, r0, r1) -static jit_word_t _bosubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bosubi(i0, r0, i1) _bosubi(_jit, i0, r0, i1) -static jit_word_t _bosubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bosubr_u(i0, r0, r1) _bosubr_u(_jit, i0, r0, r1) -static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bosubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bosubi_u(i0, r0, i1) _bosubi_u(_jit, i0, r0, i1) -static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bosubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxsubr(i0, r0, r1) _bxsubr(_jit, i0, r0, r1) -static jit_word_t _bxsubr(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxsubi(i0, r0, i1) _bxsubi(_jit, i0, r0, i1) -static jit_word_t _bxsubi(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define bxsubr_u(i0, r0, r1) _bxsubr_u(_jit, i0, r0, r1) -static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _bxsubr_u(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define bxsubi_u(i0, r0, i1) _bxsubi_u(_jit, i0, r0, i1) -static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t); +static jit_word_t _bxsubi_u(jit_state_t*,jit_word_t,int32_t,jit_word_t); # define callr(r0) _callr(_jit, r0) -static void _callr(jit_state_t*, jit_int32_t); +static void _callr(jit_state_t*, int32_t); # define calli(i0) _calli(_jit, i0) static jit_word_t _calli(jit_state_t*, jit_word_t); # define jmpr(r0) _jmpr(_jit, r0) -static void _jmpr(jit_state_t*, jit_int32_t); +static void _jmpr(jit_state_t*, int32_t); # define jmpi(i0) _jmpi(_jit, i0) static jit_word_t _jmpi(jit_state_t*, jit_word_t); # define jmpsi(i0) _jmpsi(_jit, i0) -static void _jmpsi(jit_state_t*, jit_uint8_t); +static void _jmpsi(jit_state_t*, uint8_t); # define prolog(node) _prolog(_jit, node) static void _prolog(jit_state_t*, jit_node_t*); # define epilog(node) _epilog(_jit, node) static void _epilog(jit_state_t*, jit_node_t*); # define vastart(r0) _vastart(_jit, r0) -static void _vastart(jit_state_t*, jit_int32_t); +static void _vastart(jit_state_t*, int32_t); # define vaarg(r0, r1) _vaarg(_jit, r0, r1) -static void _vaarg(jit_state_t*, jit_int32_t, jit_int32_t); +static void _vaarg(jit_state_t*, int32_t, jit_int32_t); # define vaarg_d(r0, r1, i0) _vaarg_d(_jit, r0, r1, i0) -static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_bool_t); +static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t, jit_bool_t); # define patch_at(node, instr, label) _patch_at(_jit, node, instr, label) static void _patch_at(jit_state_t*, jit_node_t*, jit_word_t, jit_word_t); # if !defined(HAVE_FFSL) @@ -690,11 +690,11 @@ static int ffsl(long); #if CODE static void -_rex(jit_state_t *_jit, jit_int32_t l, jit_int32_t w, - jit_int32_t r, jit_int32_t x, jit_int32_t b) +_rex(jit_state_t *_jit, int32_t l, jit_int32_t w, + int32_t r, jit_int32_t x, jit_int32_t b) { #if __X64 - jit_int32_t v = 0x40 | (w << 3); + int32_t v = 0x40 | (w << 3); if (r != _NOREG) v |= (r & 8) >> 1; @@ -708,8 +708,8 @@ _rex(jit_state_t *_jit, jit_int32_t l, jit_int32_t w, } static void -_rx(jit_state_t *_jit, jit_int32_t rd, jit_int32_t md, - jit_int32_t rb, jit_int32_t ri, jit_int32_t ms) +_rx(jit_state_t *_jit, int32_t rd, jit_int32_t md, + int32_t rb, jit_int32_t ri, jit_int32_t ms) { if (ri == _NOREG) { if (rb == _NOREG) { @@ -726,7 +726,7 @@ _rx(jit_state_t *_jit, jit_int32_t rd, jit_int32_t md, mrm(0x00, r7(rd), 0x04); sib(ms, 0x04, 0x04); } - else if ((jit_int8_t)md == md) { + else if ((int8_t)md == md) { mrm(0x01, r7(rd), 0x04); sib(ms, 0x04, 0x04); ic(md); @@ -740,7 +740,7 @@ _rx(jit_state_t *_jit, jit_int32_t rd, jit_int32_t md, else { if (md == 0 && r7(rb) != _RBP_REGNO) mrm(0x00, r7(rd), r7(rb)); - else if ((jit_int8_t)md == md) { + else if ((int8_t)md == md) { mrm(0x01, r7(rd), r7(rb)); ic(md); } @@ -760,7 +760,7 @@ _rx(jit_state_t *_jit, jit_int32_t rd, jit_int32_t md, mrm(0x00, r7(rd), 0x04); sib(ms, r7(ri), r7(rb)); } - else if ((jit_int8_t)md == md) { + else if ((int8_t)md == md) { mrm(0x01, r7(rd), 0x04); sib(ms, r7(ri), r7(rb)); ic(md); @@ -778,7 +778,7 @@ _rx(jit_state_t *_jit, jit_int32_t rd, jit_int32_t md, } static void -_nop(jit_state_t *_jit, jit_int32_t count) +_nop(jit_state_t *_jit, int32_t count) { switch (count) { case 0: @@ -819,8 +819,8 @@ _nop(jit_state_t *_jit, jit_int32_t count) } static void -_lea(jit_state_t *_jit, jit_int32_t md, jit_int32_t rb, - jit_int32_t ri, jit_int32_t ms, jit_int32_t rd) +_lea(jit_state_t *_jit, int32_t md, jit_int32_t rb, + int32_t ri, jit_int32_t ms, jit_int32_t rd) { rex(0, WIDE, rd, ri, rb); ic(0x8d); @@ -828,21 +828,21 @@ _lea(jit_state_t *_jit, jit_int32_t md, jit_int32_t rb, } static void -_pushr(jit_state_t *_jit, jit_int32_t r0) +_pushr(jit_state_t *_jit, int32_t r0) { rex(0, WIDE, 0, 0, r0); ic(0x50 | r7(r0)); } static void -_popr(jit_state_t *_jit, jit_int32_t r0) +_popr(jit_state_t *_jit, int32_t r0) { rex(0, WIDE, 0, 0, r0); ic(0x58 | r7(r0)); } static void -_xchgr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_xchgr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r1, _NOREG, r0); ic(0x87); @@ -850,7 +850,7 @@ _xchgr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_testr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_testr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r1, _NOREG, r0); ic(0x85); @@ -858,7 +858,7 @@ _testr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_testi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_testi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { rex(0, WIDE, _NOREG, _NOREG, r0); if (r0 == _RAX_REGNO) @@ -871,7 +871,7 @@ _testi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_cc(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) +_cc(jit_state_t *_jit, int32_t code, jit_int32_t r0) { rex(0, 0, _NOREG, _NOREG, r0); ic(0x0f); @@ -880,7 +880,7 @@ _cc(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) } static void -_alur(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_int32_t r1) +_alur(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_int32_t r1) { rex(0, WIDE, r1, _NOREG, r0); ic(code | 0x01); @@ -888,12 +888,12 @@ _alur(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_int32_t r1) } static void -_alui(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_word_t i0) +_alui(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, _NOREG, _NOREG, r0); - if ((jit_int8_t)i0 == i0) { + if ((int8_t)i0 == i0) { ic(0x83); ic(0xc0 | code | r7(r0)); ic(i0); @@ -917,7 +917,7 @@ _alui(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_word_t i0) } static void -_save(jit_state_t *_jit, jit_int32_t r0) +_save(jit_state_t *_jit, int32_t r0) { if (!_jitc->function->regoff[r0]) { _jitc->function->regoff[r0] = jit_allocai(sizeof(jit_word_t)); @@ -929,7 +929,7 @@ _save(jit_state_t *_jit, jit_int32_t r0) } static void -_load(jit_state_t *_jit, jit_int32_t r0) +_load(jit_state_t *_jit, int32_t r0) { assert(_jitc->function->regoff[r0]); assert(jit_regset_tstbit(&_jitc->regsav, r0)); @@ -938,7 +938,7 @@ _load(jit_state_t *_jit, jit_int32_t r0) } static void -_addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) iaddr(r0, r2); @@ -949,9 +949,9 @@ _addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); #if USE_INC_DEC @@ -979,7 +979,7 @@ _addi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) iaddr(r0, r1); @@ -990,9 +990,9 @@ _addcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { movr(r0, r1); iaddi(r0, i0); @@ -1010,7 +1010,7 @@ _addci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r2) iaddxr(r0, r1); @@ -1021,9 +1021,9 @@ _addxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { movr(r0, r1); iaddxi(r0, i0); @@ -1041,7 +1041,7 @@ _addxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) ixorr(r0, r0); @@ -1056,9 +1056,9 @@ _subr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); #if USE_INC_DEC @@ -1086,9 +1086,9 @@ _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 && r0 != r1) { reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r0); @@ -1103,9 +1103,9 @@ _subcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; movr(r0, r1); if (can_sign_extend_int_p(i0)) isubi(r0, i0); @@ -1118,9 +1118,9 @@ _subci(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r2 && r0 != r1) { reg = jit_get_reg(jit_class_gpr); movr(rn(reg), r0); @@ -1135,9 +1135,9 @@ _subxr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; movr(r0, r1); if (can_sign_extend_int_p(i0)) isubxi(r0, i0); @@ -1150,14 +1150,14 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { subi(r0, r1, i0); negr(r0, r0); } static void -_imulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_imulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -1166,12 +1166,12 @@ _imulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_imuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_imuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, r1); - if ((jit_int8_t)i0 == i0) { + if ((int8_t)i0 == i0) { ic(0x6b); mrm(0x03, r7(r0), r7(r1)); ic(i0); @@ -1191,7 +1191,7 @@ _imuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) imulr(r0, r2); @@ -1204,7 +1204,7 @@ _mulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { switch (i0) { case 0: @@ -1274,12 +1274,12 @@ _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) if (sav & (1 << rn)) \ load(rv); static void -_iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t mul; - jit_int32_t sav; - jit_int32_t set; + int32_t mul; + int32_t sav; + int32_t set; sav = set = 0; qsavset(_RDX_REGNO); @@ -1313,10 +1313,10 @@ _iqmulr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqmuli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) { ixorr(r0, r0); @@ -1341,14 +1341,14 @@ _sign_extend_rdx_rax(jit_state_t *_jit) } static void -_divremr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, +_divremr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_bool_t sign, jit_bool_t divide) { - jit_int32_t div; - jit_int32_t reg; - jit_int32_t set; - jit_int32_t sav; - jit_int32_t use; + int32_t div; + int32_t reg; + int32_t set; + int32_t sav; + int32_t use; sav = set = use = 0; savset(_RDX_REGNO); @@ -1425,14 +1425,14 @@ _divremr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, } static void -_divremi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0, +_divremi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0, jit_bool_t sign, jit_bool_t divide) { - jit_int32_t reg; - jit_int32_t div; - jit_int32_t sav; - jit_int32_t set; - jit_int32_t use; + int32_t reg; + int32_t div; + int32_t sav; + int32_t set; + int32_t use; if (divide) { switch (i0) { @@ -1520,14 +1520,14 @@ _divremi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0, } static void -_iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_int32_t r3, jit_bool_t sign) +_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_int32_t r3, jit_bool_t sign) { - jit_int32_t div; - jit_int32_t reg; - jit_int32_t sav; - jit_int32_t set; - jit_int32_t use; + int32_t div; + int32_t reg; + int32_t sav; + int32_t set; + int32_t use; sav = set = use = 0; qsavset(_RDX_REGNO); @@ -1606,10 +1606,10 @@ _iqdivr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, } static void -_iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, - jit_int32_t r2, jit_word_t i0, jit_bool_t sign) +_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, + int32_t r2, jit_word_t i0, jit_bool_t sign) { - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -1624,7 +1624,7 @@ _iqdivi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, #undef savset static void -_andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_andr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movr(r0, r1); @@ -1639,9 +1639,9 @@ _andr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) ixorr(r0, r0); @@ -1664,7 +1664,7 @@ _andi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_orr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movr(r0, r1); @@ -1679,9 +1679,9 @@ _orr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); else if (i0 == -1) @@ -1703,7 +1703,7 @@ _ori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_xorr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) ixorr(r0, r0); @@ -1718,9 +1718,9 @@ _xorr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (i0 == 0) movr(r0, r1); else if (i0 == -1) @@ -1742,7 +1742,7 @@ _xori(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_irotshr(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) +_irotshr(jit_state_t *_jit, int32_t code, jit_int32_t r0) { rex(0, WIDE, _RCX_REGNO, _NOREG, r0); ic(0xd3); @@ -1750,11 +1750,11 @@ _irotshr(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) } static void -_rotshr(jit_state_t *_jit, jit_int32_t code, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_rotshr(jit_state_t *_jit, int32_t code, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; - jit_int32_t use; + int32_t reg; + int32_t use; if (r0 == _RCX_REGNO) { reg = jit_get_reg(jit_class_gpr); @@ -1798,7 +1798,7 @@ _rotshr(jit_state_t *_jit, jit_int32_t code, } static void -_irotshi(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_word_t i0) +_irotshi(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_word_t i0) { rex(0, WIDE, _NOREG, _NOREG, r0); if (i0 == 1) { @@ -1813,8 +1813,8 @@ _irotshi(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_word_t i0) } static void -_rotshi(jit_state_t *_jit, jit_int32_t code, - jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_rotshi(jit_state_t *_jit, int32_t code, + int32_t r0, jit_int32_t r1, jit_word_t i0) { movr(r0, r1); if (i0) @@ -1822,7 +1822,7 @@ _rotshi(jit_state_t *_jit, jit_int32_t code, } static void -_lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0 == 0) movr(r0, r1); @@ -1833,7 +1833,7 @@ _lshi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_unr(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) +_unr(jit_state_t *_jit, int32_t code, jit_int32_t r0) { rex(0, WIDE, _NOREG, _NOREG, r0); ic(0xf7); @@ -1841,7 +1841,7 @@ _unr(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) } static void -_negr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_negr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 == r1) inegr(r0); @@ -1852,7 +1852,7 @@ _negr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_comr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr(r0, r1); icomr(r0); @@ -1860,7 +1860,7 @@ _comr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #if USE_INC_DEC static void -_incr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_incr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr(r0, r1); # if __X64 @@ -1873,7 +1873,7 @@ _incr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_decr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_decr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr(r0, r1); # if __X64 @@ -1888,9 +1888,9 @@ _decr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) static void _cr(jit_state_t *_jit, - jit_int32_t code, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) + int32_t code, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; jit_bool_t same; if (reg8_p(r0)) { same = r0 == r1 || r0 == r2; @@ -1913,9 +1913,9 @@ _cr(jit_state_t *_jit, static void _ci(jit_state_t *_jit, - jit_int32_t code, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) + int32_t code, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; jit_bool_t same; if (reg8_p(r0)) { same = r0 == r1; @@ -1937,9 +1937,9 @@ _ci(jit_state_t *_jit, } static void -_ci0(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_int32_t r1) +_ci0(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; jit_bool_t same; if (reg8_p(r0)) { same = r0 == r1; @@ -1961,7 +1961,7 @@ _ci0(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_int32_t r1) } static void -_ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 0); @@ -1970,7 +1970,7 @@ _ltr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lti(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_L, r0, r1, i0); @@ -1979,7 +1979,7 @@ _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ltr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 0); @@ -1988,7 +1988,7 @@ _ltr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -1997,7 +1997,7 @@ _ler(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ler_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -2006,7 +2006,7 @@ _ler_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_lei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_BE, r0, r1, i0); @@ -2015,7 +2015,7 @@ _lei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_eqr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -2024,7 +2024,7 @@ _eqr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_eqi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_E, r0, r1, i0); @@ -2033,7 +2033,7 @@ _eqi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -2042,7 +2042,7 @@ _ger(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_GE, r0, r1, i0); @@ -2051,7 +2051,7 @@ _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ger_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -2060,7 +2060,7 @@ _ger_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gei_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_AE, r0, r1, i0); @@ -2069,7 +2069,7 @@ _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 0); @@ -2078,7 +2078,7 @@ _gtr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_gtr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 0); @@ -2087,7 +2087,7 @@ _gtr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_gti_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_A, r0, r1, i0); @@ -2096,7 +2096,7 @@ _gti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 0); @@ -2105,7 +2105,7 @@ _ner(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { if (i0) ci(X86_CC_NE, r0, r1, i0); @@ -2114,7 +2114,7 @@ _nei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) { rex(0, 1, r1, _NOREG, r0); @@ -2124,7 +2124,7 @@ _movr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_imovi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_imovi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { #if __X64 # if !__X64_32 @@ -2148,7 +2148,7 @@ _imovi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi(jit_state_t *_jit, int32_t r0, jit_word_t i0) { if (i0) imovi(r0, i0); @@ -2157,7 +2157,7 @@ _movi(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static jit_word_t -_movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0) { rex(0, WIDE, _NOREG, _NOREG, r0); ic(0xb8 | r7(r0)); @@ -2166,7 +2166,7 @@ _movi_p(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_movcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2175,7 +2175,7 @@ _movcr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movcr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movcr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2184,7 +2184,7 @@ _movcr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movsr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movsr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2193,7 +2193,7 @@ _movsr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movsr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movsr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2203,7 +2203,7 @@ _movsr_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #if __X64 static void -_movir(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movir(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 1, r0, _NOREG, r1); ic(0x63); @@ -2211,7 +2211,7 @@ _movir(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_movir_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_movir_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 0, r1, _NOREG, r0); ic(0x89); @@ -2220,7 +2220,7 @@ _movir_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { extr_us(r0, r1); ic(0x66); @@ -2231,7 +2231,7 @@ _htonr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr(r0, r1); rex(0, 0, _NOREG, _NOREG, r0); @@ -2241,7 +2241,7 @@ _htonr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #if __X64 && !__X64_32 static void -_htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_htonr_ul(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { movr(r0, r1); rex(0, 1, _NOREG, _NOREG, r0); @@ -2251,9 +2251,9 @@ _htonr_ul(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) #endif static void -_extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (reg8_p(r1)) movcr(r0, r1); else { @@ -2265,9 +2265,9 @@ _extr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_extr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_extr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (reg8_p(r1)) movcr_u(r0, r1); else { @@ -2279,7 +2279,7 @@ _extr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2288,9 +2288,9 @@ _ldr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, _NOREG); ic(0x0f); @@ -2306,7 +2306,7 @@ _ldi_c(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2315,9 +2315,9 @@ _ldr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, _NOREG); ic(0x0f); @@ -2333,7 +2333,7 @@ _ldi_uc(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2342,9 +2342,9 @@ _ldr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, _NOREG); ic(0x0f); @@ -2360,7 +2360,7 @@ _ldi_s(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2369,9 +2369,9 @@ _ldr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, _NOREG); ic(0x0f); @@ -2388,7 +2388,7 @@ _ldi_us(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) #if __X32 || !__X64_32 static void -_ldr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if __X64 rex(0, WIDE, r0, _NOREG, r1); @@ -2400,9 +2400,9 @@ _ldr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { #if __X64 rex(0, WIDE, r0, _NOREG, _NOREG); @@ -2423,7 +2423,7 @@ _ldi_i(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) #if __X64 static void -_ldr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 0, r0, _NOREG, r1); ic(0x63); @@ -2431,9 +2431,9 @@ _ldr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_ui(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 0, r0, _NOREG, _NOREG); ic(0x63); @@ -2449,7 +2449,7 @@ _ldi_ui(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) # if !__X64_32 static void -_ldr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_ldr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 1, r0, _NOREG, r1); ic(0x8b); @@ -2457,9 +2457,9 @@ _ldr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 1, r0, _NOREG, _NOREG); ic(0x8b); @@ -2476,7 +2476,7 @@ _ldi_l(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) #endif static void -_ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 addr(r0, r1, r2); @@ -2490,9 +2490,9 @@ _ldxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2508,7 +2508,7 @@ _ldxi_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 addr(r0, r1, r2); @@ -2522,9 +2522,9 @@ _ldxr_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2540,7 +2540,7 @@ _ldxi_uc(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 addr(r0, r1, r2); @@ -2554,9 +2554,9 @@ _ldxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2572,7 +2572,7 @@ _ldxi_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 addr(r0, r1, r2); @@ -2586,9 +2586,9 @@ _ldxr_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, WIDE, r0, _NOREG, r1); ic(0x0f); @@ -2605,7 +2605,7 @@ _ldxi_us(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __X64 || !__X64_32 static void -_ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64 rex(0, WIDE, r0, r1, r2); @@ -2617,9 +2617,9 @@ _ldxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { #if __X64 rex(0, WIDE, r0, _NOREG, r1); @@ -2640,7 +2640,7 @@ _ldxi_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #if __X64 static void -_ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 addr(r0, r1, r2); @@ -2654,9 +2654,9 @@ _ldxr_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 0, r0, _NOREG, r1); ic(0x8b); @@ -2672,7 +2672,7 @@ _ldxi_ui(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) # if !__X64_32 static void -_ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ldxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { rex(0, 1, r0, r1, r2); ic(0x8b); @@ -2680,9 +2680,9 @@ _ldxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 1, r0, _NOREG, r1); ic(0x8b); @@ -2699,9 +2699,9 @@ _ldxi_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) #endif static void -_str_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (reg8_p(r1)) { rex(0, 0, r1, _NOREG, r0); ic(0x88); @@ -2718,9 +2718,9 @@ _str_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { if (reg8_p(r0)) { rex(0, 0, r0, _NOREG, _NOREG); @@ -2745,7 +2745,7 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_str_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { ic(0x66); rex(0, 0, r1, _NOREG, r0); @@ -2754,9 +2754,9 @@ _str_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { ic(0x66); rex(0, 0, r0, _NOREG, _NOREG); @@ -2772,7 +2772,7 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_str_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 0, r1, _NOREG, r0); ic(0x89); @@ -2780,9 +2780,9 @@ _str_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 0, r0, _NOREG, _NOREG); ic(0x89); @@ -2798,7 +2798,7 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) #if __X64 && !__X64_32 static void -_str_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_str_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { rex(0, 1, r1, _NOREG, r0); ic(0x89); @@ -2806,9 +2806,9 @@ _str_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 1, r0, _NOREG, _NOREG); ic(0x89); @@ -2824,9 +2824,9 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) #endif static void -_stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; #if __X64_32 reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); @@ -2850,9 +2850,9 @@ _stxr_c(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { if (reg8_p(r1)) { rex(0, 0, r1, _NOREG, r0); @@ -2877,10 +2877,10 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_s(rn(reg), r2); @@ -2894,9 +2894,9 @@ _stxr_s(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { ic(0x66); rex(0, 0, r1, _NOREG, r0); @@ -2912,10 +2912,10 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); str_i(rn(reg), r2); @@ -2928,9 +2928,9 @@ _stxr_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 0, r1, _NOREG, r0); ic(0x89); @@ -2946,7 +2946,7 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) #if __X64 && !__X64_32 static void -_stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_stxr_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { rex(0, 1, r2, r1, r0); ic(0x89); @@ -2954,9 +2954,9 @@ _stxr_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { rex(0, 1, r1, _NOREG, r0); ic(0x89); @@ -2972,7 +2972,7 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) #endif static void -_jccs(jit_state_t *_jit, jit_int32_t code, jit_word_t i0) +_jccs(jit_state_t *_jit, int32_t code, jit_word_t i0) { jit_word_t w; ic(0x70 | code); @@ -2981,7 +2981,7 @@ _jccs(jit_state_t *_jit, jit_int32_t code, jit_word_t i0) } static void -_jcc(jit_state_t *_jit, jit_int32_t code, jit_word_t i0) +_jcc(jit_state_t *_jit, int32_t code, jit_word_t i0) { jit_word_t w; ic(0x0f); @@ -2992,7 +2992,7 @@ _jcc(jit_state_t *_jit, jit_int32_t code, jit_word_t i0) static void _jcr(jit_state_t *_jit, - jit_int32_t code, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) + int32_t code, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) { alur(X86_CMP, r0, r1); jcc(code, i0); @@ -3000,28 +3000,28 @@ _jcr(jit_state_t *_jit, static void _jci(jit_state_t *_jit, - jit_int32_t code, jit_word_t i0, jit_int32_t r0, jit_word_t i1) + int32_t code, jit_word_t i0, jit_int32_t r0, jit_word_t i1) { alui(X86_CMP, r0, i1); jcc(code, i0); } static void -_jci0(jit_state_t *_jit, jit_int32_t code, jit_word_t i0, jit_int32_t r0) +_jci0(jit_state_t *_jit, int32_t code, jit_word_t i0, jit_int32_t r0) { testr(r0, r0); jcc(code, i0); } static jit_word_t -_bltr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jcr(X86_CC_L, i0, r0, r1); return (_jit->pc.w); } static jit_word_t -_blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_L, i0, r0, i1); else jci0(X86_CC_S, i0, r0); @@ -3029,14 +3029,14 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bltr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bltr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jcr(X86_CC_B, i0, r0, r1); return (_jit->pc.w); } static jit_word_t -_blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_B, i0, r0, i1); else jci0(X86_CC_B, i0, r0); @@ -3044,7 +3044,7 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); else jcr (X86_CC_LE, i0, r0, r1); @@ -3052,7 +3052,7 @@ _bler(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_LE, i0, r0, i1); else jci0(X86_CC_LE, i0, r0); @@ -3060,7 +3060,7 @@ _blei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bler_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); else jcr (X86_CC_BE, i0, r0, r1); @@ -3068,7 +3068,7 @@ _bler_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_blei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_BE, i0, r0, i1); else jci0(X86_CC_BE, i0, r0); @@ -3076,7 +3076,7 @@ _blei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_beqr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); else jcr (X86_CC_E, i0, r0, r1); @@ -3084,7 +3084,7 @@ _beqr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_beqi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_E, i0, r0, i1); else jci0(X86_CC_E, i0, r0); @@ -3092,7 +3092,7 @@ _beqi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); else jcr (X86_CC_GE, i0, r0, r1); @@ -3100,7 +3100,7 @@ _bger(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_GE, i0, r0, i1); else jci0(X86_CC_NS, i0, r0); @@ -3108,7 +3108,7 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bger_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); else jcr (X86_CC_AE, i0, r0, r1); @@ -3116,7 +3116,7 @@ _bger_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgei_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_AE, i0, r0, i1); else jmpi(i0); @@ -3124,28 +3124,28 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bgtr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jcr(X86_CC_G, i0, r0, r1); return (_jit->pc.w); } static jit_word_t -_bgti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { jci(X86_CC_G, i0, r0, i1); return (_jit->pc.w); } static jit_word_t -_bgtr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bgtr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jcr(X86_CC_A, i0, r0, r1); return (_jit->pc.w); } static jit_word_t -_bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bgti_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_A, i0, r0, i1); else jci0(X86_CC_NE, i0, r0); @@ -3153,14 +3153,14 @@ _bgti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bner(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bner(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jcr(X86_CC_NE, i0, r0, r1); return (_jit->pc.w); } static jit_word_t -_bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { if (i1) jci (X86_CC_NE, i0, r0, i1); else jci0(X86_CC_NE, i0, r0); @@ -3168,7 +3168,7 @@ _bnei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmsr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { testr(r0, r1); jnz(i0); @@ -3176,9 +3176,9 @@ _bmsr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmsi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_int_p(i1)) testi(r0, i1); else { @@ -3192,7 +3192,7 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bmcr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { testr(r0, r1); jz(i0); @@ -3200,9 +3200,9 @@ _bmcr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bmci(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_zero_extend_int_p(i1)) testi(r0, i1); else { @@ -3216,7 +3216,7 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { iaddr(r0, r1); jo(i0); @@ -3224,9 +3224,9 @@ _boaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { iaddi(r0, i1); jo(i0); @@ -3239,7 +3239,7 @@ _boaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_boaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { iaddr(r0, r1); jc(i0); @@ -3247,9 +3247,9 @@ _boaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_boaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { iaddi(r0, i1); jc(i0); @@ -3262,7 +3262,7 @@ _boaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { iaddr(r0, r1); jno(i0); @@ -3270,9 +3270,9 @@ _bxaddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { iaddi(r0, i1); jno(i0); @@ -3285,7 +3285,7 @@ _bxaddi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxaddr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { iaddr(r0, r1); jnc(i0); @@ -3293,9 +3293,9 @@ _bxaddr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxaddi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { iaddi(r0, i1); jnc(i0); @@ -3308,7 +3308,7 @@ _bxaddi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { isubr(r0, r1); jo(i0); @@ -3316,9 +3316,9 @@ _bosubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { isubi(r0, i1); jo(i0); @@ -3331,7 +3331,7 @@ _bosubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bosubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { isubr(r0, r1); jc(i0); @@ -3339,9 +3339,9 @@ _bosubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bosubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { isubi(r0, i1); jc(i0); @@ -3354,7 +3354,7 @@ _bosubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { isubr(r0, r1); jno(i0); @@ -3362,9 +3362,9 @@ _bxsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { isubi(r0, i1); jno(i0); @@ -3377,7 +3377,7 @@ _bxsubi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static jit_word_t -_bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_bxsubr_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { isubr(r0, r1); jnc(i0); @@ -3385,9 +3385,9 @@ _bxsubr_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) +_bxsubi_u(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i1)) { isubi(r0, i1); jnc(i0); @@ -3400,7 +3400,7 @@ _bxsubi_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) } static void -_callr(jit_state_t *_jit, jit_int32_t r0) +_callr(jit_state_t *_jit, int32_t r0) { rex(0, 0, _NOREG, _NOREG, r0); ic(0xff); @@ -3412,7 +3412,7 @@ _calli(jit_state_t *_jit, jit_word_t i0) { jit_word_t word; #if __X64 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); word = movi_p(rn(reg), i0); @@ -3429,7 +3429,7 @@ _calli(jit_state_t *_jit, jit_word_t i0) } static void -_jmpr(jit_state_t *_jit, jit_int32_t r0) +_jmpr(jit_state_t *_jit, int32_t r0) { rex(0, WIDE, _NOREG, _NOREG, r0); ic(0xff); @@ -3447,7 +3447,7 @@ _jmpi(jit_state_t *_jit, jit_word_t i0) } static void -_jmpsi(jit_state_t *_jit, jit_uint8_t i0) +_jmpsi(jit_state_t *_jit, uint8_t i0) { ic(0xeb); ic(i0); @@ -3456,9 +3456,9 @@ _jmpsi(jit_state_t *_jit, jit_uint8_t i0) static void _prolog(jit_state_t *_jit, jit_node_t *node) { - jit_int32_t reg; + int32_t reg; if (_jitc->function->define_frame || _jitc->function->assume_frame) { - jit_int32_t frame = -_jitc->function->frame; + int32_t frame = -_jitc->function->frame; assert(_jitc->function->self.aoff >= frame); if (_jitc->function->assume_frame) return; @@ -3652,13 +3652,13 @@ _epilog(jit_state_t *_jit, jit_node_t *node) } static void -_vastart(jit_state_t *_jit, jit_int32_t r0) +_vastart(jit_state_t *_jit, int32_t r0) { #if __X32 || __CYGWIN__ assert(_jitc->function->self.call & jit_call_varargs); addi(r0, _RBP_REGNO, _jitc->function->self.size); #else - jit_int32_t reg; + int32_t reg; assert(_jitc->function->self.call & jit_call_varargs); @@ -3687,15 +3687,15 @@ _vastart(jit_state_t *_jit, jit_int32_t r0) } static void -_vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if __X32 || __CYGWIN__ assert(_jitc->function->self.call & jit_call_varargs); ldr(r0, r1); addi(r1, r1, va_gp_increment); #else - jit_int32_t rg0; - jit_int32_t rg1; + int32_t rg0; + int32_t rg1; jit_word_t ge_code; jit_word_t lt_code; @@ -3752,7 +3752,7 @@ _vaarg(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) /* The x87 boolean argument tells if will put the result in a x87 * register if non false, in a sse register otherwise. */ static void -_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_bool_t x87) +_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_bool_t x87) { #if __X32 || __CYGWIN__ assert(_jitc->function->self.call & jit_call_varargs); @@ -3762,8 +3762,8 @@ _vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_bool_t x87) sse_ldr_d(r0, r1); addi(r1, r1, 8); #else - jit_int32_t rg0; - jit_int32_t rg1; + int32_t rg0; + int32_t rg1; jit_word_t ge_code; jit_word_t lt_code; diff --git a/jit/x86-sse.c b/jit/x86-sse.c index 448c94293..ffb2b0739 100644 --- a/jit/x86-sse.c +++ b/jit/x86-sse.c @@ -70,11 +70,11 @@ #define X86_SSE_G2X 0x7e #define X86_SSE_MOV2 0xd6 # define sser(c,r0,r1) _sser(_jit,c,r0,r1) -static void _sser(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sser(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define ssexr(p,c,r0,r1) _ssexr(_jit,p,c,r0,r1) -static void _ssexr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ssexr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define ssexi(c,r0,m,i) _ssexi(_jit,c,r0,m,i) -static void _ssexi(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); +static void _ssexi(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); # define addssr(r0, r1) ssexr(0xf3, X86_SSE_ADD, r0, r1) # define addsdr(r0, r1) ssexr(0xf2, X86_SSE_ADD, r0, r1) # define subssr(r0, r1) ssexr(0xf3, X86_SSE_SUB, r0, r1) @@ -112,7 +112,7 @@ static void _ssexi(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) # if __X64 && !__X64_32 # define sselxr(p,c,r0,r1) _sselxr(_jit,p,c,r0,r1) static void -_sselxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_sselxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # else # define sselxr(p,c,r0,r1) ssexr(p,c,r0,r1) # endif @@ -122,343 +122,343 @@ _sselxr(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define movssrm(rs,md,mb,mi,ms) ssexrx(0xf3,X86_SSE_MOV1,md,mb,mi,ms,rs) # define movsdrm(rs,md,mb,mi,ms) ssexrx(0xf2,X86_SSE_MOV1,md,mb,mi,ms,rs) static void -_ssexrx(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, - jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_ssexrx(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, + int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define sse_addr_f(r0, r1, r2) _sse_addr_f(_jit, r0, r1, r2) -static void _sse_addr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_addr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_addi_f(r0, r1, i0) _sse_addi_f(_jit, r0, r1, i0) -static void _sse_addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_addr_d(r0, r1, r2) _sse_addr_d(_jit, r0, r1, r2) -static void _sse_addr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_addr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_addi_d(r0, r1, i0) _sse_addi_d(_jit, r0, r1, i0) -static void _sse_addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_subr_f(r0, r1, r2) _sse_subr_f(_jit, r0, r1, r2) -static void _sse_subr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_subr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_subi_f(r0, r1, i0) _sse_subi_f(_jit, r0, r1, i0) -static void _sse_subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_subr_d(r0, r1, r2) _sse_subr_d(_jit, r0, r1, r2) -static void _sse_subr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_subr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_subi_d(r0, r1, i0) _sse_subi_d(_jit, r0, r1, i0) -static void _sse_subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_rsbr_f(r0, r1, r2) sse_subr_f(r0, r2, r1) # define sse_rsbi_f(r0, r1, i0) _sse_rsbi_f(_jit, r0, r1, i0) -static void _sse_rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_rsbr_d(r0, r1, r2) sse_subr_d(r0, r2, r1) # define sse_rsbi_d(r0, r1, i0) _sse_rsbi_d(_jit, r0, r1, i0) -static void _sse_rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_mulr_f(r0, r1, r2) _sse_mulr_f(_jit, r0, r1, r2) -static void _sse_mulr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_mulr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_muli_f(r0, r1, i0) _sse_muli_f(_jit, r0, r1, i0) -static void _sse_muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_mulr_d(r0, r1, r2) _sse_mulr_d(_jit, r0, r1, r2) -static void _sse_mulr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_mulr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_muli_d(r0, r1, i0) _sse_muli_d(_jit, r0, r1, i0) -static void _sse_muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_divr_f(r0, r1, r2) _sse_divr_f(_jit, r0, r1, r2) -static void _sse_divr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_divi_f(r0, r1, i0) _sse_divi_f(_jit, r0, r1, i0) -static void _sse_divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_divr_d(r0, r1, r2) _sse_divr_d(_jit, r0, r1, r2) -static void _sse_divr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_divi_d(r0, r1, i0) _sse_divi_d(_jit, r0, r1, i0) -static void _sse_divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_absr_f(r0, r1) _sse_absr_f(_jit, r0, r1) -static void _sse_absr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_absr_f(jit_state_t*,int32_t,jit_int32_t); # define sse_absr_d(r0, r1) _sse_absr_d(_jit, r0, r1) -static void _sse_absr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_absr_d(jit_state_t*,int32_t,jit_int32_t); # define sse_negr_f(r0, r1) _sse_negr_f(_jit, r0, r1) -static void _sse_negr_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_negr_f(jit_state_t*,int32_t,jit_int32_t); # define sse_negr_d(r0, r1) _sse_negr_d(_jit, r0, r1) -static void _sse_negr_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_negr_d(jit_state_t*,int32_t,jit_int32_t); # define sse_sqrtr_f(r0, r1) ssexr(0xf3, X86_SSE_SQRT, r0, r1) # define sse_sqrtr_d(r0, r1) ssexr(0xf2, X86_SSE_SQRT, r0, r1) # define ssecmpf(code, r0, r1, r2) _ssecmp(_jit, 0, code, r0, r1, r2) # define ssecmpd(code, r0, r1, r2) _ssecmp(_jit, 1, code, r0, r1, r2) static void -_ssecmp(jit_state_t*, jit_bool_t, jit_int32_t, - jit_int32_t, jit_int32_t, jit_int32_t); +_ssecmp(jit_state_t*, jit_bool_t, int32_t, + int32_t, jit_int32_t, jit_int32_t); #define sse_movr_f(r0,r1) _sse_movr_f(_jit,r0,r1) -static void _sse_movr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _sse_movr_f(jit_state_t*, int32_t, jit_int32_t); #define sse_movi_f(r0,i0) _sse_movi_f(_jit,r0,i0) -static void _sse_movi_f(jit_state_t*, jit_int32_t, jit_float32_t*); +static void _sse_movi_f(jit_state_t*, int32_t, jit_float32_t*); # define sse_lti_f(r0, r1, i0) _sse_lti_f(_jit, r0, r1, i0) -static void _sse_lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ltr_f(r0, r1, r2) ssecmpf(X86_CC_A, r0, r1, r2) # define sse_lei_f(r0, r1, i0) _sse_lei_f(_jit, r0, r1, i0) -static void _sse_lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ler_f(r0, r1, r2) ssecmpf(X86_CC_AE, r0, r1, r2) # define sse_eqi_f(r0, r1, i0) _sse_eqi_f(_jit, r0, r1, i0) -static void _sse_eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_eqr_f(r0, r1, r2) _sse_eqr_f(_jit, r0, r1, r2) -static void _sse_eqr_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_eqr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_gei_f(r0, r1, i0) _sse_gei_f(_jit, r0, r1, i0) -static void _sse_gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ger_f(r0, r1, r2) ssecmpf(X86_CC_AE, r0, r2, r1) # define sse_gti_f(r0, r1, i0) _sse_gti_f(_jit, r0, r1, i0) -static void _sse_gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_gtr_f(r0, r1, r2) ssecmpf(X86_CC_A, r0, r2, r1) # define sse_nei_f(r0, r1, i0) _sse_nei_f(_jit, r0, r1, i0) -static void _sse_nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ner_f(r0, r1, r2) _sse_ner_f(_jit, r0, r1, r2) -static void _sse_ner_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ner_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_unlti_f(r0, r1, i0) _sse_unlti_f(_jit, r0, r1, i0) -static void _sse_unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_unltr_f(r0, r1, r2) ssecmpf(X86_CC_NAE, r0, r2, r1) # define sse_unlei_f(r0, r1, i0) _sse_unlei_f(_jit, r0, r1, i0) -static void _sse_unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_unler_f(r0, r1, r2) _sse_unler_f(_jit, r0, r1, r2) # define sse_uneqi_f(r0, r1, i0) _sse_uneqi_f(_jit, r0, r1, i0) -static void _sse_uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); -static void _sse_unler_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); +static void _sse_unler_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_uneqr_f(r0, r1, r2) _sse_uneqr_f(_jit, r0, r1, r2) -static void _sse_uneqr_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_uneqr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ungei_f(r0, r1, i0) _sse_ungei_f(_jit, r0, r1, i0) -static void _sse_ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_unger_f(r0, r1, r2) _sse_unger_f(_jit, r0, r1, r2) -static void _sse_unger_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_unger_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ungti_f(r0, r1, i0) _sse_ungti_f(_jit, r0, r1, i0) -static void _sse_ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ungtr_f(r0, r1, r2) ssecmpf(X86_CC_NAE, r0, r1, r2) # define sse_ltgti_f(r0, r1, i0) _sse_ltgti_f(_jit, r0, r1, i0) -static void _sse_ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ltgtr_f(r0, r1, r2) _sse_ltgtr_f(_jit, r0, r1, r2) -static void _sse_ltgtr_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ltgtr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ordi_f(r0, r1, i0) _sse_ordi_f(_jit, r0, r1, i0) -static void _sse_ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_ordr_f(r0, r1, r2) ssecmpf(X86_CC_NP, r0, r2, r1) # define sse_unordi_f(r0, r1, i0) _sse_unordi_f(_jit, r0, r1, i0) -static void _sse_unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _sse_unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define sse_unordr_f(r0, r1, r2) ssecmpf(X86_CC_P, r0, r2, r1) # define sse_ldr_f(r0, r1) movssmr(0, r1, _NOREG, _SCL1, r0) # define sse_ldi_f(r0, i0) _sse_ldi_f(_jit, r0, i0) -static void _sse_ldi_f(jit_state_t*, jit_int32_t, jit_word_t); +static void _sse_ldi_f(jit_state_t*, int32_t, jit_word_t); # define sse_ldxr_f(r0, r1, r2) _sse_ldxr_f(_jit, r0, r1, r2) -static void _sse_ldxr_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ldxr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ldxi_f(r0, r1, i0) _sse_ldxi_f(_jit, r0, r1, i0) -static void _sse_ldxi_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _sse_ldxi_f(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define sse_str_f(r0, r1) movssrm(r1, 0, r0, _NOREG, _SCL1) # define sse_sti_f(i0, r0) _sse_sti_f(_jit, i0, r0) -static void _sse_sti_f(jit_state_t*, jit_word_t,jit_int32_t); +static void _sse_sti_f(jit_state_t*, jit_word_t,int32_t); # define sse_stxr_f(r0, r1, r2) _sse_stxr_f(_jit, r0, r1, r2) -static void _sse_stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_stxi_f(i0, r0, r1) _sse_stxi_f(_jit, i0, r0, r1) -static void _sse_stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _sse_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bltr_f(i0, r0, r1) _sse_bltr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bltr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bltr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_blti_f(i0, r0, i1) _sse_blti_f(_jit, i0, r0, i1) static jit_word_t -_sse_blti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_blti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bler_f(i0, r0, r1) _sse_bler_f(_jit, i0, r0, r1) -static jit_word_t _sse_bler_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bler_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_blei_f(i0, r0, i1) _sse_blei_f(_jit, i0, r0, i1) static jit_word_t -_sse_blei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_blei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_beqr_f(i0, r0, r1) _sse_beqr_f(_jit, i0, r0, r1) -static jit_word_t _sse_beqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_beqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_beqi_f(i0, r0, i1) _sse_beqi_f(_jit, i0, r0, i1) static jit_word_t -_sse_beqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_beqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bger_f(i0, r0, r1) _sse_bger_f(_jit, i0, r0, r1) -static jit_word_t _sse_bger_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bgei_f(i0, r0, i1) _sse_bgei_f(_jit, i0, r0, i1) static jit_word_t -_sse_bgei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bgei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bgtr_f(i0, r0, r1) _sse_bgtr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bgti_f(i0, r0, i1) _sse_bgti_f(_jit, i0, r0, i1) static jit_word_t -_sse_bgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bner_f(i0, r0, r1) _sse_bner_f(_jit, i0, r0, r1) -static jit_word_t _sse_bner_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bner_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bnei_f(i0, r0, i1) _sse_bnei_f(_jit, i0, r0, i1) static jit_word_t -_sse_bnei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bnei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bunltr_f(i0, r0, r1) _sse_bunltr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bunltr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunltr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunlti_f(i0, r0, i1) _sse_bunlti_f(_jit, i0, r0, i1) static jit_word_t -_sse_bunlti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bunlti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bunler_f(i0, r0, r1) _sse_bunler_f(_jit, i0, r0, r1) -static jit_word_t _sse_bunler_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunler_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunlei_f(i0, r0, i1) _sse_bunlei_f(_jit, i0, r0, i1) static jit_word_t -_sse_bunlei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bunlei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_buneqr_f(i0, r0, r1) _sse_buneqr_f(_jit, i0, r0, r1) -static jit_word_t _sse_buneqr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_buneqi_f(i0, r0, i1) _sse_buneqi_f(_jit, i0, r0, i1) static jit_word_t -_sse_buneqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_buneqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bunger_f(i0, r0, r1) _sse_bunger_f(_jit, i0, r0, r1) -static jit_word_t _sse_bunger_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bungei_f(i0, r0, i1) _sse_bungei_f(_jit, i0, r0, i1) static jit_word_t -_sse_bungei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bungei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bungtr_f(i0, r0, r1) _sse_bungtr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bungtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bungtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bungti_f(i0, r0, i1) _sse_bungti_f(_jit, i0, r0, i1) static jit_word_t -_sse_bungti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bungti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bltgtr_f(i0, r0, r1) _sse_bltgtr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bltgtr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bltgti_f(i0, r0, i1) _sse_bltgti_f(_jit, i0, r0, i1) static jit_word_t -_sse_bltgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bltgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bordr_f(i0, r0, r1) _sse_bordr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bordr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bordr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bordi_f(i0, r0, i1) _sse_bordi_f(_jit, i0, r0, i1) static jit_word_t -_sse_bordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define sse_bunordr_f(i0, r0, r1) _sse_bunordr_f(_jit, i0, r0, r1) -static jit_word_t _sse_bunordr_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunordr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunordi_f(i0, r0, i1) _sse_bunordi_f(_jit, i0, r0, i1) static jit_word_t -_sse_bunordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_sse_bunordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); #define sse_movr_d(r0,r1) _sse_movr_d(_jit,r0,r1) -static void _sse_movr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _sse_movr_d(jit_state_t*, int32_t, jit_int32_t); #define sse_movi_d(r0,i0) _sse_movi_d(_jit,r0,i0) -static void _sse_movi_d(jit_state_t*, jit_int32_t, jit_float64_t*); +static void _sse_movi_d(jit_state_t*, int32_t, jit_float64_t*); # define sse_ltr_d(r0, r1, r2) ssecmpd(X86_CC_A, r0, r1, r2) # define sse_lti_d(r0, r1, i0) _sse_lti_d(_jit, r0, r1, i0) -static void _sse_lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ler_d(r0, r1, r2) ssecmpd(X86_CC_AE, r0, r1, r2) # define sse_lei_d(r0, r1, i0) _sse_lei_d(_jit, r0, r1, i0) -static void _sse_lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_eqr_d(r0, r1, r2) _sse_eqr_d(_jit, r0, r1, r2) -static void _sse_eqr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_eqr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_eqi_d(r0, r1, i0) _sse_eqi_d(_jit, r0, r1, i0) -static void _sse_eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ger_d(r0, r1, r2) ssecmpd(X86_CC_AE, r0, r2, r1) # define sse_gei_d(r0, r1, i0) _sse_gei_d(_jit, r0, r1, i0) -static void _sse_gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_gtr_d(r0, r1, r2) ssecmpd(X86_CC_A, r0, r2, r1) # define sse_gti_d(r0, r1, i0) _sse_gti_d(_jit, r0, r1, i0) -static void _sse_gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ner_d(r0, r1, r2) _sse_ner_d(_jit, r0, r1, r2) -static void _sse_ner_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ner_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_nei_d(r0, r1, i0) _sse_nei_d(_jit, r0, r1, i0) -static void _sse_nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_unltr_d(r0, r1, r2) ssecmpd(X86_CC_NAE, r0, r2, r1) # define sse_unlti_d(r0, r1, i0) _sse_unlti_d(_jit, r0, r1, i0) -static void _sse_unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_unler_d(r0, r1, r2) _sse_unler_d(_jit, r0, r1, r2) -static void _sse_unler_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_unler_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_unlei_d(r0, r1, i0) _sse_unlei_d(_jit, r0, r1, i0) -static void _sse_unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_uneqr_d(r0, r1, r2) _sse_uneqr_d(_jit, r0, r1, r2) -static void _sse_uneqr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_uneqr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_uneqi_d(r0, r1, i0) _sse_uneqi_d(_jit, r0, r1, i0) -static void _sse_uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_unger_d(r0, r1, r2) _sse_unger_d(_jit, r0, r1, r2) -static void _sse_unger_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_unger_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ungei_d(r0, r1, i0) _sse_ungei_d(_jit, r0, r1, i0) -static void _sse_ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ungtr_d(r0, r1, r2) ssecmpd(X86_CC_NAE, r0, r1, r2) # define sse_ungti_d(r0, r1, i0) _sse_ungti_d(_jit, r0, r1, i0) -static void _sse_ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ltgtr_d(r0, r1, r2) _sse_ltgtr_d(_jit, r0, r1, r2) -static void _sse_ltgtr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ltgtr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ltgti_d(r0, r1, i0) _sse_ltgti_d(_jit, r0, r1, i0) -static void _sse_ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ordr_d(r0, r1, r2) ssecmpd(X86_CC_NP, r0, r2, r1) # define sse_ordi_d(r0, r1, i0) _sse_ordi_d(_jit, r0, r1, i0) -static void _sse_ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_unordr_d(r0, r1, r2) ssecmpd(X86_CC_P, r0, r2, r1) # define sse_unordi_d(r0, r1, i0) _sse_unordi_d(_jit, r0, r1, i0) -static void _sse_unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _sse_unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define sse_ldr_d(r0, r1) movsdmr(0, r1, _NOREG, _SCL1, r0) # define sse_ldi_d(r0, i0) _sse_ldi_d(_jit, r0, i0) -static void _sse_ldi_d(jit_state_t*, jit_int32_t, jit_word_t); +static void _sse_ldi_d(jit_state_t*, int32_t, jit_word_t); # define sse_ldxr_d(r0, r1, r2) _sse_ldxr_d(_jit, r0, r1, r2) -static void _sse_ldxr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _sse_ldxr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define sse_ldxi_d(r0, r1, i0) _sse_ldxi_d(_jit, r0, r1, i0) -static void _sse_ldxi_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _sse_ldxi_d(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define sse_bltr_d(i0, r0, r1) _sse_bltr_d(_jit, i0, r0, r1) # define sse_str_d(r0, r1) movsdrm(r1, 0, r0, _NOREG, _SCL1) # define sse_sti_d(i0, r0) _sse_sti_d(_jit, i0, r0) -static void _sse_sti_d(jit_state_t*, jit_word_t,jit_int32_t); +static void _sse_sti_d(jit_state_t*, jit_word_t,int32_t); # define sse_stxr_d(r0, r1, r2) _sse_stxr_d(_jit, r0, r1, r2) -static void _sse_stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _sse_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define sse_stxi_d(i0, r0, r1) _sse_stxi_d(_jit, i0, r0, r1) -static void _sse_stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); -static jit_word_t _sse_bltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _sse_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); +static jit_word_t _sse_bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_blti_d(i0, r0, i1) _sse_blti_d(_jit, i0, r0, i1) static jit_word_t -_sse_blti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_blti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bler_d(i0, r0, r1) _sse_bler_d(_jit, i0, r0, r1) -static jit_word_t _sse_bler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_blei_d(i0, r0, i1) _sse_blei_d(_jit, i0, r0, i1) static jit_word_t -_sse_blei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_blei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_beqr_d(i0, r0, r1) _sse_beqr_d(_jit, i0, r0, r1) -static jit_word_t _sse_beqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_beqi_d(i0, r0, i1) _sse_beqi_d(_jit, i0, r0, i1) static jit_word_t -_sse_beqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_beqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bger_d(i0, r0, r1) _sse_bger_d(_jit, i0, r0, r1) -static jit_word_t _sse_bger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bgei_d(i0, r0, i1) _sse_bgei_d(_jit, i0, r0, i1) static jit_word_t -_sse_bgei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bgei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bgtr_d(i0, r0, r1) _sse_bgtr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bgti_d(i0, r0, i1) _sse_bgti_d(_jit, i0, r0, i1) static jit_word_t -_sse_bgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bner_d(i0, r0, r1) _sse_bner_d(_jit, i0, r0, r1) -static jit_word_t _sse_bner_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bnei_d(i0, r0, i1) _sse_bnei_d(_jit, i0, r0, i1) static jit_word_t -_sse_bnei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bnei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bunltr_d(i0, r0, r1) _sse_bunltr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bunltr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunlti_d(i0, r0, i1) _sse_bunlti_d(_jit, i0, r0, i1) static jit_word_t -_sse_bunlti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bunlti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bunler_d(i0, r0, r1) _sse_bunler_d(_jit, i0, r0, r1) -static jit_word_t _sse_bunler_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunlei_d(i0, r0, i1) _sse_bunlei_d(_jit, i0, r0, i1) static jit_word_t -_sse_bunlei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bunlei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_buneqr_d(i0, r0, r1) _sse_buneqr_d(_jit, i0, r0, r1) -static jit_word_t _sse_buneqr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_buneqi_d(i0, r0, i1) _sse_buneqi_d(_jit, i0, r0, i1) static jit_word_t -_sse_buneqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_buneqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bunger_d(i0, r0, r1) _sse_bunger_d(_jit, i0, r0, r1) -static jit_word_t _sse_bunger_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bungei_d(i0, r0, i1) _sse_bungei_d(_jit, i0, r0, i1) static jit_word_t -_sse_bungei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bungei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bungtr_d(i0, r0, r1) _sse_bungtr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bungtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bungti_d(i0, r0, i1) _sse_bungti_d(_jit, i0, r0, i1) static jit_word_t -_sse_bungti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bungti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bltgtr_d(i0, r0, r1) _sse_bltgtr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bltgtr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bltgti_d(i0, r0, i1) _sse_bltgti_d(_jit, i0, r0, i1) static jit_word_t -_sse_bltgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bltgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bordr_d(i0, r0, r1) _sse_bordr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bordi_d(i0, r0, i1) _sse_bordi_d(_jit, i0, r0, i1) static jit_word_t -_sse_bordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define sse_bunordr_d(i0, r0, r1) _sse_bunordr_d(_jit, i0, r0, r1) -static jit_word_t _sse_bunordr_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static jit_word_t _sse_bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define sse_bunordi_d(i0, r0, i1) _sse_bunordi_d(_jit, i0, r0, i1) static jit_word_t -_sse_bunordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_sse_bunordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); #endif #if CODE # define fpr_opi(name, type, size) \ static void \ _sse_##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr|jit_class_xpr); \ + int32_t reg = jit_get_reg(jit_class_fpr|jit_class_xpr); \ assert(jit_sse_reg_p(reg)); \ sse_movi_##type(rn(reg), i0); \ sse_##name##r_##type(r0, r1, rn(reg)); \ @@ -467,11 +467,11 @@ _sse_##name##i_##type(jit_state_t *_jit, \ # define fpr_bopi(name, type, size) \ static jit_word_t \ _sse_b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr|jit_class_xpr| \ + int32_t reg = jit_get_reg(jit_class_fpr|jit_class_xpr| \ jit_class_nospill); \ assert(jit_sse_reg_p(reg)); \ sse_movi_##type(rn(reg), i1); \ @@ -484,7 +484,7 @@ _sse_b##name##i_##type(jit_state_t *_jit, \ # define dopi(name) fpr_opi(name, d, 64) # define dbopi(name) fpr_bopi(name, d, 64) static void -_sser(jit_state_t *_jit, jit_int32_t c, jit_int32_t r0, jit_int32_t r1) +_sser(jit_state_t *_jit, int32_t c, jit_int32_t r0, jit_int32_t r1) { rex(0, 0, r0, 0, r1); ic(0x0f); @@ -493,8 +493,8 @@ _sser(jit_state_t *_jit, jit_int32_t c, jit_int32_t r0, jit_int32_t r1) } static void -_ssexr(jit_state_t *_jit, jit_int32_t p, jit_int32_t c, - jit_int32_t r0, jit_int32_t r1) +_ssexr(jit_state_t *_jit, int32_t p, jit_int32_t c, + int32_t r0, jit_int32_t r1) { ic(p); rex(0, 0, r0, 0, r1); @@ -504,8 +504,8 @@ _ssexr(jit_state_t *_jit, jit_int32_t p, jit_int32_t c, } static void -_ssexi(jit_state_t *_jit, jit_int32_t c, jit_int32_t r0, - jit_int32_t m, jit_int32_t i) +_ssexi(jit_state_t *_jit, int32_t c, jit_int32_t r0, + int32_t m, jit_int32_t i) { ic(0x66); rex(0, 0, 0, 0, r0); @@ -517,8 +517,8 @@ _ssexi(jit_state_t *_jit, jit_int32_t c, jit_int32_t r0, #if __X64 static void -_sselxr(jit_state_t *_jit, jit_int32_t p, jit_int32_t c, - jit_int32_t r0, jit_int32_t r1) +_sselxr(jit_state_t *_jit, int32_t p, jit_int32_t c, + int32_t r0, jit_int32_t r1) { ic(p); rex(0, 1, r0, 0, r1); @@ -529,8 +529,8 @@ _sselxr(jit_state_t *_jit, jit_int32_t p, jit_int32_t c, #endif static void -_ssexrx(jit_state_t *_jit, jit_int32_t px, jit_int32_t code, jit_int32_t md, - jit_int32_t rb, jit_int32_t ri, jit_int32_t ms, jit_int32_t rd) +_ssexrx(jit_state_t *_jit, int32_t px, jit_int32_t code, jit_int32_t md, + int32_t rb, jit_int32_t ri, jit_int32_t ms, jit_int32_t rd) { ic(px); rex(0, 0, rd, ri, rb); @@ -540,7 +540,7 @@ _ssexrx(jit_state_t *_jit, jit_int32_t px, jit_int32_t code, jit_int32_t md, } static void -_sse_addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) addssr(r0, r2); @@ -555,7 +555,7 @@ _sse_addr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(add) static void -_sse_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) addsdr(r0, r2); @@ -570,9 +570,9 @@ _sse_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(add) static void -_sse_subr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) subssr(r0, r2); else if (r0 == r2) { @@ -591,9 +591,9 @@ _sse_subr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(sub) static void -_sse_subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) subsdr(r0, r2); else if (r0 == r2) { @@ -616,7 +616,7 @@ fopi(rsb) dopi(rsb) static void -_sse_mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) mulssr(r0, r2); @@ -631,7 +631,7 @@ _sse_mulr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(mul) static void -_sse_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) mulsdr(r0, r2); @@ -646,9 +646,9 @@ _sse_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(mul) static void -_sse_divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) divssr(r0, r2); else if (r0 == r2) { @@ -667,9 +667,9 @@ _sse_divr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(div) static void -_sse_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) divsdr(r0, r2); else if (r0 == r2) { @@ -688,9 +688,9 @@ _sse_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(div) static void -_sse_absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) { reg = jit_get_reg(jit_class_fpr|jit_class_xpr); pcmpeqlr(rn(reg), rn(reg)); @@ -706,9 +706,9 @@ _sse_absr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sse_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (r0 == r1) { reg = jit_get_reg(jit_class_fpr|jit_class_xpr); pcmpeqlr(rn(reg), rn(reg)); @@ -724,9 +724,9 @@ _sse_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sse_negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t freg, ireg; + int32_t freg, ireg; ireg = jit_get_reg(jit_class_gpr); imovi(rn(ireg), 0x80000000); if (r0 == r1) { @@ -743,9 +743,9 @@ _sse_negr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_sse_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { - jit_int32_t freg, ireg; + int32_t freg, ireg; ireg = jit_get_reg(jit_class_gpr); imovi(rn(ireg), 0x80000000); if (r0 == r1) { @@ -764,11 +764,11 @@ _sse_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_ssecmp(jit_state_t *_jit, jit_bool_t d, jit_int32_t code, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_ssecmp(jit_state_t *_jit, jit_bool_t d, int32_t code, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; if ((rc = reg8_p(r0))) reg = r0; else { @@ -786,20 +786,20 @@ _ssecmp(jit_state_t *_jit, jit_bool_t d, jit_int32_t code, } static void -_sse_movr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) ssexr(0xf3, X86_SSE_MOV, r0, r1); } static void -_sse_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_sse_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; jit_bool_t ldi; data.f = *i0; @@ -827,10 +827,10 @@ fopi(lt) fopi(le) static void -_sse_eqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_eqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; jit_word_t jp_code; if ((rc = reg8_p(r0))) reg = r0; @@ -853,10 +853,10 @@ fopi(ge) fopi(gt) static void -_sse_ner_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ner_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; jit_word_t jp_code; if ((rc = reg8_p(r0))) reg = r0; @@ -878,7 +878,7 @@ fopi(ne) fopi(unlt) static void -_sse_unler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_unler_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -889,7 +889,7 @@ _sse_unler_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(unle) static void -_sse_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -900,7 +900,7 @@ _sse_uneqr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) fopi(uneq) static void -_sse_unger_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_unger_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -912,7 +912,7 @@ fopi(unge) fopi(ungt) static void -_sse_ltgtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) ixorr(r0, r0); @@ -925,9 +925,9 @@ fopi(ord) fopi(unord) static void -_sse_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_sse_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (sse_address_p(i0)) movssmr(i0, _NOREG, _NOREG, _SCL1, r0); else { @@ -939,10 +939,10 @@ _sse_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_sse_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); sse_ldr_f(r0, rn(reg)); @@ -953,9 +953,9 @@ _sse_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_sse_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_sse_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) movssmr(i0, r1, _NOREG, _SCL1, r0); else { @@ -972,9 +972,9 @@ _sse_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sse_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sse_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (sse_address_p(i0)) movssrm(r0, i0, _NOREG, _NOREG, _SCL1); else { @@ -986,10 +986,10 @@ _sse_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sse_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); sse_str_f(rn(reg), r2); @@ -1000,9 +1000,9 @@ _sse_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_sse_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) movssrm(r1, i0, r0, _NOREG, _SCL1); else { @@ -1019,7 +1019,7 @@ _sse_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_sse_bltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bltr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r1, r0); ja(i0); @@ -1028,7 +1028,7 @@ _sse_bltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(lt) static jit_word_t -_sse_bler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bler_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r1, r0); jae(i0); @@ -1037,7 +1037,7 @@ _sse_bler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(le) static jit_word_t -_sse_beqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_beqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t jp_code; ucomissr(r0, r1); @@ -1050,7 +1050,7 @@ _sse_beqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(eq) static jit_word_t -_sse_bger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); jae(i0); @@ -1059,7 +1059,7 @@ _sse_bger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(ge) static jit_word_t -_sse_bgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); ja(i0); @@ -1068,7 +1068,7 @@ _sse_bgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(gt) static jit_word_t -_sse_bner_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bner_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t jp_code; jit_word_t jz_code; @@ -1085,7 +1085,7 @@ _sse_bner_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(ne) static jit_word_t -_sse_bunltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunltr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); jnae(i0); @@ -1094,7 +1094,7 @@ _sse_bunltr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(unlt) static jit_word_t -_sse_bunler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunler_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1107,7 +1107,7 @@ _sse_bunler_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(unle) static jit_word_t -_sse_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1120,7 +1120,7 @@ _sse_buneqr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(uneq) static jit_word_t -_sse_bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1133,7 +1133,7 @@ _sse_bunger_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(unge) static jit_word_t -_sse_bungtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bungtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r1, r0); jnae(i0); @@ -1142,7 +1142,7 @@ _sse_bungtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(ungt) static jit_word_t -_sse_bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); jne(i0); @@ -1151,7 +1151,7 @@ _sse_bltgtr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(ltgt) static jit_word_t -_sse_bordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bordr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); jnp(i0); @@ -1160,7 +1160,7 @@ _sse_bordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) fbopi(ord) static jit_word_t -_sse_bunordr_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunordr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomissr(r0, r1); jp(i0); @@ -1172,10 +1172,10 @@ dopi(lt) dopi(le) static void -_sse_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; jit_word_t jp_code; if ((rc = reg8_p(r0))) reg = r0; @@ -1198,10 +1198,10 @@ dopi(ge) dopi(gt) static void -_sse_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; jit_word_t jp_code; if ((rc = reg8_p(r0))) reg = r0; @@ -1223,7 +1223,7 @@ dopi(ne) dopi(unlt) static void -_sse_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -1234,7 +1234,7 @@ _sse_unler_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(unle) static void -_sse_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -1245,7 +1245,7 @@ _sse_uneqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(uneq) static void -_sse_unger_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -1257,7 +1257,7 @@ dopi(unge) dopi(ungt) static void -_sse_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) ixorr(r0, r0); @@ -1270,21 +1270,21 @@ dopi(ord) dopi(unord) static void -_sse_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) ssexr(0xf2, X86_SSE_MOV, r0, r1); } static void -_sse_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_sse_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { - jit_int32_t ii[2]; + int32_t ii[2]; jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; jit_bool_t ldi; data.d = *i0; @@ -1318,9 +1318,9 @@ _sse_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) } static void -_sse_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_sse_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (sse_address_p(i0)) movsdmr(i0, _NOREG, _NOREG, _SCL1, r0); else { @@ -1332,10 +1332,10 @@ _sse_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_sse_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); sse_ldr_d(r0, rn(reg)); @@ -1346,9 +1346,9 @@ _sse_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_sse_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_sse_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) movsdmr(i0, r1, _NOREG, _SCL1, r0); else { @@ -1365,9 +1365,9 @@ _sse_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_sse_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_sse_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (sse_address_p(i0)) movsdrm(r0, i0, _NOREG, _NOREG, _SCL1); else { @@ -1379,10 +1379,10 @@ _sse_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_sse_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_sse_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); sse_str_d(rn(reg), r2); @@ -1393,9 +1393,9 @@ _sse_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_sse_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) movsdrm(r1, i0, r0, _NOREG, _SCL1); else { @@ -1412,7 +1412,7 @@ _sse_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static jit_word_t -_sse_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r1, r0); ja(i0); @@ -1421,7 +1421,7 @@ _sse_bltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(lt) static jit_word_t -_sse_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r1, r0); jae(i0); @@ -1430,7 +1430,7 @@ _sse_bler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(le) static jit_word_t -_sse_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t jp_code; ucomisdr(r0, r1); @@ -1443,7 +1443,7 @@ _sse_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(eq) static jit_word_t -_sse_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); jae(i0); @@ -1452,7 +1452,7 @@ _sse_bger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ge) static jit_word_t -_sse_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); ja(i0); @@ -1461,7 +1461,7 @@ _sse_bgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(gt) static jit_word_t -_sse_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { jit_word_t jp_code; jit_word_t jz_code; @@ -1478,7 +1478,7 @@ _sse_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ne) static jit_word_t -_sse_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); jnae(i0); @@ -1487,7 +1487,7 @@ _sse_bunltr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(unlt) static jit_word_t -_sse_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1500,7 +1500,7 @@ _sse_bunler_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(unle) static jit_word_t -_sse_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1513,7 +1513,7 @@ _sse_buneqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(uneq) static jit_word_t -_sse_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == r1) jmpi(i0); @@ -1526,7 +1526,7 @@ _sse_bunger_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(unge) static jit_word_t -_sse_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r1, r0); jnae(i0); @@ -1535,7 +1535,7 @@ _sse_bungtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ungt) static jit_word_t -_sse_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); jne(i0); @@ -1544,7 +1544,7 @@ _sse_bltgtr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ltgt) static jit_word_t -_sse_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); jnp(i0); @@ -1553,7 +1553,7 @@ _sse_bordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) dbopi(ord) static jit_word_t -_sse_bunordr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_sse_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { ucomisdr(r0, r1); jp(i0); diff --git a/jit/x86-x87.c b/jit/x86-x87.c index 95e9e9f19..0f26273e3 100644 --- a/jit/x86-x87.c +++ b/jit/x86-x87.c @@ -38,7 +38,7 @@ # define fldcwm(md, rb, ri, ms) x87rx(015, md, rb, ri, ms) # define fstcwm(md, rb, ri, ms) _fstcwm(_jit, md, rb, ri, ms) static void -_fstcwm(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_fstcwm(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define fldsm(md, rb, ri, ms) x87rx(010, md, rb, ri, ms) # define fstsm(md, rb, ri, ms) x87rx(012, md, rb, ri, ms) # define fldlm(md, rb, ri, ms) x87rx(050, md, rb, ri, ms) @@ -49,8 +49,8 @@ _fstcwm(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define fildlm(md, rb, ri, ms) x87rx(030, md, rb,ri, ms) # define fildqm(md, rb, ri, ms) x87rx(075, md, rb,ri, ms) static void -_x87rx(jit_state_t*, jit_int32_t, jit_int32_t, - jit_int32_t, jit_int32_t, jit_int32_t); +_x87rx(jit_state_t*, int32_t, jit_int32_t, + int32_t, jit_int32_t, jit_int32_t); # define x87ri(cc,r0) _x87ri(_jit,cc,r0) # define fchs_() x87ri(014, 0) # define fabs_() x87ri(014, 1) @@ -68,7 +68,7 @@ _x87rx(jit_state_t*, jit_int32_t, jit_int32_t, # define fstpr(r0) x87ri(053, r0) # define fucomir(r0) x87ri(035, r0) # define fucomipr(r0) x87ri(075, r0) -static void _x87ri(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87ri(jit_state_t*, int32_t, jit_int32_t); # define faddr(r0, r1) x87rri(000, r0, r1) # define fmulr(r0, r1) x87rri(001, r0, r1) # define fsubr(r0, r1) x87rri(004, r0, r1) @@ -76,327 +76,327 @@ static void _x87ri(jit_state_t*, jit_int32_t, jit_int32_t); # define fdivr(r0, r1) x87rri(006, r0, r1) # define fdivrr(r0, r1) x87rri(007, r0, r1) # define x87rri(cc, r0, r1) _x87rri(_jit, cc, r0, r1) -static void _x87rri(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87rri(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_addr_f(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2) # define x87_addi_f(r0, r1, i0) _x87_addi_f(_jit, r0, r1, i0) -static void _x87_addi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_addr_d(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2) -static void _x87_addr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_addr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_addi_d(r0, r1, i0) _x87_addi_d(_jit, r0, r1, i0) -static void _x87_addi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_subr_f(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2) # define x87_subi_f(r0, r1, i0) _x87_subi_f(_jit, r0, r1, i0) -static void _x87_subi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_subr_d(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2) -static void _x87_subr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_subr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_subi_d(r0, r1, i0) _x87_subi_d(_jit, r0, r1, i0) -static void _x87_subi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_rsbr_f(r0, r1, r2) x87_subr_f(r0, r2, r1) # define x87_rsbi_f(r0, r1, i0) _x87_rsbi_f(_jit, r0, r1, i0) -static void _x87_rsbi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_rsbr_d(r0, r1, r2) x87_subr_d(r0, r2, r1) # define x87_rsbi_d(r0, r1, i0) _x87_rsbi_d(_jit, r0, r1, i0) -static void _x87_rsbi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_mulr_f(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2) # define x87_muli_f(r0, r1, i0) _x87_muli_f(_jit, r0, r1, i0) -static void _x87_muli_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_mulr_d(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2) -static void _x87_mulr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_mulr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_muli_d(r0, r1, i0) _x87_muli_d(_jit, r0, r1, i0) -static void _x87_muli_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_divr_f(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2) # define x87_divi_f(r0, r1, i0) _x87_divi_f(_jit, r0, r1, i0) -static void _x87_divi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_divr_d(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2) -static void _x87_divr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_divr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_divi_d(r0, r1, i0) _x87_divi_d(_jit, r0, r1, i0) -static void _x87_divi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_absr_f(r0, r1) _x87_absr_d(_jit, r0, r1) # define x87_absr_d(r0, r1) _x87_absr_d(_jit, r0, r1) -static void _x87_absr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_absr_d(jit_state_t*, int32_t, jit_int32_t); # define x87_negr_f(r0, r1) _x87_negr_d(_jit, r0, r1) # define x87_negr_d(r0, r1) _x87_negr_d(_jit, r0, r1) -static void _x87_negr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_negr_d(jit_state_t*, int32_t, jit_int32_t); # define x87_sqrtr_f(r0, r1) _x87_sqrtr_d(_jit, r0, r1) # define x87_sqrtr_d(r0, r1) _x87_sqrtr_d(_jit, r0, r1) -static void _x87_sqrtr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_sqrtr_d(jit_state_t*, int32_t, jit_int32_t); # define x87_truncr_f_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1) # define x87_truncr_d_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1) -static void _x87_truncr_d_i(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_truncr_d_i(jit_state_t*, int32_t, jit_int32_t); # if __X64 # define x87_truncr_f_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1) # define x87_truncr_d_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1) -static void _x87_truncr_d_l(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_truncr_d_l(jit_state_t*, int32_t, jit_int32_t); # endif # define x87_extr_f(r0, r1) _x87_extr_d(_jit, r0, r1) # define x87_extr_d(r0, r1) _x87_extr_d(_jit, r0, r1) # define x87_extr_f_d(r0, r1) x87_movr_d(r0, r1) # define x87_extr_d_f(r0, r1) x87_movr_d(r0, r1) -static void _x87_extr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_extr_d(jit_state_t*, int32_t, jit_int32_t); # define x87cmp(code, r0, r1, r2) _x87cmp(_jit, code, r0, r1, r2) static void -_x87cmp(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_x87cmp(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define x87cmp2(code, r0, r1, r2) _x87cmp2(_jit, code, r0, r1, r2) static void -_x87cmp2(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t, jit_int32_t); +_x87cmp2(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); # define x87jcc(code, i0, r0, r1) _x87jcc(_jit, code, i0, r0, r1) static jit_word_t -_x87jcc(jit_state_t*, jit_int32_t, jit_word_t, jit_int32_t, jit_int32_t); +_x87jcc(jit_state_t*, int32_t, jit_word_t, jit_int32_t, jit_int32_t); # define x87jcc2(code, i0, r0, r1) _x87jcc2(_jit, code, i0, r0, r1) static jit_word_t -_x87jcc2(jit_state_t*, jit_int32_t, jit_word_t, jit_int32_t, jit_int32_t); +_x87jcc2(jit_state_t*, int32_t, jit_word_t, jit_int32_t, jit_int32_t); #define x87_movi_f(r0,i0) _x87_movi_f(_jit,r0,i0) -static void _x87_movi_f(jit_state_t*, jit_int32_t, jit_float32_t*); +static void _x87_movi_f(jit_state_t*, int32_t, jit_float32_t*); # define x87_ldr_f(r0, r1) _x87_ldr_f(_jit, r0, r1) -static void _x87_ldr_f(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_ldr_f(jit_state_t*, int32_t, jit_int32_t); # define x87_ldi_f(r0, i0) _x87_ldi_f(_jit, r0, i0) -static void _x87_ldi_f(jit_state_t*, jit_int32_t, jit_word_t); +static void _x87_ldi_f(jit_state_t*, int32_t, jit_word_t); # define x87_ldxr_f(r0, r1, r2) _x87_ldxr_f(_jit, r0, r1, r2) -static void _x87_ldxr_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_ldxr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_ldxi_f(r0, r1, i0) _x87_ldxi_f(_jit, r0, r1, i0) -static void _x87_ldxi_f(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _x87_ldxi_f(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define x87_str_f(r0, r1) _x87_str_f(_jit, r0, r1) -static void _x87_str_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _x87_str_f(jit_state_t*,int32_t,jit_int32_t); # define x87_sti_f(i0, r0) _x87_sti_f(_jit, i0, r0) -static void _x87_sti_f(jit_state_t*,jit_word_t, jit_int32_t); +static void _x87_sti_f(jit_state_t*,jit_word_t, int32_t); # define x87_stxr_f(r0, r1, r2) _x87_stxr_f(_jit, r0, r1, r2) -static void _x87_stxr_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _x87_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define x87_stxi_f(i0, r0, r1) _x87_stxi_f(_jit, i0, r0, r1) -static void _x87_stxi_f(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _x87_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define x87_ltr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1) # define x87_lti_f(r0, r1, i0) _x87_lti_f(_jit, r0, r1, i0) -static void _x87_lti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ler_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1) # define x87_lei_f(r0, r1, i0) _x87_lei_f(_jit, r0, r1, i0) -static void _x87_lei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_eqr_f(r0, r1, r2) x87_eqr_d(r0, r2, r1) # define x87_eqi_f(r0, r1, i0) _x87_eqi_f(_jit, r0, r1, i0) -static void _x87_eqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ger_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2) # define x87_gei_f(r0, r1, i0) _x87_gei_f(_jit, r0, r1, i0) -static void _x87_gei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_gtr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2) # define x87_gti_f(r0, r1, i0) _x87_gti_f(_jit, r0, r1, i0) -static void _x87_gti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ner_f(r0, r1, r2) x87_ner_d(r0, r2, r1) # define x87_nei_f(r0, r1, i0) _x87_nei_f(_jit, r0, r1, i0) -static void _x87_nei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_unltr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2) # define x87_unlti_f(r0, r1, i0) _x87_unlti_f(_jit, r0, r1, i0) -static void _x87_unlti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_unler_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2) # define x87_unlei_f(r0, r1, i0) _x87_unlei_f(_jit, r0, r1, i0) -static void _x87_unlei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_uneqr_f(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2) # define x87_uneqi_f(r0, r1, i0) _x87_uneqi_f(_jit, r0, r1, i0) -static void _x87_uneqi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_unger_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1) # define x87_ungei_f(r0, r1, i0) _x87_ungei_f(_jit, r0, r1, i0) -static void _x87_ungei_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ungtr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1) # define x87_ungti_f(r0, r1, i0) _x87_ungti_f(_jit, r0, r1, i0) -static void _x87_ungti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ltgtr_f(r0, r1, r2) x87_ltgtr_d(r0, r1, r2) # define x87_ltgti_f(r0, r1, i0) _x87_ltgti_f(_jit, r0, r1, i0) -static void _x87_ltgti_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ordr_f(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1) # define x87_ordi_f(r0, r1, i0) _x87_ordi_f(_jit, r0, r1, i0) -static void _x87_ordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_unordr_f(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1) # define x87_unordi_f(r0, r1, i0) _x87_unordi_f(_jit, r0, r1, i0) -static void _x87_unordi_f(jit_state_t*,jit_int32_t,jit_int32_t,jit_float32_t*); +static void _x87_unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); # define x87_ltr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1) # define x87_lti_d(r0, r1, i0) _x87_lti_d(_jit, r0, r1, i0) -static void _x87_lti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ler_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1) # define x87_lei_d(r0, r1, i0) _x87_lei_d(_jit, r0, r1, i0) -static void _x87_lei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_eqr_d(r0, r1, r2) _x87_eqr_d(_jit, r0, r2, r1) -static void _x87_eqr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_eqr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_eqi_d(r0, r1, i0) _x87_eqi_d(_jit, r0, r1, i0) -static void _x87_eqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ger_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2) # define x87_gei_d(r0, r1, i0) _x87_gei_d(_jit, r0, r1, i0) -static void _x87_gei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_gtr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2) # define x87_gti_d(r0, r1, i0) _x87_gti_d(_jit, r0, r1, i0) -static void _x87_gti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ner_d(r0, r1, r2) _x87_ner_d(_jit, r0, r2, r1) -static void _x87_ner_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_ner_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_nei_d(r0, r1, i0) _x87_nei_d(_jit, r0, r1, i0) -static void _x87_nei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_unltr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2) # define x87_unlti_d(r0, r1, i0) _x87_unlti_d(_jit, r0, r1, i0) -static void _x87_unlti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_unler_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2) # define x87_unlei_d(r0, r1, i0) _x87_unlei_d(_jit, r0, r1, i0) -static void _x87_unlei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_uneqr_d(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2) # define x87_uneqi_d(r0, r1, i0) _x87_uneqi_d(_jit, r0, r1, i0) -static void _x87_uneqi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_unger_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1) # define x87_ungei_d(r0, r1, i0) _x87_ungei_d(_jit, r0, r1, i0) -static void _x87_ungei_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ungtr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1) # define x87_ungti_d(r0, r1, i0) _x87_ungti_d(_jit, r0, r1, i0) -static void _x87_ungti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ltgtr_d(r0, r1, r2) _x87_ltgtr_d(_jit, r0, r1, r2) -static void _x87_ltgtr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_ltgtr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_ltgti_d(r0, r1, i0) _x87_ltgti_d(_jit, r0, r1, i0) -static void _x87_ltgti_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_ordr_d(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1) # define x87_ordi_d(r0, r1, i0) _x87_ordi_d(_jit, r0, r1, i0) -static void _x87_ordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); # define x87_unordr_d(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1) # define x87_unordi_d(r0, r1, i0) _x87_unordi_d(_jit, r0, r1, i0) -static void _x87_unordi_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_float64_t*); +static void _x87_unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); #define x87_movr_f(r0,r1) _x87_movr_d(_jit,r0,r1) #define x87_movr_d(r0,r1) _x87_movr_d(_jit,r0,r1) -static void _x87_movr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_movr_d(jit_state_t*, int32_t, jit_int32_t); #define x87_movi_d(r0,i0) _x87_movi_d(_jit,r0,i0) -static void _x87_movi_d(jit_state_t*, jit_int32_t, jit_float64_t*); +static void _x87_movi_d(jit_state_t*, int32_t, jit_float64_t*); # define x87_ldr_d(r0, r1) _x87_ldr_d(_jit, r0, r1) -static void _x87_ldr_d(jit_state_t*, jit_int32_t, jit_int32_t); +static void _x87_ldr_d(jit_state_t*, int32_t, jit_int32_t); # define x87_ldi_d(r0, i0) _x87_ldi_d(_jit, r0, i0) -static void _x87_ldi_d(jit_state_t*, jit_int32_t, jit_word_t); +static void _x87_ldi_d(jit_state_t*, int32_t, jit_word_t); # define x87_ldxr_d(r0, r1, r2) _x87_ldxr_d(_jit, r0, r1, r2) -static void _x87_ldxr_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_int32_t); +static void _x87_ldxr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); # define x87_ldxi_d(r0, r1, i0) _x87_ldxi_d(_jit, r0, r1, i0) -static void _x87_ldxi_d(jit_state_t*, jit_int32_t, jit_int32_t, jit_word_t); +static void _x87_ldxi_d(jit_state_t*, int32_t, jit_int32_t, jit_word_t); # define x87_str_d(r0, r1) _x87_str_d(_jit, r0, r1) -static void _x87_str_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _x87_str_d(jit_state_t*,int32_t,jit_int32_t); # define x87_sti_d(i0, r0) _x87_sti_d(_jit, i0, r0) -static void _x87_sti_d(jit_state_t*,jit_word_t,jit_int32_t); +static void _x87_sti_d(jit_state_t*,jit_word_t,int32_t); # define x87_stxr_d(r0, r1, r2) _x87_stxr_d(_jit, r0, r1, r2) -static void _x87_stxr_d(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); +static void _x87_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); # define x87_stxi_d(i0, r0, r1) _x87_stxi_d(_jit, i0, r0, r1) -static void _x87_stxi_d(jit_state_t*,jit_word_t,jit_int32_t,jit_int32_t); +static void _x87_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); # define x87_bltr_f(i0, r0, r1) x87jcc(X86_CC_A, i0, r1, r0) # define x87_blti_f(i0, r0, i1) _x87_blti_f(_jit, i0, r0, i1) static jit_word_t -_x87_blti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_blti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bler_f(i0, r0, r1) x87jcc(X86_CC_AE, i0, r1, r0) # define x87_blei_f(i0, r0, i1) _x87_blei_f(_jit, i0, r0, i1) static jit_word_t -_x87_blei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_blei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_beqr_f(i0, r0, r1) _x87_beqr_d(_jit, i0, r0, r1) # define x87_beqi_f(i0, r0, i1) _x87_beqi_f(_jit, i0, r0, i1) static jit_word_t -_x87_beqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_beqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bger_f(i0, r0, r1) x87jcc(X86_CC_AE, i0, r0, r1) # define x87_bgei_f(i0, r0, i1) _x87_bgei_f(_jit, i0, r0, i1) static jit_word_t -_x87_bgei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bgei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bgtr_f(i0, r0, r1) x87jcc(X86_CC_A, i0, r0, r1) # define x87_bgti_f(i0, r0, i1) _x87_bgti_f(_jit, i0, r0, i1) static jit_word_t -_x87_bgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bner_f(i0, r0, r1) _x87_bner_d(_jit, i0, r0, r1) # define x87_bnei_f(i0, r0, i1) _x87_bnei_f(_jit, i0, r0, i1) static jit_word_t -_x87_bnei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bnei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bunltr_f(i0, r0, r1) x87jcc(X86_CC_NAE, i0, r0, r1) # define x87_bunlti_f(i0, r0, i1) _x87_bunlti_f(_jit, i0, r0, i1) static jit_word_t -_x87_bunlti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bunlti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bunler_f(i0, r0, r1) x87jcc(X86_CC_NA, i0, r0, r1) # define x87_bunlei_f(i0, r0, i1) _x87_bunlei_f(_jit, i0, r0, i1) static jit_word_t -_x87_bunlei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bunlei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_buneqr_f(i0, r0, r1) x87jcc2(X86_CC_E, i0, r0, r1) # define x87_buneqi_f(i0, r0, i1) _x87_buneqi_f(_jit, i0, r0, i1) static jit_word_t -_x87_buneqi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_buneqi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bunger_f(i0, r0, r1) x87jcc(X86_CC_NA, i0, r1, r0) # define x87_bungei_f(i0, r0, i1) _x87_bungei_f(_jit, i0, r0, i1) static jit_word_t -_x87_bungei_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bungei_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bungtr_f(i0, r0, r1) x87jcc(X86_CC_NAE, i0, r1, r0) # define x87_bungti_f(i0, r0, i1) _x87_bungti_f(_jit, i0, r0, i1) static jit_word_t -_x87_bungti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bungti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bltgtr_f(i0, r0, r1) x87jcc2(X86_CC_NE, i0, r0, r1) # define x87_bltgti_f(i0, r0, i1) _x87_bltgti_f(_jit, i0, r0, i1) static jit_word_t -_x87_bltgti_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bltgti_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bordr_f(i0, r0, r1) x87jcc2(X86_CC_NP, i0, r0, r1) # define x87_bordi_f(i0, r0, i1) _x87_bordi_f(_jit, i0, r0, i1) static jit_word_t -_x87_bordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bunordr_f(i0, r0, r1) x87jcc2(X86_CC_P, i0, r0, r1) # define x87_bunordi_f(i0, r0, i1) _x87_bunordi_f(_jit, i0, r0, i1) static jit_word_t -_x87_bunordi_f(jit_state_t*, jit_word_t, jit_int32_t, jit_float32_t*); +_x87_bunordi_f(jit_state_t*, jit_word_t, int32_t, jit_float32_t*); # define x87_bltr_d(i0, r0, r1) x87jcc(X86_CC_A, i0, r1, r0) # define x87_blti_d(i0, r0, i1) _x87_blti_d(_jit, i0, r0, i1) static jit_word_t -_x87_blti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_blti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bler_d(i0, r0, r1) x87jcc(X86_CC_AE, i0, r1, r0) # define x87_blei_d(i0, r0, i1) _x87_blei_d(_jit, i0, r0, i1) static jit_word_t -_x87_blei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_blei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_beqr_d(i0, r0, r1) _x87_beqr_d(_jit, i0, r0, r1) static jit_word_t -_x87_beqr_d(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +_x87_beqr_d(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define x87_beqi_d(i0, r0, i1) _x87_beqi_d(_jit, i0, r0, i1) static jit_word_t -_x87_beqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_beqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bger_d(i0, r0, r1) x87jcc(X86_CC_AE, i0, r0, r1) # define x87_bgei_d(i0, r0, i1) _x87_bgei_d(_jit, i0, r0, i1) static jit_word_t -_x87_bgei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bgei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bgtr_d(i0, r0, r1) x87jcc(X86_CC_A, i0, r0, r1) # define x87_bgti_d(i0, r0, i1) _x87_bgti_d(_jit, i0, r0, i1) static jit_word_t -_x87_bgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bner_d(i0, r0, r1) _x87_bner_d(_jit, i0, r0, r1) static jit_word_t -_x87_bner_d(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t); +_x87_bner_d(jit_state_t*, jit_word_t, int32_t, jit_int32_t); # define x87_bnei_d(i0, r0, i1) _x87_bnei_d(_jit, i0, r0, i1) static jit_word_t -_x87_bnei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bnei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bunltr_d(i0, r0, r1) x87jcc(X86_CC_NAE, i0, r0, r1) # define x87_bunlti_d(i0, r0, i1) _x87_bunlti_d(_jit, i0, r0, i1) static jit_word_t -_x87_bunlti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bunlti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bunler_d(i0, r0, r1) x87jcc(X86_CC_NA, i0, r0, r1) # define x87_bunlei_d(i0, r0, i1) _x87_bunlei_d(_jit, i0, r0, i1) static jit_word_t -_x87_bunlei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bunlei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_buneqr_d(i0, r0, r1) x87jcc2(X86_CC_E, i0, r0, r1) # define x87_buneqi_d(i0, r0, i1) _x87_buneqi_d(_jit, i0, r0, i1) static jit_word_t -_x87_buneqi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_buneqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bunger_d(i0, r0, r1) x87jcc(X86_CC_NA, i0, r1, r0) # define x87_bungei_d(i0, r0, i1) _x87_bungei_d(_jit, i0, r0, i1) static jit_word_t -_x87_bungei_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bungei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bungtr_d(i0, r0, r1) x87jcc(X86_CC_NAE, i0, r1, r0) # define x87_bungti_d(i0, r0, i1) _x87_bungti_d(_jit, i0, r0, i1) static jit_word_t -_x87_bungti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bungti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bltgtr_d(i0, r0, r1) x87jcc2(X86_CC_NE, i0, r0, r1) # define x87_bltgti_d(i0, r0, i1) _x87_bltgti_d(_jit, i0, r0, i1) static jit_word_t -_x87_bltgti_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bltgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bordr_d(i0, r0, r1) x87jcc2(X86_CC_NP, i0, r0, r1) # define x87_bordi_d(i0, r0, i1) _x87_bordi_d(_jit, i0, r0, i1) static jit_word_t -_x87_bordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); # define x87_bunordr_d(i0, r0, r1) x87jcc2(X86_CC_P, i0, r0, r1) # define x87_bunordi_d(i0, r0, i1) _x87_bunordi_d(_jit, i0, r0, i1) static jit_word_t -_x87_bunordi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_float64_t*); +_x87_bunordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); #endif #if CODE # define fpr_opi(name, type, size) \ static void \ _x87_##name##i_##type(jit_state_t *_jit, \ - jit_int32_t r0, jit_int32_t r1, \ + int32_t r0, jit_int32_t r1, \ jit_float##size##_t *i0) \ { \ - jit_int32_t reg = jit_get_reg(jit_class_fpr); \ + int32_t reg = jit_get_reg(jit_class_fpr); \ assert(jit_x87_reg_p(reg)); \ x87_movi_##type(rn(reg), i0); \ x87_##name##r_##type(r0, r1, rn(reg)); \ @@ -405,11 +405,11 @@ _x87_##name##i_##type(jit_state_t *_jit, \ # define fpr_bopi(name, type, size) \ static jit_word_t \ _x87_b##name##i_##type(jit_state_t *_jit, \ - jit_word_t i0, jit_int32_t r0, \ + jit_word_t i0, int32_t r0, \ jit_float##size##_t *i1) \ { \ jit_word_t word; \ - jit_int32_t reg = jit_get_reg(jit_class_fpr| \ + int32_t reg = jit_get_reg(jit_class_fpr| \ jit_class_nospill); \ assert(jit_x87_reg_p(reg)); \ x87_movi_##type(rn(reg), i1); \ @@ -423,8 +423,8 @@ _x87_b##name##i_##type(jit_state_t *_jit, \ # define dbopi(name) fpr_bopi(name, d, 64) static void -_fstcwm(jit_state_t *_jit, jit_int32_t md, - jit_int32_t rb, jit_int32_t ri, jit_int32_t ms) +_fstcwm(jit_state_t *_jit, int32_t md, + int32_t rb, jit_int32_t ri, jit_int32_t ms) { ic(0x9b); rex(0, 1, rb, ri, _NOREG); @@ -432,8 +432,8 @@ _fstcwm(jit_state_t *_jit, jit_int32_t md, } static void -_x87rx(jit_state_t *_jit, jit_int32_t code, jit_int32_t md, - jit_int32_t rb, jit_int32_t ri, jit_int32_t ms) +_x87rx(jit_state_t *_jit, int32_t code, jit_int32_t md, + int32_t rb, jit_int32_t ri, jit_int32_t ms) { rex(0, 1, rb, ri, _NOREG); ic(0xd8 | (code >> 3)); @@ -441,14 +441,14 @@ _x87rx(jit_state_t *_jit, jit_int32_t code, jit_int32_t md, } static void -_x87ri(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0) +_x87ri(jit_state_t *_jit, int32_t code, jit_int32_t r0) { ic(0xd8 | (code >> 3)); mrm(0x03, (code & 7), r0); } static void -_x87rri(jit_state_t *_jit, jit_int32_t code, jit_int32_t r0, jit_int32_t r1) +_x87rri(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_int32_t r1) { if (r1 == _ST0_REGNO) x87ri(code | 040, r0); @@ -465,7 +465,7 @@ fopi(mul) fopi(div) static void -_x87_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) { if (r2 == _ST0_REGNO) @@ -499,7 +499,7 @@ _x87_addr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(add) static void -_x87_subr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) { if (r2 == _ST0_REGNO) @@ -535,7 +535,7 @@ dopi(sub) dopi(rsb) static void -_x87_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) { if (r2 == _ST0_REGNO) @@ -569,7 +569,7 @@ _x87_mulr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(mul) static void -_x87_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r0 == r1) { if (r2 == _ST0_REGNO) @@ -603,7 +603,7 @@ _x87_divr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) dopi(div) static void -_x87_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 == r1) { if (r1 == _ST0_REGNO) @@ -622,7 +622,7 @@ _x87_absr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 == r1) { if (r1 == _ST0_REGNO) @@ -641,7 +641,7 @@ _x87_negr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 == r1) { if (r1 == _ST0_REGNO) @@ -660,7 +660,7 @@ _x87_sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { #if defined(sun) /* for the sake of passing test cases in x87 mode, otherwise only sse @@ -690,7 +690,7 @@ _x87_truncr_d_i(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # if __X64 static void -_x87_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { fldr(r1); fisttpqm(CVT_OFFSET, _RBP_REGNO, _NOREG, _SCL1); @@ -699,7 +699,7 @@ _x87_truncr_d_l(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) # endif static void -_x87_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { stxi(CVT_OFFSET, _RBP_REGNO, r1); # if __X32 @@ -711,11 +711,11 @@ _x87_extr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87cmp(jit_state_t *_jit, jit_int32_t code, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87cmp(jit_state_t *_jit, int32_t code, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; + int32_t reg; if ((rc = reg8_p(r0))) reg = r0; else { @@ -735,12 +735,12 @@ _x87cmp(jit_state_t *_jit, jit_int32_t code, } static void -_x87cmp2(jit_state_t *_jit, jit_int32_t code, - jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87cmp2(jit_state_t *_jit, int32_t code, + int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; - jit_int32_t reg; - jit_int32_t f1, f2; + int32_t reg; + int32_t f1, f2; if (r2 == _ST0_REGNO) f1 = r2, f2 = r1; else f1 = r1, f2 = r2; if ((rc = reg8_p(r0))) @@ -762,8 +762,8 @@ _x87cmp2(jit_state_t *_jit, jit_int32_t code, } static jit_word_t -_x87jcc(jit_state_t *_jit, jit_int32_t code, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87jcc(jit_state_t *_jit, int32_t code, + jit_word_t i0, int32_t r0, jit_int32_t r1) { if (r0 == _ST0_REGNO) fucomir(r1); @@ -776,10 +776,10 @@ _x87jcc(jit_state_t *_jit, jit_int32_t code, } static jit_word_t -_x87jcc2(jit_state_t *_jit, jit_int32_t code, - jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87jcc2(jit_state_t *_jit, int32_t code, + jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t f0, f1; + int32_t f0, f1; if (r1 == _ST0_REGNO) f0 = r1, f1 = r0; else f0 = r0, f1 = r1; if (f0 == _ST0_REGNO) @@ -822,13 +822,13 @@ fbopi(ord) fbopi(unord) static void -_x87_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) +_x87_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0) { union { - jit_int32_t i; + int32_t i; jit_float32_t f; } data; - jit_int32_t reg; + int32_t reg; data.f = *i0; if (data.f == 0.0 && !(data.i & 0x80000000)) @@ -861,16 +861,16 @@ _x87_movi_f(jit_state_t *_jit, jit_int32_t r0, jit_float32_t *i0) } static void -_x87_ldr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { fldsm(0, r1, _NOREG, _SCL1); fstpr(r0 + 1); } static void -_x87_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_x87_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (x87_address_p(i0)) { fldsm(i0, _NOREG, _NOREG, _SCL1); fstpr(r0 + 1); @@ -884,10 +884,10 @@ _x87_ldi_f(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_x87_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); x87_ldr_f(r0, rn(reg)); @@ -899,9 +899,9 @@ _x87_ldxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_x87_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_x87_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { fldsm(i0, r1, _NOREG, _SCL1); fstpr(r0 + 1); @@ -920,7 +920,7 @@ _x87_ldxi_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_x87_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r1 == _ST0_REGNO) fstsm(0, r0, _NOREG, _SCL1); @@ -932,9 +932,9 @@ _x87_str_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_x87_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (!x87_address_p(i0)) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -951,10 +951,10 @@ _x87_sti_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_x87_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); x87_str_f(rn(reg), r2); @@ -971,9 +971,9 @@ _x87_stxr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_x87_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!can_sign_extend_int_p(i0)) { reg = jit_get_reg(jit_class_gpr); #if __X64_32 @@ -995,7 +995,7 @@ _x87_stxi_f(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) } static void -_x87_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r0 != r1) { if (r1 == _ST0) @@ -1012,14 +1012,14 @@ _x87_movr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_movi_d(jit_state_t *_jit, jit_int32_t r0, jit_float64_t *i0) +_x87_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0) { union { - jit_int32_t ii[2]; + int32_t ii[2]; jit_word_t w; jit_float64_t d; } data; - jit_int32_t reg; + int32_t reg; data.d = *i0; if (data.d == 0.0 && !(data.ii[1] & 0x80000000)) @@ -1062,11 +1062,11 @@ dopi(lt) dopi(le) static void -_x87_eqr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; jit_word_t jp_code; - jit_int32_t reg, f1, f2; + int32_t reg, f1, f2; if (r2 == _ST0_REGNO) f1 = r2, f2 = r1; else f1 = r1, f2 = r2; if ((rc = reg8_p(r0))) @@ -1095,11 +1095,11 @@ dopi(ge) dopi(gt) static void -_x87_ner_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { jit_bool_t rc; jit_word_t jp_code; - jit_int32_t reg, f1, f2; + int32_t reg, f1, f2; if (r2 == _ST0_REGNO) f1 = r2, f2 = r1; else f1 = r1, f2 = r2; if ((rc = reg8_p(r0))) @@ -1131,7 +1131,7 @@ dopi(unge) dopi(ungt) static void -_x87_ltgtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (r1 == r2) movi(r0, 1); @@ -1144,16 +1144,16 @@ dopi(ord) dopi(unord) static void -_x87_ldr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { fldlm(0, r1, _NOREG, _SCL1); fstpr(r0 + 1); } static void -_x87_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) +_x87_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (x87_address_p(i0)) { fldlm(i0, _NOREG, _NOREG, _SCL1); fstpr(r0 + 1); @@ -1167,10 +1167,10 @@ _x87_ldi_d(jit_state_t *_jit, jit_int32_t r0, jit_word_t i0) } static void -_x87_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r1, r2); x87_ldr_d(r0, rn(reg)); @@ -1182,9 +1182,9 @@ _x87_ldxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_x87_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +_x87_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) { - jit_int32_t reg; + int32_t reg; if (can_sign_extend_int_p(i0)) { fldlm(i0, r1, _NOREG, _SCL1); fstpr(r0 + 1); @@ -1203,7 +1203,7 @@ _x87_ldxi_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void -_x87_str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { if (r1 == _ST0_REGNO) fstlm(0, r0, _NOREG, _SCL1); @@ -1215,9 +1215,9 @@ _x87_str_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_x87_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) +_x87_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0) { - jit_int32_t reg; + int32_t reg; if (!x87_address_p(i0)) { reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i0); @@ -1234,10 +1234,10 @@ _x87_sti_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0) } static void -_x87_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) +_x87_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) { #if __X64_32 - jit_int32_t reg; + int32_t reg; reg = jit_get_reg(jit_class_gpr); addr(rn(reg), r0, r1); x87_str_d(rn(reg), r2); @@ -1254,9 +1254,9 @@ _x87_stxr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) } static void -_x87_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t reg; + int32_t reg; if (!can_sign_extend_int_p(i0)) { reg = jit_get_reg(jit_class_gpr); #if __X64_32 @@ -1281,9 +1281,9 @@ dbopi(lt) dbopi(le) static jit_word_t -_x87_beqr_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t f0, f1; + int32_t f0, f1; jit_word_t jp_code; if (r1 == _ST0_REGNO) f0 = r1, f1 = r0; else f0 = r0, f1 = r1; @@ -1304,9 +1304,9 @@ dbopi(ge) dbopi(gt) static jit_word_t -_x87_bner_d(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_int32_t r1) +_x87_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) { - jit_int32_t f0, f1; + int32_t f0, f1; jit_word_t jp_code; jit_word_t jz_code; if (r1 == _ST0_REGNO) f0 = r1, f1 = r0; diff --git a/jit/x86.c b/jit/x86.c index 7905c5b97..50f8cca7c 100644 --- a/jit/x86.c +++ b/jit/x86.c @@ -66,17 +66,17 @@ typedef jit_pointer_t jit_va_list_t; #else typedef struct jit_va_list { - jit_int32_t gpoff; - jit_int32_t fpoff; + int32_t gpoff; + int32_t fpoff; jit_pointer_t over; jit_pointer_t save; /* Declared explicitly as int64 for the x32 abi */ - jit_int64_t rdi; - jit_int64_t rsi; - jit_int64_t rdx; - jit_int64_t rcx; - jit_int64_t r8; - jit_int64_t r9; + int64_t rdi; + int64_t rsi; + int64_t rdx; + int64_t rcx; + int64_t r8; + int64_t r9; jit_float64_t xmm0; jit_float64_t _up0; jit_float64_t xmm1; @@ -102,13 +102,13 @@ typedef struct jit_va_list { #define patch(instr, node) _patch(_jit, instr, node) static void _patch(jit_state_t*,jit_word_t,jit_node_t*); #define sse_from_x87_f(r0, r1) _sse_from_x87_f(_jit, r0, r1) -static void _sse_from_x87_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_from_x87_f(jit_state_t*,int32_t,jit_int32_t); #define sse_from_x87_d(r0, r1) _sse_from_x87_d(_jit, r0, r1) -static void _sse_from_x87_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _sse_from_x87_d(jit_state_t*,int32_t,jit_int32_t); #define x87_from_sse_f(r0, r1) _x87_from_sse_f(_jit, r0, r1) -static void _x87_from_sse_f(jit_state_t*,jit_int32_t,jit_int32_t); +static void _x87_from_sse_f(jit_state_t*,int32_t,jit_int32_t); #define x87_from_sse_d(r0, r1) _x87_from_sse_d(_jit, r0, r1) -static void _x87_from_sse_d(jit_state_t*,jit_int32_t,jit_int32_t); +static void _x87_from_sse_d(jit_state_t*,int32_t,jit_int32_t); #define PROTO 1 # include "x86-cpu.c" @@ -235,75 +235,75 @@ jit_get_cpu(void) { union { struct { - jit_uint32_t sse3 : 1; - jit_uint32_t pclmulqdq : 1; - jit_uint32_t dtes64 : 1; /* amd reserved */ - jit_uint32_t monitor : 1; - jit_uint32_t ds_cpl : 1; /* amd reserved */ - jit_uint32_t vmx : 1; /* amd reserved */ - jit_uint32_t smx : 1; /* amd reserved */ - jit_uint32_t est : 1; /* amd reserved */ - jit_uint32_t tm2 : 1; /* amd reserved */ - jit_uint32_t ssse3 : 1; - jit_uint32_t cntx_id : 1; /* amd reserved */ - jit_uint32_t __reserved0 : 1; - jit_uint32_t fma : 1; - jit_uint32_t cmpxchg16b : 1; - jit_uint32_t xtpr : 1; /* amd reserved */ - jit_uint32_t pdcm : 1; /* amd reserved */ - jit_uint32_t __reserved1 : 1; - jit_uint32_t pcid : 1; /* amd reserved */ - jit_uint32_t dca : 1; /* amd reserved */ - jit_uint32_t sse4_1 : 1; - jit_uint32_t sse4_2 : 1; - jit_uint32_t x2apic : 1; /* amd reserved */ - jit_uint32_t movbe : 1; /* amd reserved */ - jit_uint32_t popcnt : 1; - jit_uint32_t tsc : 1; /* amd reserved */ - jit_uint32_t aes : 1; - jit_uint32_t xsave : 1; - jit_uint32_t osxsave : 1; - jit_uint32_t avx : 1; - jit_uint32_t __reserved2 : 1; /* amd F16C */ - jit_uint32_t __reserved3 : 1; - jit_uint32_t __alwayszero : 1; /* amd RAZ */ + uint32_t sse3 : 1; + uint32_t pclmulqdq : 1; + uint32_t dtes64 : 1; /* amd reserved */ + uint32_t monitor : 1; + uint32_t ds_cpl : 1; /* amd reserved */ + uint32_t vmx : 1; /* amd reserved */ + uint32_t smx : 1; /* amd reserved */ + uint32_t est : 1; /* amd reserved */ + uint32_t tm2 : 1; /* amd reserved */ + uint32_t ssse3 : 1; + uint32_t cntx_id : 1; /* amd reserved */ + uint32_t __reserved0 : 1; + uint32_t fma : 1; + uint32_t cmpxchg16b : 1; + uint32_t xtpr : 1; /* amd reserved */ + uint32_t pdcm : 1; /* amd reserved */ + uint32_t __reserved1 : 1; + uint32_t pcid : 1; /* amd reserved */ + uint32_t dca : 1; /* amd reserved */ + uint32_t sse4_1 : 1; + uint32_t sse4_2 : 1; + uint32_t x2apic : 1; /* amd reserved */ + uint32_t movbe : 1; /* amd reserved */ + uint32_t popcnt : 1; + uint32_t tsc : 1; /* amd reserved */ + uint32_t aes : 1; + uint32_t xsave : 1; + uint32_t osxsave : 1; + uint32_t avx : 1; + uint32_t __reserved2 : 1; /* amd F16C */ + uint32_t __reserved3 : 1; + uint32_t __alwayszero : 1; /* amd RAZ */ } bits; jit_uword_t cpuid; } ecx; union { struct { - jit_uint32_t fpu : 1; - jit_uint32_t vme : 1; - jit_uint32_t de : 1; - jit_uint32_t pse : 1; - jit_uint32_t tsc : 1; - jit_uint32_t msr : 1; - jit_uint32_t pae : 1; - jit_uint32_t mce : 1; - jit_uint32_t cmpxchg8b : 1; - jit_uint32_t apic : 1; - jit_uint32_t __reserved0 : 1; - jit_uint32_t sep : 1; - jit_uint32_t mtrr : 1; - jit_uint32_t pge : 1; - jit_uint32_t mca : 1; - jit_uint32_t cmov : 1; - jit_uint32_t pat : 1; - jit_uint32_t pse36 : 1; - jit_uint32_t psn : 1; /* amd reserved */ - jit_uint32_t clfsh : 1; - jit_uint32_t __reserved1 : 1; - jit_uint32_t ds : 1; /* amd reserved */ - jit_uint32_t acpi : 1; /* amd reserved */ - jit_uint32_t mmx : 1; - jit_uint32_t fxsr : 1; - jit_uint32_t sse : 1; - jit_uint32_t sse2 : 1; - jit_uint32_t ss : 1; /* amd reserved */ - jit_uint32_t htt : 1; - jit_uint32_t tm : 1; /* amd reserved */ - jit_uint32_t __reserved2 : 1; - jit_uint32_t pbe : 1; /* amd reserved */ + uint32_t fpu : 1; + uint32_t vme : 1; + uint32_t de : 1; + uint32_t pse : 1; + uint32_t tsc : 1; + uint32_t msr : 1; + uint32_t pae : 1; + uint32_t mce : 1; + uint32_t cmpxchg8b : 1; + uint32_t apic : 1; + uint32_t __reserved0 : 1; + uint32_t sep : 1; + uint32_t mtrr : 1; + uint32_t pge : 1; + uint32_t mca : 1; + uint32_t cmov : 1; + uint32_t pat : 1; + uint32_t pse36 : 1; + uint32_t psn : 1; /* amd reserved */ + uint32_t clfsh : 1; + uint32_t __reserved1 : 1; + uint32_t ds : 1; /* amd reserved */ + uint32_t acpi : 1; /* amd reserved */ + uint32_t mmx : 1; + uint32_t fxsr : 1; + uint32_t sse : 1; + uint32_t sse2 : 1; + uint32_t ss : 1; /* amd reserved */ + uint32_t htt : 1; + uint32_t tm : 1; /* amd reserved */ + uint32_t __reserved2 : 1; + uint32_t pbe : 1; /* amd reserved */ } bits; jit_uword_t cpuid; } edx; @@ -379,7 +379,7 @@ void _jit_init(jit_state_t *_jit) { #if __X32 - jit_int32_t regno; + int32_t regno; static jit_bool_t first = 1; #endif @@ -400,7 +400,7 @@ _jit_init(jit_state_t *_jit) void _jit_prolog(jit_state_t *_jit) { - jit_int32_t offset; + int32_t offset; if (_jitc->function) jit_epilog(); @@ -421,7 +421,7 @@ _jit_prolog(jit_state_t *_jit) _jitc->function->self.aoff = CVT_OFFSET; _jitc->function->self.call = jit_call_default; jit_alloc((jit_pointer_t *)&_jitc->function->regoff, - _jitc->reglen * sizeof(jit_int32_t)); + _jitc->reglen * sizeof(int32_t)); /* _no_link here does not mean the jit_link() call can be removed * by rewriting as: @@ -440,8 +440,8 @@ _jit_prolog(jit_state_t *_jit) jit_regset_new(&_jitc->function->regset); } -jit_int32_t -_jit_allocai(jit_state_t *_jit, jit_int32_t length) +int32_t +_jit_allocai(jit_state_t *_jit, int32_t length) { assert(_jitc->function); switch (length) { @@ -467,13 +467,13 @@ _jit_allocai(jit_state_t *_jit, jit_int32_t length) } void -_jit_allocar(jit_state_t *_jit, jit_int32_t u, jit_int32_t v) +_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) { - jit_int32_t reg; + int32_t reg; assert(_jitc->function); jit_inc_synth_ww(allocar, u, v); if (!_jitc->function->allocar) { - _jitc->function->aoffoff = jit_allocai(sizeof(jit_int32_t)); + _jitc->function->aoffoff = jit_allocai(sizeof(int32_t)); _jitc->function->allocar = 1; } reg = jit_get_reg(jit_class_gpr); @@ -500,7 +500,7 @@ _jit_ret(jit_state_t *_jit) } void -_jit_retr(jit_state_t *_jit, jit_int32_t u) +_jit_retr(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr, u); /* movr(%ret, %ret) would be optimized out */ @@ -522,7 +522,7 @@ _jit_reti(jit_state_t *_jit, jit_word_t u) } void -_jit_retr_f(jit_state_t *_jit, jit_int32_t u) +_jit_retr_f(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_f, u); if (JIT_FRET != u) @@ -543,7 +543,7 @@ _jit_reti_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_retr_d(jit_state_t *_jit, jit_int32_t u) +_jit_retr_d(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(retr_d, u); if (JIT_FRET != u) @@ -621,7 +621,7 @@ _jit_ellipsis(jit_state_t *_jit) } void -_jit_va_push(jit_state_t *_jit, jit_int32_t u) +_jit_va_push(jit_state_t *_jit, int32_t u) { jit_inc_synth_w(va_push, u); jit_pushargr(u); @@ -632,7 +632,7 @@ jit_node_t * _jit_arg(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); #if __X64 @@ -658,7 +658,7 @@ jit_node_t * _jit_arg_f(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); #if __X64 @@ -687,7 +687,7 @@ jit_node_t * _jit_arg_d(jit_state_t *_jit) { jit_node_t *node; - jit_int32_t offset; + int32_t offset; assert(_jitc->function); assert(!(_jitc->function->self.call & jit_call_varargs)); #if __X64 @@ -713,7 +713,7 @@ _jit_arg_d(jit_state_t *_jit) } void -_jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_c(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_c, u, v); @@ -727,7 +727,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_uc(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_uc, u, v); @@ -741,7 +741,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_s(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_s, u, v); @@ -755,7 +755,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_us(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_us, u, v); @@ -769,7 +769,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_i(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_i, u, v); @@ -789,7 +789,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #if __X64 && !__X64_32 void -_jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_ui(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_ui, u, v); @@ -801,7 +801,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_l(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(getarg_l, u, v); @@ -814,7 +814,7 @@ _jit_getarg_l(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) #endif void -_jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg); jit_inc_synth_wp(putargr, u, v); @@ -830,7 +830,7 @@ _jit_putargr(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg); jit_inc_synth_wp(putargi, u, v); #if __X64 @@ -848,7 +848,7 @@ _jit_putargi(jit_state_t *_jit, jit_word_t u, jit_node_t *v) } void -_jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(getarg_f, u, v); @@ -862,7 +862,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_f(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_f); jit_inc_synth_wp(putargr_f, u, v); @@ -878,7 +878,7 @@ _jit_putargr_f(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_f); jit_inc_synth_fp(putargi_f, u, v); #if __X64 @@ -896,7 +896,7 @@ _jit_putargi_f(jit_state_t *_jit, jit_float32_t u, jit_node_t *v) } void -_jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_getarg_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(getarg_d, u, v); @@ -910,7 +910,7 @@ _jit_getarg_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) } void -_jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) +_jit_putargr_d(jit_state_t *_jit, int32_t u, jit_node_t *v) { assert(v->code == jit_code_arg_d); jit_inc_synth_wp(putargr_d, u, v); @@ -926,7 +926,7 @@ _jit_putargr_d(jit_state_t *_jit, jit_int32_t u, jit_node_t *v) void _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) { - jit_int32_t regno; + int32_t regno; assert(v->code == jit_code_arg_d); jit_inc_synth_dp(putargi_d, u, v); #if __X64 @@ -944,7 +944,7 @@ _jit_putargi_d(jit_state_t *_jit, jit_float64_t u, jit_node_t *v) } void -_jit_pushargr(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr, u); @@ -971,7 +971,7 @@ _jit_pushargr(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi(jit_state_t *_jit, jit_word_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_w(pushargi, u); jit_link_prepare(); @@ -999,7 +999,7 @@ _jit_pushargi(jit_state_t *_jit, jit_word_t u) } void -_jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_f(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_f, u); @@ -1035,7 +1035,7 @@ _jit_pushargr_f(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_f(pushargi_f, u); jit_link_prepare(); @@ -1071,7 +1071,7 @@ _jit_pushargi_f(jit_state_t *_jit, jit_float32_t u) } void -_jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) +_jit_pushargr_d(jit_state_t *_jit, int32_t u) { assert(_jitc->function); jit_inc_synth_w(pushargr_d, u); @@ -1107,7 +1107,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u) void _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) { - jit_int32_t regno; + int32_t regno; assert(_jitc->function); jit_inc_synth_d(pushargi_d, u); jit_link_prepare(); @@ -1143,10 +1143,10 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u) } jit_bool_t -_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) +_jit_regarg_p(jit_state_t *_jit, jit_node_t *node, int32_t regno) { #if __X64 - jit_int32_t spec; + int32_t spec; spec = jit_class(_rvs[regno].spec); if (spec & jit_class_arg) { @@ -1166,9 +1166,9 @@ _jit_regarg_p(jit_state_t *_jit, jit_node_t *node, jit_int32_t regno) } void -_jit_finishr(jit_state_t *_jit, jit_int32_t r0) +_jit_finishr(jit_state_t *_jit, int32_t r0) { - jit_int32_t reg; + int32_t reg; jit_node_t *call; assert(_jitc->function); reg = r0; @@ -1204,7 +1204,7 @@ jit_node_t * _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) { #if __X64 - jit_int32_t reg; + int32_t reg; #endif jit_node_t *node; assert(_jitc->function); @@ -1237,7 +1237,7 @@ _jit_finishi(jit_state_t *_jit, jit_pointer_t i0) } void -_jit_retval_c(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_c(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_c, r0); jit_extr_c(r0, JIT_RET); @@ -1245,7 +1245,7 @@ _jit_retval_c(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_uc(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_uc, r0); jit_extr_uc(r0, JIT_RET); @@ -1253,7 +1253,7 @@ _jit_retval_uc(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_s(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_s(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_s, r0); jit_extr_s(r0, JIT_RET); @@ -1261,7 +1261,7 @@ _jit_retval_s(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_us(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_us(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_us, r0); jit_extr_us(r0, JIT_RET); @@ -1269,7 +1269,7 @@ _jit_retval_us(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_i(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_i(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_i, r0); #if __X32 || __X64_32 @@ -1283,7 +1283,7 @@ _jit_retval_i(jit_state_t *_jit, jit_int32_t r0) #if __X64 && !__X64_32 void -_jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_ui(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_ui, r0); jit_extr_ui(r0, JIT_RET); @@ -1291,7 +1291,7 @@ _jit_retval_ui(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_l(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_l(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_l, r0); if (r0 != JIT_RET) @@ -1301,7 +1301,7 @@ _jit_retval_l(jit_state_t *_jit, jit_int32_t r0) #endif void -_jit_retval_f(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_f(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_f, r0); #if __X64 @@ -1312,7 +1312,7 @@ _jit_retval_f(jit_state_t *_jit, jit_int32_t r0) } void -_jit_retval_d(jit_state_t *_jit, jit_int32_t r0) +_jit_retval_d(jit_state_t *_jit, int32_t r0) { jit_inc_synth_w(retval_d, r0); #if __X64 @@ -1328,15 +1328,15 @@ _emit_code(jit_state_t *_jit) jit_node_t *node; jit_node_t *temp; jit_word_t word; - jit_int32_t value; - jit_int32_t offset; + int32_t value; + int32_t offset; struct { jit_node_t *node; jit_word_t word; #if DEVEL_DISASSEMBLER jit_word_t prevw; #endif - jit_int32_t patch_offset; + int32_t patch_offset; } undo; #if DEVEL_DISASSEMBLER jit_word_t prevw; @@ -2216,7 +2216,7 @@ _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, jit_gpr_t r0, jit_fpr_t r1) static void _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) { - jit_int32_t flag; + int32_t flag; assert(node->flag & jit_flag_node); if (node->code == jit_code_movi) @@ -2236,28 +2236,28 @@ _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node) } static void -_sse_from_x87_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_from_x87_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { x87_stxi_f(CVT_OFFSET, _RBP_REGNO, r1); sse_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET); } static void -_sse_from_x87_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_sse_from_x87_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { x87_stxi_d(CVT_OFFSET, _RBP_REGNO, r1); sse_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET); } static void -_x87_from_sse_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_from_sse_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { sse_stxi_f(CVT_OFFSET, _RBP_REGNO, r1); x87_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET); } static void -_x87_from_sse_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +_x87_from_sse_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) { sse_stxi_d(CVT_OFFSET, _RBP_REGNO, r1); x87_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET); diff --git a/jit/x86.h b/jit/x86.h index 33500211d..fb49c1e89 100644 --- a/jit/x86.h +++ b/jit/x86.h @@ -154,41 +154,41 @@ typedef enum { typedef struct { /* x87 present */ - jit_uint32_t fpu : 1; + uint32_t fpu : 1; /* cmpxchg8b instruction */ - jit_uint32_t cmpxchg8b : 1; + uint32_t cmpxchg8b : 1; /* cmov and fcmov branchless conditional mov */ - jit_uint32_t cmov : 1; + uint32_t cmov : 1; /* mmx registers/instructions available */ - jit_uint32_t mmx : 1; + uint32_t mmx : 1; /* sse registers/instructions available */ - jit_uint32_t sse : 1; + uint32_t sse : 1; /* sse2 registers/instructions available */ - jit_uint32_t sse2 : 1; + uint32_t sse2 : 1; /* sse3 instructions available */ - jit_uint32_t sse3 : 1; + uint32_t sse3 : 1; /* pcmulqdq instruction */ - jit_uint32_t pclmulqdq : 1; + uint32_t pclmulqdq : 1; /* ssse3 suplemental sse3 instructions available */ - jit_uint32_t ssse3 : 1; + uint32_t ssse3 : 1; /* fused multiply/add using ymm state */ - jit_uint32_t fma : 1; + uint32_t fma : 1; /* cmpxchg16b instruction */ - jit_uint32_t cmpxchg16b : 1; + uint32_t cmpxchg16b : 1; /* sse4.1 instructions available */ - jit_uint32_t sse4_1 : 1; + uint32_t sse4_1 : 1; /* sse4.2 instructions available */ - jit_uint32_t sse4_2 : 1; + uint32_t sse4_2 : 1; /* movbe instruction available */ - jit_uint32_t movbe : 1; + uint32_t movbe : 1; /* popcnt instruction available */ - jit_uint32_t popcnt : 1; + uint32_t popcnt : 1; /* aes instructions available */ - jit_uint32_t aes : 1; + uint32_t aes : 1; /* avx instructions available */ - jit_uint32_t avx : 1; + uint32_t avx : 1; /* lahf/sahf available in 64 bits mode */ - jit_uint32_t lahf : 1; + uint32_t lahf : 1; } jit_cpu_t; /* From 17a38ffd9c02a938726d8bb7154d8991704ed8cf Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Oct 2018 13:54:48 +0100 Subject: [PATCH 18/78] Add endian.h --- jit/endian.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 jit/endian.h diff --git a/jit/endian.h b/jit/endian.h new file mode 100644 index 000000000..b9b1a918d --- /dev/null +++ b/jit/endian.h @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2012-2018 Free Software Foundation, Inc. + * + * This file is part of GNU lightning. + * + * GNU lightning is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU lightning is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * Authors: + * Paulo Cesar Pereira de Andrade + * Andy Wingo + */ + +#ifndef _jit_endian_h +#define _jit_endian_h + +#include +#include +#include +#include +#include + +#if defined(__hpux) && defined(__hppa__) +# include +#endif +#if defined(__alpha__) && defined(__osf__) +# include +#endif + +#ifndef __WORDSIZE +# if defined(WORDSIZE) /* ppc darwin */ +# define __WORDSIZE WORDSIZE +# elif defined(__SIZEOF_POINTER__) /* ppc aix */ +# define __WORDSIZE (__SIZEOF_POINTER__ << 3) +# elif defined(_ILP32) /* hppa hp-ux */ +# define __WORDSIZE 32 +# elif defined(_LP64) /* ia64 hp-ux (with cc +DD64) */ +# define __WORDSIZE 64 +# elif defined(_MIPS_SZPTR) /* mips irix */ +# if _MIPS_SZPTR == 32 +# define __WORDSIZE 32 +# else +# define __WORDSIZE 64 +# endif +# else /* From FreeBSD 9.1 stdint.h */ +# if defined(UINTPTR_MAX) && defined(UINT64_MAX) && \ + (UINTPTR_MAX == UINT64_MAX) +# define __WORDSIZE 64 +# else +# define __WORDSIZE 32 +# endif +# endif +#endif +#ifndef __LITTLE_ENDIAN +# if defined(LITTLE_ENDIAN) /* ppc darwin */ +# define __LITTLE_ENDIAN LITTLE_ENDIAN +# elif defined(__ORDER_LITTLE_ENDIAN__) /* ppc aix */ +# define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ +# else +# define __LITTLE_ENDIAN 1234 +# endif +#endif +#ifndef __BIG_ENDIAN +# if defined(BIG_ENDIAN) /* ppc darwin */ +# define __BIG_ENDIAN BIG_ENDIAN +# elif defined(__ORDER_BIG_ENDIAN__) /* ppc aix */ +# define __BIG_ENDIAN __ORDER_BIG_ENDIAN__ +# else +# define __BIG_ENDIAN 4321 +# endif +#endif +#ifndef __BYTE_ORDER +# if defined(BYTE_ORDER) /* ppc darwin */ +# define __BYTE_ORDER BYTE_ORDER +# elif defined(__BYTE_ORDER__) /* ppc aix */ +# define __BYTE_ORDER __BYTE_ORDER__ +# elif defined(_BIG_ENDIAN) /* hppa hp-ux */ +# define __BYTE_ORDER __BIG_ENDIAN +# elif defined(__BIG_ENDIAN__) /* ia64 hp-ux */ +# define __BYTE_ORDER __BIG_ENDIAN +# elif defined(__i386__) /* 32 bit x86 solaris */ +# define __BYTE_ORDER __LITTLE_ENDIAN +# elif defined(__x86_64__) /* 64 bit x86 solaris */ +# define __BYTE_ORDER __LITTLE_ENDIAN +# elif defined(__MIPSEB) /* mips irix */ +# define __BYTE_ORDER __BIG_ENDIAN +# else +# error cannot figure __BYTE_ORDER +# endif +#endif + +#if __WORDSIZE == 32 +#define CHOOSE_32_64(x, y) x +#elif __WORDSIZE == 64 +#define CHOOSE_32_64(x, y) y +#else +#error unhandled __WORDSIZE +#endif + +#define WHEN_64(x) CHOOSE_32_64(/**/, x) + + +#endif /* _jit_endian_h */ From e81b64d2fc4d6c5b097642c4b4940eece0f390e2 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 31 Oct 2018 11:34:23 +0100 Subject: [PATCH 19/78] Update call/receive machinery Update calls and receives to take their arguments all at once, for more efficient shuffling. --- jit.h | 178 +++++++++++++++++++++++++--------------------------------- 1 file changed, 76 insertions(+), 102 deletions(-) diff --git a/jit.h b/jit.h index ca8f05d53..901321a74 100644 --- a/jit.h +++ b/jit.h @@ -45,6 +45,7 @@ typedef void* jit_addr_t; typedef ptrdiff_t jit_off_t; typedef intptr_t jit_imm_t; typedef uintptr_t jit_uimm_t; +typedef struct jit_reloc *jit_reloc_t; #if defined(__i386__) || defined(__x86_64__) # include "jit/x86.h" @@ -83,75 +84,60 @@ typedef uintptr_t jit_uimm_t; #define jit_class(reg) ((reg) & 0xffff0000) #define jit_regno(reg) ((reg) & 0x00007fff) -typedef struct jit_node jit_node_t; typedef struct jit_state jit_state_t; +enum jit_arg_kind +{ + JIT_CALL_ARG_IMM, + JIT_CALL_ARG_GPR, + JIT_CALL_ARG_FPR, + JIT_CALL_ARG_MEM +}; +typedef struct jit_arg +{ + enum jit_arg_kind kind; + union + { + intptr_t imm; + jit_gpr_t gpr; + jit_fpr_t fpr; + struct { jit_gpr_t base; ptrdiff_t offset; } mem; + } loc; +} jit_arg_t; -#if __WORDSIZE == 32 -# define jit_ldr(u,v) jit_ldr_i(u,v) -# define jit_ldi(u,v) jit_ldi_i(u,v) -# define jit_ldxr(u,v,w) jit_ldxr_i(u,v,w) -# define jit_ldxi(u,v,w) jit_ldxi_i(u,v,w) -# define jit_str(u,v) jit_str_i(u,v) -# define jit_sti(u,v) jit_sti_i(u,v) -# define jit_stxr(u,v,w) jit_stxr_i(u,v,w) -# define jit_stxi(u,v,w) jit_stxi_i(u,v,w) -# define jit_getarg(u,v) jit_getarg_i(u,v) -# define jit_retval(u) jit_retval_i(u) -# define jit_bswapr(u,v) jit_bswapr_ui(u,v) -# define jit_truncr_d(u,v) jit_truncr_d_i(u,v) -# define jit_truncr_f(u,v) jit_truncr_f_i(u,v) -#else -# define jit_ldr(u,v) jit_ldr_l(u,v) -# define jit_ldi(u,v) jit_ldi_l(u,v) -# define jit_ldxr(u,v,w) jit_ldxr_l(u,v,w) -# define jit_ldxi(u,v,w) jit_ldxi_l(u,v,w) -# define jit_str(u,v) jit_str_l(u,v) -# define jit_sti(u,v) jit_sti_l(u,v) -# define jit_stxr(u,v,w) jit_stxr_l(u,v,w) -# define jit_stxi(u,v,w) jit_stxi_l(u,v,w) -# define jit_getarg(u,v) jit_getarg_l(u,v) -# define jit_retval(u) jit_retval_l(u) -# define jit_bswapr(u,v) jit_bswapr_ul(u,v) -# define jit_truncr_d(u,v) jit_truncr_d_l(u,v) -# define jit_truncr_f(u,v) jit_truncr_f_l(u,v) -#endif +extern void init_jit(void); -#define jit_clear_state() _jit_clear_state(_jit) -#define jit_destroy_state() _jit_destroy_state(_jit) +extern jit_state_t *jit_new_state(void); +extern void jit_destroy_state(jit_state_t*); -#define jit_address(node) _jit_address(_jit, node) -#define jit_forward_p(u) _jit_forward_p(_jit,u) -#define jit_indirect_p(u) _jit_indirect_p(_jit,u) -#define jit_target_p(u) _jit_target_p(_jit,u) +extern void jit_begin(jit_state_t*); +extern void jit_end(jit_state_t*, jit_addr_t*, size_t*); +extern void jit_reset(jit_state_t*); -#define jit_patch(u) _jit_patch(_jit,u) -#define jit_patch_at(u,v) _jit_patch_at(_jit,u,v) -#define jit_patch_abs(u,v) _jit_patch_abs(_jit,u,v) -#define jit_realize() _jit_realize(_jit) -#define jit_get_code(u) _jit_get_code(_jit,u) -#define jit_set_code(u,v) _jit_set_code(_jit,u,v) -#define jit_get_data(u,v) _jit_get_data(_jit,u,v) -#define jit_set_data(u,v,w) _jit_set_data(_jit,u,v,w) -#define jit_frame(u) _jit_frame(_jit,u) -#define jit_tramp(u) _jit_tramp(_jit,u) -#define jit_emit() _jit_emit(_jit) -#define jit_print() _jit_print(_jit) +extern void jit_align(jit_state_t*, unsigned); +extern void jit_allocai(jit_state_t*, size_t); +extern void jit_allocar(jit_state_t*, jit_gpr_t, jit_gpr_t); -#define jit_arg_register_p(u) _jit_arg_register_p(_jit,u) -#define jit_callee_save_p(u) _jit_callee_save_p(_jit,u) -#define jit_pointer_p(u) _jit_pointer_p(_jit,u) +extern jit_pointer_t jit_address(jit_state_t*); +extern void jit_patch_here(jit_state_t*, jit_reloc_t); +extern void jit_patch_there(jit_state_t*, jit_reloc_t, jit_pointer_t); + +extern void jit_calli(jit_state_t *, jit_pointer_t f, + size_t argc, const jit_arg_t *argv); +extern void jit_callr(jit_state_t *, jit_gpr_t f, + size_t argc, const jit_arg_t *argv); +extern void jit_receive(jit_state_t*, size_t argc, jit_arg_t *argv); #define JIT_PROTO_0(stem, ret) \ - extern ret _jit_##stem (jit_state*) + extern ret jit_##stem (jit_state_t*) #define JIT_PROTO_1(stem, ret, a) \ - extern ret _jit_##stem (jit_state*, jit_##a##_t) + extern ret jit_##stem (jit_state_t*, jit_##a##_t) #define JIT_PROTO_2(stem, ret, a, b) \ - extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t) + extern ret jit_##stem (jit_state_t*, jit_##a##_t, jit_##b##_t) #define JIT_PROTO_3(stem, ret, a, b, c) \ - extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t, jit_##c##_t) + extern ret jit_##stem (jit_state_t*, jit_##a##_t, jit_##b##_t, jit_##c##_t) #define JIT_PROTO_4(stem, ret, a, b, c, d) \ - extern ret _jit_##stem (jit_state*, jit_##a##_t, jit_##b##_t, jit_##c##_t, jit_##d##_t) + extern ret jit_##stem (jit_state_t*, jit_##a##_t, jit_##b##_t, jit_##c##_t, jit_##d##_t) #define JIT_PROTO_RFF__(stem) JIT_PROTO_2(stem, jit_reloc_t, fpr, fpr) #define JIT_PROTO_RGG__(stem) JIT_PROTO_2(stem, jit_reloc_t, gpr, gpr) @@ -162,26 +148,24 @@ typedef struct jit_state jit_state_t; #define JIT_PROTO__FFF_(stem) JIT_PROTO_3(stem, void, fpr, fpr, fpr) #define JIT_PROTO__FF__(stem) JIT_PROTO_2(stem, void, fpr, fpr) #define JIT_PROTO__FGG_(stem) JIT_PROTO_3(stem, void, fpr, gpr, gpr) -#define JIT_PROTO__FG__(stem) JIT_PROTO_3(stem, void, fpr, gpr) +#define JIT_PROTO__FG__(stem) JIT_PROTO_2(stem, void, fpr, gpr) #define JIT_PROTO__FGo_(stem) JIT_PROTO_3(stem, void, fpr, gpr, off) #define JIT_PROTO__F___(stem) JIT_PROTO_1(stem, void, fpr) -#define JIT_PROTO__Fd__(stem) JIT_PROTO_2(stem, void, fpr, double) -#define JIT_PROTO__Ff__(stem) JIT_PROTO_2(stem, void, fpr, float) +#define JIT_PROTO__Fd__(stem) JIT_PROTO_2(stem, void, fpr, float64) +#define JIT_PROTO__Ff__(stem) JIT_PROTO_2(stem, void, fpr, float32) #define JIT_PROTO__Fp__(stem) JIT_PROTO_2(stem, void, fpr, pointer) -#define JIT_PROTO__GF__(stem) JIT_PROTO_2(stem, void, gpr) #define JIT_PROTO__GF__(stem) JIT_PROTO_2(stem, void, gpr, fpr) #define JIT_PROTO__GGF_(stem) JIT_PROTO_3(stem, void, gpr, gpr, fpr) #define JIT_PROTO__GGGG(stem) JIT_PROTO_4(stem, void, gpr, gpr, gpr, gpr) #define JIT_PROTO__GGG_(stem) JIT_PROTO_3(stem, void, gpr, gpr, gpr) #define JIT_PROTO__GGGi(stem) JIT_PROTO_3(stem, void, gpr, gpr, imm) #define JIT_PROTO__GGGu(stem) JIT_PROTO_3(stem, void, gpr, gpr, uimm) -#define JIT_PROTO__GG__(stem) JIT_PROTO_3(stem, void, gpr, gpr) +#define JIT_PROTO__GG__(stem) JIT_PROTO_2(stem, void, gpr, gpr) #define JIT_PROTO__GGi_(stem) JIT_PROTO_3(stem, void, gpr, gpr, imm) #define JIT_PROTO__GGo_(stem) JIT_PROTO_3(stem, void, gpr, gpr, off) #define JIT_PROTO__GGu_(stem) JIT_PROTO_3(stem, void, gpr, gpr, uimm) #define JIT_PROTO__G___(stem) JIT_PROTO_1(stem, void, gpr) #define JIT_PROTO__Gi__(stem) JIT_PROTO_2(stem, void, gpr, imm) -#define JIT_PROTO__Gp__(stem) JIT_PROTO_2(stem, void, a, b, c) #define JIT_PROTO__Gp__(stem) JIT_PROTO_2(stem, void, gpr, pointer) #define JIT_PROTO______(stem) JIT_PROTO_0(stem, void) #define JIT_PROTO__i___(stem) JIT_PROTO_1(stem, void, imm) @@ -401,23 +385,12 @@ typedef struct jit_state jit_state_t; M(_G___, jmpr) \ M(_p___, jmpi) \ M(R____, jmp) \ - M(_G___, callr) \ - M(_p___, calli) \ - M(R____, call) \ \ M(_G___, pushr) \ M(_F___, pushr_d) \ M(_G___, popr) \ M(_F___, popr_d) \ \ - M(_____, prepare) \ - M(_G___, pushargr) \ - M(_F___, pushargr_f) \ - M(_F___, pushargr_d) \ - M(_i___, pushargi) \ - M(_G___, finishr) \ - M(_p___, finishi) \ - M(R____, finish) \ M(_____, ret) \ M(_G___, retr) \ M(_F___, retr_f) \ @@ -432,18 +405,6 @@ typedef struct jit_state jit_state_t; WHEN_64(M(_G___, retval_l)) \ M(_F___, retval_f) \ M(_F___, retval_d) \ - M(A____, arg) \ - M(A____, arg_f) \ - M(A____, arg_d) \ - M(_GA__, getarg_c) \ - M(_GA__, getarg_uc) \ - M(_GA__, getarg_s) \ - M(_GA__, getarg_us) \ - M(_GA__, getarg_i) \ - WHEN_64(M(_GA__, getarg_ui)) \ - WHEN_64(M(_GA__, getarg_l)) \ - M(_GA__, getarg_f) \ - M(_GA__, getarg_d) \ \ M(_FF__, negr_f) \ M(_FF__, negr_d) \ @@ -466,23 +427,36 @@ typedef struct jit_state jit_state_t; WHEN_64(M(_GF__, truncr_d_l)) \ /* EOL */ -#define DECLARE_JIT_API(kind, stem) JIT_PROTO_##kind(stem); -FOR_EACH_INSTRUCTION(DECLARE_JIT_API); -#undef DECLARE_JIT_API - -extern void init_jit(void); - -extern jit_state_t *jit_new_state(void); -extern void jit_clear_state(jit_state*); -extern void jit_destroy_state(jit_state*); - -extern void jit_align(jit_state*, unsigned); -extern void jit_allocai(jit_state*, size_t); -extern void jit_allocar(jit_state*, jit_gpr_t, jit_gpr_t); - -extern jit_pointer_t jit_address(jit_state*); -extern void jit_patch_here(jit_state_t*, jit_reloc_t); -extern void jit_patch_there(jit_state_t*, jit_reloc_t, jit_pointer_t); +#define DECLARE_INSTRUCTION(kind, stem) JIT_PROTO_##kind(stem); +FOR_EACH_INSTRUCTION(DECLARE_INSTRUCTION) +#undef DECLARE_INSTRUCTION +#if __WORDSIZE == 32 +# define jit_ldr(u,v) jit_ldr_i(u,v) +# define jit_ldi(u,v) jit_ldi_i(u,v) +# define jit_ldxr(u,v,w) jit_ldxr_i(u,v,w) +# define jit_ldxi(u,v,w) jit_ldxi_i(u,v,w) +# define jit_str(u,v) jit_str_i(u,v) +# define jit_sti(u,v) jit_sti_i(u,v) +# define jit_stxr(u,v,w) jit_stxr_i(u,v,w) +# define jit_stxi(u,v,w) jit_stxi_i(u,v,w) +# define jit_retval(u) jit_retval_i(u) +# define jit_bswapr(u,v) jit_bswapr_ui(u,v) +# define jit_truncr_d(u,v) jit_truncr_d_i(u,v) +# define jit_truncr_f(u,v) jit_truncr_f_i(u,v) +#else +# define jit_ldr(u,v) jit_ldr_l(u,v) +# define jit_ldi(u,v) jit_ldi_l(u,v) +# define jit_ldxr(u,v,w) jit_ldxr_l(u,v,w) +# define jit_ldxi(u,v,w) jit_ldxi_l(u,v,w) +# define jit_str(u,v) jit_str_l(u,v) +# define jit_sti(u,v) jit_sti_l(u,v) +# define jit_stxr(u,v,w) jit_stxr_l(u,v,w) +# define jit_stxi(u,v,w) jit_stxi_l(u,v,w) +# define jit_retval(u) jit_retval_l(u) +# define jit_bswapr(u,v) jit_bswapr_ul(u,v) +# define jit_truncr_d(u,v) jit_truncr_d_l(u,v) +# define jit_truncr_f(u,v) jit_truncr_f_l(u,v) +#endif #endif /* _jit_h */ From 0d78447d85661c917bc8a235251e9bd04e2b0c30 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 31 Oct 2018 19:33:26 +0100 Subject: [PATCH 20/78] Trim unneded bits from jit.c --- jit.h | 6 +- jit/jit.c | 3367 +------------------------------------------------ jit/private.h | 605 +-------- 3 files changed, 63 insertions(+), 3915 deletions(-) diff --git a/jit.h b/jit.h index 901321a74..140c390fd 100644 --- a/jit.h +++ b/jit.h @@ -110,9 +110,9 @@ extern void init_jit(void); extern jit_state_t *jit_new_state(void); extern void jit_destroy_state(jit_state_t*); -extern void jit_begin(jit_state_t*); -extern void jit_end(jit_state_t*, jit_addr_t*, size_t*); +extern void jit_begin(jit_state_t*, jit_addr_t, size_t); extern void jit_reset(jit_state_t*); +extern jit_addr_t jit_end(jit_state_t*, size_t*); extern void jit_align(jit_state_t*, unsigned); extern void jit_allocai(jit_state_t*, size_t); @@ -123,7 +123,7 @@ extern void jit_patch_here(jit_state_t*, jit_reloc_t); extern void jit_patch_there(jit_state_t*, jit_reloc_t, jit_pointer_t); extern void jit_calli(jit_state_t *, jit_pointer_t f, - size_t argc, const jit_arg_t *argv); + size_t argc, const jit_arg_t *argv); extern void jit_callr(jit_state_t *, jit_gpr_t f, size_t argc, const jit_arg_t *argv); extern void jit_receive(jit_state_t*, size_t argc, jit_arg_t *argv); diff --git a/jit/jit.c b/jit/jit.c index da630b046..1f53514c7 100644 --- a/jit/jit.c +++ b/jit/jit.c @@ -22,8 +22,8 @@ # include #endif -#include "jit.h" -#include "jit/jit_private.h" +#include "../jit.h" +#include "private.h" #ifndef MAP_ANON # define MAP_ANON MAP_ANONYMOUS @@ -32,886 +32,22 @@ # endif #endif +#if !defined(__sgi) +#define mmap_fd -1 +#endif + #define jit_regload_reload 0 /* convert to reload */ #define jit_regload_delete 1 /* just remove node */ #define jit_regload_isdead 2 /* delete and unset live bit */ -#if __WORDSIZE == 32 -# define bmp_shift 5 -#else -# define bmp_shift 6 -#endif - -/* - * Prototypes - */ -static jit_word_t hash_data(const void*, jit_word_t); - -#define new_pool() _new_pool(_jit) -static void _new_pool(jit_state_t*); - -#define new_node(u) _new_node(_jit, u) -static jit_node_t *_new_node(jit_state_t*, jit_code_t); - -#define link_node(u) _link_node(_jit, u) -static inline jit_node_t *_link_node(jit_state_t*, jit_node_t*); - -#define del_node(u, v) _del_node(_jit, u, v) -static inline void _del_node(jit_state_t*, jit_node_t*, jit_node_t*); - -#define free_node(u) _free_node(_jit, u) -static inline void _free_node(jit_state_t*, jit_node_t*); - -#define del_label(u, v) _del_label(_jit, u, v) -static void _del_label(jit_state_t*, jit_node_t*, jit_node_t*); - -#define bmp_init() _bmp_init(_jit) -static void _bmp_init(jit_state_t*); - -#define bmp_clear() _bmp_clear(_jit) -static void _bmp_clear(jit_state_t*); - -#define bmp_zero() \ - memset(_jitc->blockmask.ptr, 0, \ - _jitc->blockmask.length * sizeof(jit_word_t)) - -#define bmp_set(bit) _bmp_set(_jit, bit) -static void _bmp_set(jit_state_t*, jit_word_t); - -#define bmp_clr(bit) _bmp_clr(_jit, bit) -static void _bmp_clr(jit_state_t*, jit_word_t) maybe_unused; - -#define bmp_tst(bit) _bmp_tst(_jit, bit) -static jit_bool_t _bmp_tst(jit_state_t*, jit_word_t); - -#define jit_dataset() _jit_dataset(_jit) -static void -_jit_dataset(jit_state_t *_jit); - -#define jit_setup(block) _jit_setup(_jit, block) -static void -_jit_setup(jit_state_t *_jit, jit_block_t *block); - -#define jit_update(node, live, mask, r) _jit_update(_jit, node, live, mask, r) -static void -_jit_update(jit_state_t *_jit, jit_node_t *node, - jit_regset_t *live, jit_regset_t *mask, jit_bool_t recurse); - -#define thread_jumps() _thread_jumps(_jit) -static void -_thread_jumps(jit_state_t *_jit); - -#define sequential_labels() _sequential_labels(_jit) -static void -_sequential_labels(jit_state_t *_jit); - -#define shortcut_jump(prev, node) _shortcut_jump(_jit, prev, node) -static jit_bool_t -_shortcut_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); - -#define redundant_jump(prev, node) _redundant_jump(_jit, prev, node) -static jit_bool_t -_redundant_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); - -static jit_code_t -reverse_jump_code(jit_code_t code); - -#define reverse_jump(prev, node) _reverse_jump(_jit, prev, node) -static jit_bool_t -_reverse_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); - -#define redundant_store(node, jump) _redundant_store(_jit, node, jump) -static void -_redundant_store(jit_state_t *_jit, jit_node_t *node, jit_bool_t jump); - -#define simplify_movr(p, n, k, s) _simplify_movr(_jit, p, n, k, s) -static jit_bool_t -_simplify_movr(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - int32_t kind, jit_int32_t size); - -#define simplify_movi(p, n, k, s) _simplify_movi(_jit, p, n, k, s) -static jit_bool_t -_simplify_movi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node, - int32_t kind, jit_int32_t size); - -#define simplify_ldxi(prev, node) _simplify_ldxi(_jit, prev, node) -static jit_bool_t -_simplify_ldxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); - -#define simplify_stxi(prev, node) _simplify_stxi(_jit, prev, node) -static jit_bool_t -_simplify_stxi(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node); - -#define simplify_spill(node, regno) _simplify_spill(_jit, node, regno) -static void -_simplify_spill(jit_state_t *_jit, jit_node_t *node, int32_t regno); - -#define simplify() _simplify(_jit) -static void -_simplify(jit_state_t *_jit); - -#define jit_reg_undef -1 -#define jit_reg_static 0 -#define jit_reg_change 1 -#define register_change_p(n, l, r) _register_change_p(_jit, n, l, r) -static int32_t -_register_change_p(jit_state_t *_jit, jit_node_t *node, jit_node_t *link, - int32_t regno); - -#define spill_reglive_p(node, regno) _spill_reglive_p(_jit, node, regno) -static jit_bool_t -_spill_reglive_p(jit_state_t *_jit, jit_node_t *node, int32_t regno); - -#define patch_registers() _patch_registers(_jit) -static void -_patch_registers(jit_state_t *_jit); - -#define patch_register(n,l,r,p) _patch_register(_jit,n,l,r,p) -static void -_patch_register(jit_state_t *jit, jit_node_t *node, jit_node_t *link, - int32_t regno, jit_int32_t patch); - -/* - * Initialization - */ -#if !defined(__sgi) -#define mmap_fd -1 -#endif /* * Implementation */ void -init_jit(const char *progname) +init_jit(void) { jit_get_cpu(); - jit_init_debug(progname); - jit_init_size(); -} - -void -finish_jit(void) -{ - jit_finish_debug(); - jit_finish_size(); -} - -int32_t -_jit_get_reg(jit_state_t *_jit, int32_t regspec) -{ - int32_t spec; - int32_t regno; - - spec = regspec & ~(jit_class_chk|jit_class_nospill); - if (spec & jit_class_named) { - regno = jit_regno(spec); - if (jit_regset_tstbit(&_jitc->regsav, regno)) - /* fail if register is spilled */ - goto fail; - if (jit_regset_tstbit(&_jitc->regarg, regno)) - /* fail if register is an argument to current instruction */ - goto fail; - if (jit_regset_tstbit(&_jitc->reglive, regno)) { - if (regspec & jit_class_nospill) - /* fail if register is live and should not spill/reload */ - goto fail; - goto spill; - } - jit_regset_setbit(&_jitc->regarg, regno); - return (regno); - } - else - assert(jit_class(spec) != 0); - - if (_jitc->emit) { - /* search for a free register matching spec */ - for (regno = 0; regno < _jitc->reglen; regno++) { - if ((jit_class(_rvs[regno].spec) & spec) == spec && - !jit_regset_tstbit(&_jitc->regarg, regno) && - !jit_regset_tstbit(&_jitc->reglive, regno)) - goto regarg; - } - - /* search for a register matching spec that is not an argument - * for the current instruction */ - for (regno = 0; regno < _jitc->reglen; regno++) { - if ((jit_class(_rvs[regno].spec) & spec) == spec && - !jit_regset_tstbit(&_jitc->regsav, regno) && - !jit_regset_tstbit(&_jitc->regarg, regno) && - !(regspec & jit_class_nospill)) { - spill: - assert(_jitc->function != NULL); - if (spec & jit_class_gpr) { - if (!_jitc->function->regoff[regno]) { - _jitc->function->regoff[regno] = - jit_allocai(sizeof(jit_word_t)); - _jitc->again = 1; - } -#if DEBUG - /* emit_stxi must not need temporary registers */ - assert(!_jitc->getreg); - _jitc->getreg = 1; -#endif - emit_stxi(_jitc->function->regoff[regno], JIT_FP, regno); -#if DEBUG - _jitc->getreg = 0; -#endif - } - else { - if (!_jitc->function->regoff[regno]) { - _jitc->function->regoff[regno] = - jit_allocai(sizeof(jit_float64_t)); - _jitc->again = 1; - } -#if DEBUG - /* emit_stxi must not need temporary registers */ - assert(!_jitc->getreg); - _jitc->getreg = 1; -#endif - emit_stxi_d(_jitc->function->regoff[regno], JIT_FP, regno); -#if DEBUG - _jitc->getreg = 0; -#endif - } - jit_regset_setbit(&_jitc->regsav, regno); - regarg: - jit_regset_setbit(&_jitc->regarg, regno); - if (jit_class(_rvs[regno].spec) & jit_class_sav) { - /* if will modify callee save registers without a - * function prolog, better patch this assertion */ - assert(_jitc->function != NULL); - if (!jit_regset_tstbit(&_jitc->function->regset, regno)) { - jit_regset_setbit(&_jitc->function->regset, regno); - _jitc->again = 1; - } - } - return (regno); - } - } - } - else { - /* nospill hint only valid during emit" */ - assert(!(regspec & jit_class_nospill)); - for (regno = 0; regno < _jitc->reglen; regno++) { - if ((jit_class(_rvs[regno].spec) & spec) == spec && - !jit_regset_tstbit(&_jitc->regsav, regno) && - !jit_regset_tstbit(&_jitc->regarg, regno)) { - jit_regset_setbit(&_jitc->regarg, regno); - jit_regset_setbit(&_jitc->regsav, regno); - jit_save(regno); - return (jit_regno_patch|regno); - } - } - } - - /* Out of hardware registers */ -fail: - assert(regspec & jit_class_chk); - return (JIT_NOREG); -} - -void -_jit_unget_reg(jit_state_t *_jit, int32_t regno) -{ - regno = jit_regno(regno); - if (jit_regset_tstbit(&_jitc->regsav, regno)) { - if (_jitc->emit) { -#if DEBUG - /* emit_ldxi must not need a temporary register */ - assert(!_jitc->getreg); - _jitc->getreg = 1; -#endif - if (jit_class(_rvs[regno].spec) & jit_class_gpr) - emit_ldxi(regno, JIT_FP, _jitc->function->regoff[regno]); - else - emit_ldxi_d(regno, JIT_FP, _jitc->function->regoff[regno]); -#if DEBUG - /* emit_ldxi must not need a temporary register */ - _jitc->getreg = 0; -#endif - } - else - jit_load(regno); - jit_regset_clrbit(&_jitc->regsav, regno); - } - assert(jit_regset_tstbit(&_jitc->regarg, regno) != 0); - jit_regset_clrbit(&_jitc->regarg, regno); -} - -jit_bool_t -_jit_callee_save_p(jit_state_t *_jit, int32_t regno) -{ - assert(regno >= 0 && regno < JIT_NOREG); - return (!!(_rvs[regno].spec & jit_class_sav)); -} - -extern jit_bool_t -_jit_pointer_p(jit_state_t *_jit, jit_pointer_t address) -{ - return ((uint8_t *)address >= _jit->code.ptr && - (jit_word_t)address < _jit->pc.w); -} - -#if __ia64__ -void -jit_regset_com(jit_regset_t *u, jit_regset_t *v) -{ - u->rl = ~v->rl; u->rh = ~v->rh; - u->fl = ~v->fl; u->fh = ~v->fh; -} - -void -jit_regset_and(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl & w->rl; u->rh = v->rh & w->rh; - u->fl = v->fl & w->fl; u->fh = v->fh & w->fh; -} - -void -jit_regset_ior(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl | w->rl; u->rh = v->rh | w->rh; - u->fl = v->fl | w->fl; u->fh = v->fh | w->fh; -} - -void -jit_regset_xor(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl ^ w->rl; u->rh = v->rh ^ w->rh; - u->fl = v->fl ^ w->fl; u->fh = v->fh ^ w->fh; -} - -void -jit_regset_set(jit_regset_t *u, jit_regset_t *v) -{ - u->rl = v->rl; u->rh = v->rh; - u->fl = v->fl; u->fh = v->fh; -} - -void -jit_regset_set_mask(jit_regset_t *u, int32_t v) -{ - jit_bool_t w = !!(v & (v - 1)); - - assert(v >= 0 && v <= 256); - if (v == 0) - u->rl = u->rh = u->fl = u->fh = -1LL; - else if (v <= 64) { - u->rl = w ? (1LL << v) - 1 : -1LL; - u->rh = u->fl = u->fh = 0; - } - else if (v <= 128) { - u->rl = -1LL; - u->rh = w ? (1LL << (v - 64)) - 1 : -1LL; - u->fl = u->fh = 0; - } - else if (v <= 192) { - u->rl = u->rh = -1LL; - u->fl = w ? (1LL << (v - 128)) - 1 : -1LL; - u->fh = 0; - } - else { - u->rl = u->rh = u->fl = -1LL; - u->fh = w ? (1LL << (v - 128)) - 1 : -1LL; - } -} - -jit_bool_t -jit_regset_cmp_ui(jit_regset_t *u, jit_word_t v) -{ - return !((u->rl == v && u->rh == 0 && u->fl == 0 && u->fh == 0)); -} - -void -jit_regset_set_ui(jit_regset_t *u, jit_word_t v) -{ - u->rl = v; - u->rh = u->fl = u->fh = 0; -} - -jit_bool_t -jit_regset_set_p(jit_regset_t *u) -{ - return (u->rl || u->rh || u->fl || u->fh); -} - -void -jit_regset_clrbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 255); - if (bit < 64) - set->rl &= ~(1LL << bit); - else if (bit < 128) - set->rh &= ~(1LL << (bit - 64)); - else if (bit < 192) - set->fl &= ~(1LL << (bit - 128)); - else - set->fh &= ~(1LL << (bit - 192)); -} - -void -jit_regset_setbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 255); - if (bit < 64) - set->rl |= 1LL << bit; - else if (bit < 128) - set->rh |= 1LL << (bit - 64); - else if (bit < 192) - set->fl |= 1LL << (bit - 128); - else - set->fh |= 1LL << (bit - 192); -} - -jit_bool_t -jit_regset_tstbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 255); - if (bit < 64) - return (!!(set->rl & (1LL << bit))); - else if (bit < 128) - return (!!(set->rh & (1LL << (bit - 64)))); - else if (bit < 192) - return (!!(set->fl & (1LL << (bit - 128)))); - return (!!(set->fh & (1LL << (bit - 192)))); -} - -unsigned long -jit_regset_scan1(jit_regset_t *set, int32_t offset) -{ - assert(offset >= 0 && offset <= 255); - for (; offset < 64; offset++) { - if (set->rl & (1LL << offset)) - return (offset); - } - for (; offset < 128; offset++) { - if (set->rh & (1LL << (offset - 64))) - return (offset); - } - for (; offset < 192; offset++) { - if (set->fl & (1LL << (offset - 128))) - return (offset); - } - for (; offset < 256; offset++) { - if (set->fh & (1LL << (offset - 192))) - return (offset); - } - return (ULONG_MAX); -} - -#elif __sparc__ && __WORDSIZE == 64 -void -jit_regset_com(jit_regset_t *u, jit_regset_t *v) -{ - u->rl = ~v->rl; u->rh = ~v->rh; -} - -void -jit_regset_and(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl & w->rl; u->rh = v->rh & w->rh; -} - -void -jit_regset_ior(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl | w->rl; u->rh = v->rh | w->rh; -} - -void -jit_regset_xor(jit_regset_t *u, jit_regset_t *v, jit_regset_t *w) -{ - u->rl = v->rl ^ w->rl; u->rh = v->rh ^ w->rh; -} - -void -jit_regset_set(jit_regset_t *u, jit_regset_t *v) -{ - u->rl = v->rl; u->rh = v->rh; -} - -void -jit_regset_set_mask(jit_regset_t *u, int32_t v) -{ - jit_bool_t w = !!(v & (v - 1)); - - assert(v >= 0 && v <= 128); - if (v == 0) - u->rl = u->rh = -1LL; - else if (v <= 64) { - u->rl = w ? (1LL << v) - 1 : -1LL; - u->rh = 0; - } - else { - u->rl = -1LL; - u->rh = w ? (1LL << (v - 64)) - 1 : -1LL; - } -} - -jit_bool_t -jit_regset_cmp_ui(jit_regset_t *u, jit_word_t v) -{ - return !((u->rl == v && u->rh == 0)); -} - -void -jit_regset_set_ui(jit_regset_t *u, jit_word_t v) -{ - u->rl = v; - u->rh = 0; -} - -jit_bool_t -jit_regset_set_p(jit_regset_t *u) -{ - return (u->rl || u->rh); -} - -void -jit_regset_clrbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 128); - if (bit < 64) - set->rl &= ~(1LL << bit); - else - set->rh &= ~(1LL << (bit - 64)); -} - -void -jit_regset_setbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 127); - if (bit < 64) - set->rl |= 1LL << bit; - else - set->rh |= 1LL << (bit - 64); -} - -jit_bool_t -jit_regset_tstbit(jit_regset_t *set, int32_t bit) -{ - assert(bit >= 0 && bit <= 127); - if (bit < 64) - return (!!(set->rl & (1LL << bit))); - else - return (!!(set->rh & (1LL << (bit - 64)))); -} - -unsigned long -jit_regset_scan1(jit_regset_t *set, int32_t offset) -{ - assert(offset >= 0 && offset <= 127); - for (; offset < 64; offset++) { - if (set->rl & (1LL << offset)) - return (offset); - } - for (; offset < 128; offset++) { - if (set->rh & (1LL << (offset - 64))) - return (offset); - } - return (ULONG_MAX); -} - -#else -unsigned long -jit_regset_scan1(jit_regset_t *set, int32_t offset) -{ - jit_regset_t mask; - assert(offset >= 0 && offset <= 63); - if ((mask = *set >> offset)) { - for (;;) { - if (mask & 1) - return (offset); - mask >>= 1; - ++offset; - } - } - return (ULONG_MAX); -} -#endif - -void -_jit_save(jit_state_t *_jit, int32_t reg) -{ - reg = jit_regno(reg); - assert(!_jitc->realize); - _jitc->spill[reg] = jit_new_node_w(jit_code_save, reg); -} - -void -_jit_load(jit_state_t *_jit, int32_t reg) -{ - jit_node_t *node; - - reg = jit_regno(reg); - assert(!_jitc->realize); - assert(_jitc->spill[reg] != NULL); - node = jit_new_node_w(jit_code_load, reg); - /* create a path to flag the save/load is not required */ - node->link = _jitc->spill[reg]; - node->link->link = node; - _jitc->spill[reg] = NULL; -} - -static jit_word_t -hash_data(const void *data, jit_word_t length) -{ - const uint8_t *ptr; - jit_word_t i, key; - for (i = key = 0, ptr = data; i < length; i++) - key = (key << (key & 1)) ^ ptr[i]; - return (key); -} - -jit_pointer_t -_jit_address(jit_state_t *_jit, jit_node_t *node) -{ - assert(_jitc->done); - assert(node != NULL && - /* If a node type that is documented to be a fixed marker */ - (node->code == jit_code_note || node->code == jit_code_name || - /* If another special fixed marker, returned by jit_indirect() */ - (node->code == jit_code_label && (node->flag & jit_flag_use) != 0))); - return ((jit_pointer_t)node->u.w); -} - -jit_node_t * -_jit_data(jit_state_t *_jit, const void *data, - jit_word_t length, int32_t align) -{ - jit_word_t key; - jit_node_t *node; - - assert(!_jitc->realize); - - /* Ensure there is space even if asking for a duplicate */ - if (((_jitc->data.offset + 7) & -8) + length > _jit->data.length) { - jit_word_t size; - - size = (_jit->data.length + length + 4096) & - 4095; - assert(size >= _jit->data.length); - if (_jitc->data.ptr == NULL) - jit_alloc((jit_pointer_t *)&_jitc->data.ptr, size); - else - jit_realloc((jit_pointer_t *)&_jitc->data.ptr, - _jit->data.length, size); - _jit->data.length = size; - } - if (_jitc->data.table == NULL) - jit_alloc((jit_pointer_t *)&_jitc->data.table, - (_jitc->data.size = 16) * sizeof(jit_node_t*)); - - key = hash_data(data, length) & (_jitc->data.size - 1); - node = _jitc->data.table[key]; - for (; node; node = node->next) { - if (node->v.w == length && - memcmp(_jitc->data.ptr + node->u.w, data, length) == 0) - break; - } - - if (!node) { - node = jit_new_node_no_link(jit_code_data); - if (!align) - align = length; - switch (align) { - case 0: case 1: - break; - case 2: - _jitc->data.offset = (_jitc->data.offset + 1) & -2; - break; - case 3: case 4: - _jitc->data.offset = (_jitc->data.offset + 3) & -4; - break; - default: - _jitc->data.offset = (_jitc->data.offset + 7) & -8; - break; - } - node->u.w = _jitc->data.offset; - node->v.w = length; - jit_memcpy(_jitc->data.ptr + _jitc->data.offset, data, length); - _jitc->data.offset += length; - - node->next = _jitc->data.table[key]; - _jitc->data.table[key] = node; - ++_jitc->data.count; - - /* Rehash if more than 75% used table */ - if (_jitc->data.count > - (_jitc->data.size >> 1) + (_jitc->data.size >> 2) && - (_jitc->data.size << 1) > _jitc->data.size) { - jit_word_t i; - jit_node_t **hash; - jit_node_t *next; - jit_node_t *temp; - - jit_alloc((jit_pointer_t *)&hash, - (_jitc->data.size << 1) * sizeof(jit_node_t*)); - for (i = 0; i < _jitc->data.size; i++) { - temp = _jitc->data.table[i]; - for (; temp; temp = next) { - next = temp->next; - key = hash_data(_jitc->data.ptr + temp->u.w, temp->v.w) & - ((_jitc->data.size << 1) - 1); - temp->next = hash[key]; - hash[key] = temp; - } - } - jit_free((jit_pointer_t *)&_jitc->data.table); - _jitc->data.table = hash; - _jitc->data.size <<= 1; - } - } - - return (node); -} - -static void -_new_pool(jit_state_t *_jit) -{ - jit_node_t *list; - int32_t offset; - - if (_jitc->pool.offset >= _jitc->pool.length) { - int32_t length; - - length = _jitc->pool.length + 16; - jit_realloc((jit_pointer_t *)&_jitc->pool.ptr, - _jitc->pool.length * sizeof(jit_node_t *), - length * sizeof(jit_node_t *)); - _jitc->pool.length = length; - } - jit_alloc((jit_pointer_t *)(_jitc->pool.ptr + _jitc->pool.offset), - sizeof(jit_node_t) * 1024); - list = _jitc->pool.ptr[_jitc->pool.offset]; - for (offset = 1; offset < 1024; offset++, list++) - list->next = list + 1; - list->next = _jitc->list; - _jitc->list = _jitc->pool.ptr[_jitc->pool.offset]; - ++_jitc->pool.offset; -} - -static jit_node_t * -_new_node(jit_state_t *_jit, jit_code_t code) -{ - jit_node_t *node; - - if (_jitc->list == NULL) - new_pool(); - node = _jitc->list; - _jitc->list = node->next; - if (_jitc->synth) - node->flag |= jit_flag_synth; - node->next = NULL; - node->code = code; - - return (node); -} - -static inline jit_node_t * -_link_node(jit_state_t *_jit, jit_node_t *node) -{ - if (_jitc->tail) - _jitc->tail->next = node; - else - _jitc->head = node; - return (_jitc->tail = node); -} - -static inline void -_del_node(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) -{ - if (prev == node) { - assert(prev == _jitc->head); - _jitc->head = node->next; - } - else - prev->next = node->next; - memset(node, 0, sizeof(jit_node_t)); - node->next = _jitc->list; - _jitc->list = node; -} - -static inline void -_free_node(jit_state_t *_jit, jit_node_t *node) -{ - memset(node, 0, sizeof(jit_node_t)); - node->next = _jitc->list; - _jitc->list = node; -} - -static void -_del_label(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) -{ - jit_block_t *block; - - /* only allow call to del_label on linked labels */ - block = _jitc->blocks.ptr + node->v.w; - assert(block->label == node); - - /* del_label() should only be called when optimizing. - * This will leave an empty block index */ - jit_regset_del(&block->reglive); - jit_regset_del(&block->regmask); - block->label = NULL; - - /* redundant, should be already true */ - assert(node->link == NULL); - del_node(prev, node); -} - -static void -_bmp_init(jit_state_t *_jit) -{ - _jitc->blockmask.length = 16; - jit_alloc((jit_pointer_t *)&_jitc->blockmask.ptr, - sizeof(jit_word_t) * _jitc->blockmask.length); -} - -static void -_bmp_clear(jit_state_t *_jit) -{ - _jitc->blockmask.length = 0; - jit_free((jit_pointer_t *)&_jitc->blockmask.ptr); -} - -static void -_bmp_set(jit_state_t *_jit, jit_word_t bit) -{ - jit_word_t woff, boff; - - woff = bit >> bmp_shift; - boff = 1LL << (bit & (__WORDSIZE - 1)); - if (woff >= _jitc->blockmask.length) { - jit_word_t length = (woff + 16) & -16; - jit_realloc((jit_pointer_t *)&_jitc->blockmask.ptr, - _jitc->blockmask.length * sizeof(jit_word_t), - length * sizeof(jit_word_t)); - _jitc->blockmask.length = length; - } - _jitc->blockmask.ptr[woff] |= boff; -} - -static void -_bmp_clr(jit_state_t *_jit, jit_word_t bit) -{ - jit_word_t woff, boff; - - woff = bit >> bmp_shift; - boff = 1LL << (bit & (__WORDSIZE - 1)); - if (woff < _jitc->blockmask.length) - _jitc->blockmask.ptr[woff] &= ~boff; -} - -static jit_bool_t -_bmp_tst(jit_state_t *_jit, jit_word_t bit) -{ - jit_word_t woff, boff; - - woff = bit >> bmp_shift; - boff = 1LL << (bit & (__WORDSIZE - 1)); - if (woff < _jitc->blockmask.length) - return ((_jitc->blockmask.ptr[woff] & boff) != 0); - return (0); } jit_state_t * @@ -919,2486 +55,97 @@ jit_new_state(void) { jit_state_t *_jit; - jit_alloc((jit_pointer_t *)&_jit, sizeof(jit_state_t)); - jit_alloc((jit_pointer_t *)&_jitc, sizeof(jit_compiler_t)); - jit_regset_new(&_jitc->regarg); - jit_regset_new(&_jitc->regsav); - jit_regset_new(&_jitc->reglive); - jit_regset_new(&_jitc->regmask); - bmp_init(); + _jit = malloc (sizeof (*_jit)); + if (!_jit) + abort (); - jit_init(); + memset(_jit, 0, sizeof (*_jit)); - jit_alloc((jit_pointer_t *)&_jitc->spill, - _jitc->reglen * sizeof(jit_node_t*)); - jit_alloc((jit_pointer_t *)&_jitc->gen, - _jitc->reglen * sizeof(int32_t)); - jit_alloc((jit_pointer_t *)&_jitc->values, - _jitc->reglen * sizeof(jit_value_t)); + jit_init (_jit); - jit_alloc((jit_pointer_t *)&_jitc->patches.ptr, - (_jitc->patches.length = 1024) * sizeof(jit_patch_t)); - jit_alloc((jit_pointer_t *)&_jitc->functions.ptr, - (_jitc->functions.length = 16) * sizeof(jit_function_t)); - jit_alloc((jit_pointer_t *)&_jitc->pool.ptr, - (_jitc->pool.length = 16) * sizeof(jit_node_t*)); - jit_alloc((jit_pointer_t *)&_jitc->blocks.ptr, - (_jitc->blocks.length = 16) * sizeof(jit_block_t)); -#if __arm__ && DISASSEMBLER - jit_alloc((jit_pointer_t *)&_jitc->data_info.ptr, - (_jitc->data_info.length = 1024) * sizeof(jit_data_info_t)); -#endif - - /* allocate at most one extra note in case jit_name() is - * never called, or called after adding at least one note */ - _jit->note.length = 1; - _jitc->note.size = sizeof(jit_note_t); - - return (_jit); + return _jit; } void -_jit_clear_state(jit_state_t *_jit) +jit_destroy_state(jit_state_t *_jit) { -#if DEVEL_DISASSEMBLER -# define jit_really_clear_state() _jit_really_clear_state(_jit) -} - -void _jit_really_clear_state(jit_state_t *_jit) -{ -#endif - jit_word_t offset; - jit_function_t *function; - - /* release memory not required at jit execution time and set - * pointers to NULL to explicitly know they are released */ - _jitc->head = _jitc->tail = NULL; - - bmp_clear(); - - jit_free((jit_pointer_t *)&_jitc->data.table); - _jitc->data.size = _jitc->data.count = 0; - - jit_free((jit_pointer_t *)&_jitc->spill); - jit_free((jit_pointer_t *)&_jitc->gen); - jit_free((jit_pointer_t *)&_jitc->values); - - jit_free((jit_pointer_t *)&_jitc->blocks.ptr); - - jit_free((jit_pointer_t *)&_jitc->patches.ptr); - _jitc->patches.offset = _jitc->patches.length = 0; - - for (offset = 0; offset < _jitc->functions.offset; offset++) { - function = _jitc->functions.ptr + offset; - jit_free((jit_pointer_t *)&function->regoff); - } - jit_free((jit_pointer_t *)&_jitc->functions.ptr); - _jitc->functions.offset = _jitc->functions.length = 0; - _jitc->function = NULL; - - for (offset = 0; offset < _jitc->pool.offset; offset++) - jit_free((jit_pointer_t *)(_jitc->pool.ptr + offset)); - jit_free((jit_pointer_t *)&_jitc->pool.ptr); - _jitc->pool.offset = _jitc->pool.length = 0; - _jitc->list = NULL; - - _jitc->note.head = _jitc->note.tail = - _jitc->note.name = _jitc->note.note = NULL; - _jitc->note.base = NULL; - -#if __arm__ && DISASSEMBLER - jit_free((jit_pointer_t *)&_jitc->data_info.ptr); -#endif - -#if __powerpc64__ || __ia64__ - jit_free((jit_pointer_t *)&_jitc->prolog.ptr); -#endif - -#if __ia64__ - jit_regset_del(&_jitc->regs); -#endif - - jit_free((jit_pointer_t *)&_jitc); -} - -void -_jit_destroy_state(jit_state_t *_jit) -{ -#if DEVEL_DISASSEMBLER - jit_really_clear_state(); -#endif - if (!_jit->user_code) - munmap(_jit->code.ptr, _jit->code.length); - if (!_jit->user_data) - munmap(_jit->data.ptr, _jit->data.length); - jit_free((jit_pointer_t *)&_jit); -} - -void -_jit_synth_inc(jit_state_t *_jit) -{ - assert(_jitc->synth < 8); - ++_jitc->synth; -} - -jit_node_t * -_jit_new_node(jit_state_t *_jit, jit_code_t code) -{ - assert(!_jitc->realize); - return (link_node(new_node(code))); -} - -jit_node_t * -_jit_new_node_no_link(jit_state_t *_jit, jit_code_t code) -{ - assert(!_jitc->realize); - return (new_node(code)); -} - -void -_jit_link_node(jit_state_t *_jit, jit_node_t *node) -{ - assert(!_jitc->realize); - link_node(node); -} - -void -_jit_synth_dec(jit_state_t *_jit) -{ - assert(_jitc->synth > 0); - --_jitc->synth; -} - -jit_node_t * -_jit_new_node_w(jit_state_t *_jit, jit_code_t code, - jit_word_t u) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_f(jit_state_t *_jit, jit_code_t code, - jit_float32_t u) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.f = u; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_d(jit_state_t *_jit, jit_code_t code, - jit_float64_t u) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.d = u; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_p(jit_state_t *_jit, jit_code_t code, - jit_pointer_t u) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.p = u; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_ww(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_word_t v) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.w = v; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_wp(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_pointer_t v) -{ - return (jit_new_node_ww(code, u, (jit_word_t)v)); -} - -jit_node_t * -_jit_new_node_fp(jit_state_t *_jit, jit_code_t code, - jit_float32_t u, jit_pointer_t v) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.f = u; - node->v.w = (jit_word_t)v; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_dp(jit_state_t *_jit, jit_code_t code, - jit_float64_t u, jit_pointer_t v) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.d = u; - node->v.w = (jit_word_t)v; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_pw(jit_state_t *_jit, jit_code_t code, - jit_pointer_t u, jit_word_t v) -{ - return (jit_new_node_ww(code, (jit_word_t)u, v)); -} - -jit_node_t * -_jit_new_node_wf(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_float32_t v) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.f = v; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_wd(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_float64_t v) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.d = v; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_www(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_word_t v, jit_word_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.w = v; - node->w.w = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_qww(jit_state_t *_jit, jit_code_t code, - int32_t l, jit_int32_t h, - jit_word_t v, jit_word_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - assert(l != h); - node->u.q.l = l; - node->u.q.h = h; - node->v.w = v; - node->w.w = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_wwf(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_word_t v, jit_float32_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.w = v; - node->w.f = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_wwd(jit_state_t *_jit, jit_code_t code, - jit_word_t u, jit_word_t v, jit_float64_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.w = u; - node->v.w = v; - node->w.d = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_pww(jit_state_t *_jit, jit_code_t code, - jit_pointer_t u, jit_word_t v, jit_word_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.p = u; - node->v.w = v; - node->w.w = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_pwf(jit_state_t *_jit, jit_code_t code, - jit_pointer_t u, jit_word_t v, jit_float32_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.p = u; - node->v.w = v; - node->w.f = w; - return (link_node(node)); -} - -jit_node_t * -_jit_new_node_pwd(jit_state_t *_jit, jit_code_t code, - jit_pointer_t u, jit_word_t v, jit_float64_t w) -{ - jit_node_t *node = new_node(code); - assert(!_jitc->realize); - node->u.p = u; - node->v.w = v; - node->w.d = w; - return (link_node(node)); -} - -jit_node_t * -_jit_label(jit_state_t *_jit) -{ - jit_node_t *node; - - if (!(node = _jitc->tail) || node->code != jit_code_label) { - node = jit_forward(); - jit_link(node); - } - - return (node); -} - -jit_node_t * -_jit_forward(jit_state_t *_jit) -{ - return (jit_new_node_no_link(jit_code_label)); -} - -jit_node_t * -_jit_indirect(jit_state_t *_jit) -{ - jit_node_t *node; - - node = jit_label(); - node->flag |= jit_flag_use; - - return (node); -} - -void -_jit_link(jit_state_t *_jit, jit_node_t *node) -{ - jit_block_t *block; - - assert((node->code == jit_code_label || - node->code == jit_code_prolog || - node->code == jit_code_epilog) && !node->next); - jit_link_node(node); - if (_jitc->blocks.offset >= _jitc->blocks.length) { - jit_word_t length; - - length = _jitc->blocks.length + 16; - jit_realloc((jit_pointer_t *)&_jitc->blocks.ptr, - _jitc->blocks.length * sizeof(jit_block_t), - length * sizeof(jit_block_t)); - _jitc->blocks.length = length; - } - block = _jitc->blocks.ptr + _jitc->blocks.offset; - block->label = node; - node->v.w = _jitc->blocks.offset; - jit_regset_new(&block->reglive); - jit_regset_new(&block->regmask); - ++_jitc->blocks.offset; -} - -jit_bool_t -_jit_forward_p(jit_state_t *_jit, jit_node_t *node) -{ - return (node->code == jit_code_label && !node->next && node != _jitc->tail); -} - -jit_bool_t -_jit_indirect_p(jit_state_t *_jit, jit_node_t *node) -{ - return (node->code == jit_code_label && !!(node->flag & jit_flag_use)); -} - -jit_bool_t -_jit_target_p(jit_state_t *_jit, jit_node_t *node) -{ - return (node->code == jit_code_label && !!node->link); -} - -void -_jit_prepare(jit_state_t *_jit) -{ - assert(_jitc->function != NULL); - _jitc->function->call.call = jit_call_default; - _jitc->function->call.argi = - _jitc->function->call.argf = - _jitc->function->call.size = 0; - _jitc->prepare = jit_new_node(jit_code_prepare); -} - -void -_jit_patch(jit_state_t* _jit, jit_node_t *instr) -{ - jit_node_t *label; - - if (!(label = _jitc->tail) || label->code != jit_code_label) - label = jit_label(); - jit_patch_at(instr, label); -} - -int32_t -_jit_classify(jit_state_t *_jit, jit_code_t code) -{ - int32_t mask; - - switch (code) { - case jit_code_data: case jit_code_save: case jit_code_load: - case jit_code_name: case jit_code_label: case jit_code_note: - case jit_code_prolog: case jit_code_ellipsis: case jit_code_va_push: - case jit_code_epilog: case jit_code_ret: case jit_code_prepare: - mask = 0; - break; - case jit_code_live: case jit_code_va_end: - case jit_code_retr: case jit_code_retr_f: case jit_code_retr_d: - case jit_code_pushargr: case jit_code_pushargr_f: - case jit_code_pushargr_d: - case jit_code_finishr: /* synthesized will set jit_cc_a0_jmp */ - mask = jit_cc_a0_reg; - break; - case jit_code_align: case jit_code_reti: case jit_code_pushargi: - case jit_code_finishi: /* synthesized will set jit_cc_a0_jmp */ - mask = jit_cc_a0_int; - break; - case jit_code_reti_f: case jit_code_pushargi_f: - mask = jit_cc_a0_flt; - break; - case jit_code_reti_d: case jit_code_pushargi_d: - mask = jit_cc_a0_dbl; - break; - case jit_code_allocai: - mask = jit_cc_a0_int|jit_cc_a1_int; - break; - case jit_code_arg: case jit_code_arg_f: case jit_code_arg_d: - mask = jit_cc_a0_int|jit_cc_a0_arg; - break; - case jit_code_calli: case jit_code_jmpi: - mask = jit_cc_a0_jmp; - break; - case jit_code_callr: case jit_code_jmpr: - mask = jit_cc_a0_reg|jit_cc_a0_jmp; - break; - case jit_code_retval_c: case jit_code_retval_uc: - case jit_code_retval_s: case jit_code_retval_us: - case jit_code_retval_i: case jit_code_retval_ui: - case jit_code_retval_l: - case jit_code_retval_f: case jit_code_retval_d: - case jit_code_va_start: - mask = jit_cc_a0_reg|jit_cc_a0_chg; - break; - case jit_code_getarg_c: case jit_code_getarg_uc: - case jit_code_getarg_s: case jit_code_getarg_us: - case jit_code_getarg_i: case jit_code_getarg_ui: - case jit_code_getarg_l: - case jit_code_getarg_f: case jit_code_getarg_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_arg; - break; - case jit_code_putargr: case jit_code_putargr_f: - case jit_code_putargr_d: - mask = jit_cc_a0_reg|jit_cc_a1_arg; - break; - case jit_code_putargi: - mask = jit_cc_a0_int|jit_cc_a1_arg; - break; - case jit_code_putargi_f: - mask = jit_cc_a0_flt|jit_cc_a1_arg; - break; - case jit_code_putargi_d: - mask = jit_cc_a0_dbl|jit_cc_a1_arg; - break; - case jit_code_movi: case jit_code_ldi_c: case jit_code_ldi_uc: - case jit_code_ldi_s: case jit_code_ldi_us: case jit_code_ldi_i: - case jit_code_ldi_ui: case jit_code_ldi_l: case jit_code_ldi_f: - case jit_code_ldi_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_int; - break; - case jit_code_movi_f: case jit_code_movi_f_w: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_flt; - break; - case jit_code_movi_d: case jit_code_movi_d_w: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_dbl; - break; - case jit_code_movi_d_ww: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a1_chg| - jit_cc_a2_dbl; - break; - case jit_code_negr: case jit_code_comr: case jit_code_movr: - case jit_code_extr_c: case jit_code_extr_uc: case jit_code_extr_s: - case jit_code_extr_us: case jit_code_extr_i: case jit_code_extr_ui: - case jit_code_truncr_f_i: case jit_code_truncr_f_l: - case jit_code_truncr_d_i: case jit_code_truncr_d_l: - case jit_code_htonr_us: case jit_code_htonr_ui: case jit_code_htonr_ul: - case jit_code_ldr_c: case jit_code_ldr_uc: - case jit_code_ldr_s: case jit_code_ldr_us: case jit_code_ldr_i: - case jit_code_ldr_ui: case jit_code_ldr_l: case jit_code_negr_f: - case jit_code_absr_f: case jit_code_sqrtr_f: case jit_code_movr_f: - case jit_code_extr_f: case jit_code_extr_d_f: case jit_code_ldr_f: - case jit_code_negr_d: case jit_code_absr_d: case jit_code_sqrtr_d: - case jit_code_movr_d: case jit_code_extr_d: case jit_code_extr_f_d: - case jit_code_ldr_d: - case jit_code_movr_w_f: case jit_code_movr_f_w: - case jit_code_movr_w_d: case jit_code_movr_d_w: - case jit_code_va_arg: case jit_code_va_arg_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg; - break; - case jit_code_movr_d_ww: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a1_chg| - jit_cc_a2_reg; - break; - case jit_code_addi: case jit_code_addxi: case jit_code_addci: - case jit_code_subi: case jit_code_subxi: case jit_code_subci: - case jit_code_rsbi: - case jit_code_muli: case jit_code_divi: case jit_code_divi_u: - case jit_code_remi: case jit_code_remi_u: case jit_code_andi: - case jit_code_ori: case jit_code_xori: case jit_code_lshi: - case jit_code_rshi: case jit_code_rshi_u: case jit_code_lti: - case jit_code_lti_u: case jit_code_lei: case jit_code_lei_u: - case jit_code_eqi: case jit_code_gei: case jit_code_gei_u: - case jit_code_gti: case jit_code_gti_u: case jit_code_nei: - case jit_code_ldxi_c: case jit_code_ldxi_uc: case jit_code_ldxi_s: - case jit_code_ldxi_us: case jit_code_ldxi_i: case jit_code_ldxi_ui: - case jit_code_ldxi_l: case jit_code_ldxi_f: case jit_code_ldxi_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_int; - break; - case jit_code_qmuli: case jit_code_qmuli_u: - case jit_code_qdivi: case jit_code_qdivi_u: - mask = jit_cc_a0_reg|jit_cc_a0_rlh|jit_cc_a0_chg| - jit_cc_a1_reg|jit_cc_a2_int; - break; - case jit_code_addi_f: case jit_code_subi_f: case jit_code_rsbi_f: - case jit_code_muli_f: case jit_code_divi_f: case jit_code_lti_f: - case jit_code_lei_f: case jit_code_eqi_f: case jit_code_gei_f: - case jit_code_gti_f: case jit_code_nei_f: case jit_code_unlti_f: - case jit_code_unlei_f: case jit_code_uneqi_f: case jit_code_ungei_f: - case jit_code_ungti_f: case jit_code_ltgti_f: case jit_code_ordi_f: - case jit_code_unordi_f: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_flt; - break; - case jit_code_addi_d: case jit_code_subi_d: case jit_code_rsbi_d: - case jit_code_muli_d: case jit_code_divi_d: case jit_code_lti_d: - case jit_code_lei_d: case jit_code_eqi_d: case jit_code_gei_d: - case jit_code_gti_d: case jit_code_nei_d: case jit_code_unlti_d: - case jit_code_unlei_d: case jit_code_uneqi_d: case jit_code_ungei_d: - case jit_code_ungti_d: case jit_code_ltgti_d: case jit_code_ordi_d: - case jit_code_unordi_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_dbl; - break; - case jit_code_addr: case jit_code_addxr: case jit_code_addcr: - case jit_code_subr: case jit_code_subxr: case jit_code_subcr: - case jit_code_mulr: case jit_code_divr: case jit_code_divr_u: - case jit_code_remr: case jit_code_remr_u: case jit_code_andr: - case jit_code_orr: case jit_code_xorr: case jit_code_lshr: - case jit_code_rshr: case jit_code_rshr_u: case jit_code_ltr: - case jit_code_ltr_u: case jit_code_ler: case jit_code_ler_u: - case jit_code_eqr: case jit_code_ger: case jit_code_ger_u: - case jit_code_gtr: case jit_code_gtr_u: case jit_code_ner: - case jit_code_ldxr_c: case jit_code_ldxr_uc: case jit_code_ldxr_s: - case jit_code_ldxr_us: case jit_code_ldxr_i: case jit_code_ldxr_ui: - case jit_code_ldxr_l: case jit_code_addr_f: case jit_code_subr_f: - case jit_code_mulr_f: case jit_code_divr_f: case jit_code_ltr_f: - case jit_code_ler_f: case jit_code_eqr_f: case jit_code_ger_f: - case jit_code_gtr_f: case jit_code_ner_f: case jit_code_unltr_f: - case jit_code_unler_f: case jit_code_uneqr_f: case jit_code_unger_f: - case jit_code_ungtr_f: case jit_code_ltgtr_f: case jit_code_ordr_f: - case jit_code_unordr_f: case jit_code_ldxr_f: case jit_code_addr_d: - case jit_code_subr_d: case jit_code_mulr_d: case jit_code_divr_d: - case jit_code_ltr_d: case jit_code_ler_d: case jit_code_eqr_d: - case jit_code_ger_d: case jit_code_gtr_d: case jit_code_ner_d: - case jit_code_unltr_d: case jit_code_unler_d: case jit_code_uneqr_d: - case jit_code_unger_d: case jit_code_ungtr_d: case jit_code_ltgtr_d: - case jit_code_ordr_d: case jit_code_unordr_d: case jit_code_ldxr_d: - case jit_code_movr_ww_d: - mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_reg; - break; - case jit_code_qmulr: case jit_code_qmulr_u: - case jit_code_qdivr: case jit_code_qdivr_u: - mask = jit_cc_a0_reg|jit_cc_a0_rlh|jit_cc_a0_chg| - jit_cc_a1_reg|jit_cc_a2_reg; - break; - case jit_code_sti_c: case jit_code_sti_s: case jit_code_sti_i: - case jit_code_sti_l: case jit_code_sti_f: case jit_code_sti_d: - mask = jit_cc_a0_int|jit_cc_a1_reg; - break; - case jit_code_blti: case jit_code_blti_u: case jit_code_blei: - case jit_code_blei_u: case jit_code_beqi: case jit_code_bgei: - case jit_code_bgei_u: case jit_code_bgti: case jit_code_bgti_u: - case jit_code_bnei: case jit_code_bmsi: case jit_code_bmci: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_int; - break; - case jit_code_blti_f: case jit_code_blei_f: case jit_code_beqi_f: - case jit_code_bgei_f: case jit_code_bgti_f: case jit_code_bnei_f: - case jit_code_bunlti_f: case jit_code_bunlei_f: case jit_code_buneqi_f: - case jit_code_bungei_f: case jit_code_bungti_f: case jit_code_bltgti_f: - case jit_code_bordi_f: case jit_code_bunordi_f: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_flt; - break; - case jit_code_blti_d: case jit_code_blei_d: case jit_code_beqi_d: - case jit_code_bgei_d: case jit_code_bgti_d: case jit_code_bnei_d: - case jit_code_bunlti_d: case jit_code_bunlei_d: case jit_code_buneqi_d: - case jit_code_bungei_d: case jit_code_bungti_d: case jit_code_bltgti_d: - case jit_code_bordi_d: case jit_code_bunordi_d: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_dbl; - break; - case jit_code_allocar: /* synthesized instructions make it - * equivalent to jit_cc_a0_chg */ - case jit_code_str_c: case jit_code_str_s: case jit_code_str_i: - case jit_code_str_l: case jit_code_str_f: case jit_code_str_d: - mask = jit_cc_a0_reg|jit_cc_a1_reg; - break; - case jit_code_stxi_c: case jit_code_stxi_s: case jit_code_stxi_i: - case jit_code_stxi_l: case jit_code_stxi_f: case jit_code_stxi_d: - mask = jit_cc_a0_int|jit_cc_a1_reg|jit_cc_a2_reg; - break; - case jit_code_bltr: case jit_code_bltr_u: case jit_code_bler: - case jit_code_bler_u: case jit_code_beqr: case jit_code_bger: - case jit_code_bger_u: case jit_code_bgtr: case jit_code_bgtr_u: - case jit_code_bner: case jit_code_bmsr: case jit_code_bmcr: - case jit_code_bltr_f: case jit_code_bler_f: case jit_code_beqr_f: - case jit_code_bger_f: case jit_code_bgtr_f: case jit_code_bner_f: - case jit_code_bunltr_f: case jit_code_bunler_f: case jit_code_buneqr_f: - case jit_code_bunger_f: case jit_code_bungtr_f: case jit_code_bltgtr_f: - case jit_code_bordr_f: case jit_code_bunordr_f:case jit_code_bltr_d: - case jit_code_bler_d: case jit_code_beqr_d: case jit_code_bger_d: - case jit_code_bgtr_d: case jit_code_bner_d: case jit_code_bunltr_d: - case jit_code_bunler_d: case jit_code_buneqr_d: case jit_code_bunger_d: - case jit_code_bungtr_d: case jit_code_bltgtr_d: case jit_code_bordr_d: - case jit_code_bunordr_d: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a2_reg; - break; - case jit_code_boaddi: case jit_code_boaddi_u: case jit_code_bxaddi: - case jit_code_bxaddi_u: case jit_code_bosubi: case jit_code_bosubi_u: - case jit_code_bxsubi: case jit_code_bxsubi_u: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a1_chg|jit_cc_a2_int; - break; - case jit_code_stxr_c: case jit_code_stxr_s: case jit_code_stxr_i: - case jit_code_stxr_l: case jit_code_stxr_f: case jit_code_stxr_d: - mask = jit_cc_a0_reg|jit_cc_a1_reg|jit_cc_a2_reg; - break; - case jit_code_boaddr: case jit_code_boaddr_u: case jit_code_bxaddr: - case jit_code_bxaddr_u: case jit_code_bosubr: case jit_code_bosubr_u: - case jit_code_bxsubr: case jit_code_bxsubr_u: - mask = jit_cc_a0_jmp|jit_cc_a1_reg|jit_cc_a1_chg|jit_cc_a2_reg; - break; - default: - abort(); - } - - return (mask); -} - -void -_jit_patch_abs(jit_state_t *_jit, jit_node_t *instr, jit_pointer_t address) -{ - int32_t mask; - - if (instr->code == jit_code_movi) - instr->v.p = address; - else { - mask = jit_classify(instr->code); - assert((mask & (jit_cc_a0_reg|jit_cc_a0_jmp)) == jit_cc_a0_jmp); - instr->u.p = address; - } -} - -void -_jit_patch_at(jit_state_t *_jit, jit_node_t *instr, jit_node_t *label) -{ - int32_t mask; - - assert(!(instr->flag & jit_flag_node)); - instr->flag |= jit_flag_node; - switch (instr->code) { - case jit_code_movi: - assert(label->code == jit_code_label || - label->code == jit_code_data); - instr->v.n = label; - if (label->code == jit_code_data) - instr->flag |= jit_flag_data; - break; - case jit_code_jmpi: - assert(label->code == jit_code_label || - label->code == jit_code_epilog); - instr->u.n = label; - break; - default: - mask = jit_classify(instr->code); - assert((mask & (jit_cc_a0_reg|jit_cc_a0_jmp)) == jit_cc_a0_jmp); - assert(label->code == jit_code_label); - instr->u.n = label; - break; - } - /* link field is used as list of nodes associated with a given label */ - instr->link = label->link; - label->link = instr; -} - -void -_jit_optimize(jit_state_t *_jit) -{ - jit_bool_t jump; - int32_t mask; - jit_node_t *node; - jit_block_t *block; - jit_word_t offset; - - _jitc->function = NULL; - - thread_jumps(); - sequential_labels(); - - /* create initial mapping of live register values - * at the start of a basic block */ - for (offset = 0; offset < _jitc->blocks.offset; offset++) { - block = _jitc->blocks.ptr + offset; - if (!block->label) - continue; - if (block->label->code != jit_code_epilog) { - jit_setup(block); - jit_regset_set(&block->setmask, &block->regmask); - } - } - /* call jit_update resolving undefined values in reverse - * order so that sequential code would find most data already - * resolved when reaching the start of a new basic block */ - for (offset = _jitc->blocks.offset - 1; offset >= 0; offset--) { - block = _jitc->blocks.ptr + offset; - if (!block->label) - continue; - if (block->label->code != jit_code_epilog) { - jit_regset_set(&_jitc->regmask, &block->regmask); - jit_update(block->label->next, &block->reglive, &_jitc->regmask, 1); - } - } - /* do a second pass from start to properly handle some conditions - * of very long living registers that are not referenced for - * several blocks */ - bmp_zero(); - for (offset = 0; offset < _jitc->blocks.offset; offset++) { - block = _jitc->blocks.ptr + offset; - if (!block->label) - continue; - if (block->label->code != jit_code_epilog) { - jit_regset_set(&_jitc->regmask, &block->setmask); - jit_update(block->label->next, &block->reglive, &_jitc->regmask, 1); - } - } - - patch_registers(); - simplify(); - - /* figure out labels that are only reached with a jump - * and is required to do a simple redundant_store removal - * on jit_beqi below */ - jump = 1; - for (node = _jitc->head; node; node = node->next) { - switch (node->code) { - case jit_code_label: - if (!jump) - node->flag |= jit_flag_head; - break; - case jit_code_jmpi: case jit_code_jmpr: - case jit_code_epilog: - jump = 1; - break; - case jit_code_data: case jit_code_note: - break; - default: - jump = 0; - break; - } - } - - for (node = _jitc->head; node; node = node->next) { - mask = jit_classify(node->code); - if (mask & jit_cc_a0_reg) - node->u.w &= ~jit_regno_patch; - if (mask & jit_cc_a1_reg) - node->v.w &= ~jit_regno_patch; - if (mask & jit_cc_a2_reg) - node->w.w &= ~jit_regno_patch; - switch (node->code) { - case jit_code_prolog: - _jitc->function = _jitc->functions.ptr + node->w.w; - break; - case jit_code_epilog: - _jitc->function = NULL; - break; - case jit_code_beqi: - redundant_store(node, 1); - break; - case jit_code_bnei: - redundant_store(node, 0); - break; - default: -#if JIT_HASH_CONSTS - if (mask & jit_cc_a0_flt) { - node->u.p = jit_data(&node->u.f, sizeof(jit_float32_t), 4); - node->flag |= jit_flag_node | jit_flag_data; - } - else if (mask & jit_cc_a0_dbl) { - node->u.p = jit_data(&node->u.d, sizeof(jit_float64_t), 8); - node->flag |= jit_flag_node | jit_flag_data; - } - else if (mask & jit_cc_a1_flt) { - node->v.p = jit_data(&node->v.f, sizeof(jit_float32_t), 4); - node->flag |= jit_flag_node | jit_flag_data; - } - else if (mask & jit_cc_a1_dbl) { - node->v.p = jit_data(&node->v.d, sizeof(jit_float64_t), 8); - node->flag |= jit_flag_node | jit_flag_data; - } - else if (mask & jit_cc_a2_flt) { - node->w.p = jit_data(&node->w.f, sizeof(jit_float32_t), 4); - node->flag |= jit_flag_node | jit_flag_data; - } - else if (mask & jit_cc_a2_dbl) { - node->w.p = jit_data(&node->w.d, sizeof(jit_float64_t), 8); - node->flag |= jit_flag_node | jit_flag_data; - } -#endif - if (_jitc->function) { - if ((mask & (jit_cc_a0_reg|jit_cc_a0_chg)) == - (jit_cc_a0_reg|jit_cc_a0_chg)) { - if (mask & jit_cc_a0_rlh) { - jit_regset_setbit(&_jitc->function->regset, - jit_regno(node->u.q.l)); - jit_regset_setbit(&_jitc->function->regset, - jit_regno(node->u.q.h)); - } - else - jit_regset_setbit(&_jitc->function->regset, - jit_regno(node->u.w)); - } - if ((mask & (jit_cc_a1_reg|jit_cc_a1_chg)) == - (jit_cc_a1_reg|jit_cc_a1_chg)) - jit_regset_setbit(&_jitc->function->regset, - jit_regno(node->v.w)); - if ((mask & (jit_cc_a2_reg|jit_cc_a2_chg)) == - (jit_cc_a2_reg|jit_cc_a2_chg)) - jit_regset_setbit(&_jitc->function->regset, - jit_regno(node->w.w)); - } - break; - } - } -} - -void -_jit_reglive(jit_state_t *_jit, jit_node_t *node) -{ - int32_t spec; - int32_t value; - jit_block_t *block; - - switch (node->code) { - case jit_code_label: case jit_code_prolog: case jit_code_epilog: - block = _jitc->blocks.ptr + node->v.w; - jit_regset_set(&_jitc->reglive, &block->reglive); - break; - case jit_code_callr: - value = jit_regno(node->u.w); - if (!(node->u.w & jit_regno_patch)) { - jit_regset_setbit(&_jitc->reglive, value); - } - case jit_code_calli: - for (value = 0; value < _jitc->reglen; value++) { - spec = jit_class(_rvs[value].spec); - if ((spec & jit_class_arg) && jit_regarg_p(node, value)) - jit_regset_setbit(&_jitc->reglive, value); - else if (!(spec & jit_class_sav)) - jit_regset_clrbit(&_jitc->reglive, value); - } - break; - default: - value = jit_classify(node->code); - if (value & jit_cc_a0_reg) { - if (value & jit_cc_a0_rlh) { - if (!(node->u.q.l & jit_regno_patch)) { - if (value & jit_cc_a0_chg) { - jit_regset_clrbit(&_jitc->reglive, node->u.q.l); - jit_regset_setbit(&_jitc->regmask, node->u.q.l); - } - else - jit_regset_setbit(&_jitc->reglive, node->u.q.l); - } - if (!(node->u.q.h & jit_regno_patch)) { - if (value & jit_cc_a0_chg) { - jit_regset_clrbit(&_jitc->reglive, node->u.q.h); - jit_regset_setbit(&_jitc->regmask, node->u.q.h); - } - else - jit_regset_setbit(&_jitc->reglive, node->u.q.h); - } - } - else { - if (!(node->u.w & jit_regno_patch)) { - if (value & jit_cc_a0_chg) { - jit_regset_clrbit(&_jitc->reglive, node->u.w); - jit_regset_setbit(&_jitc->regmask, node->u.w); - } - else - jit_regset_setbit(&_jitc->reglive, node->u.w); - } - } - } - if ((value & jit_cc_a1_reg) && !(node->v.w & jit_regno_patch)) { - if (value & jit_cc_a1_chg) { - jit_regset_clrbit(&_jitc->reglive, node->v.w); - jit_regset_setbit(&_jitc->regmask, node->v.w); - } - else - jit_regset_setbit(&_jitc->reglive, node->v.w); - } - if ((value & jit_cc_a2_reg) && !(node->w.w & jit_regno_patch)) { - if (value & jit_cc_a2_chg) { - jit_regset_clrbit(&_jitc->reglive, node->w.w); - jit_regset_setbit(&_jitc->regmask, node->w.w); - } - else - jit_regset_setbit(&_jitc->reglive, node->w.w); - } - if (jit_regset_set_p(&_jitc->regmask)) { - bmp_zero(); - jit_update(node->next, &_jitc->reglive, &_jitc->regmask, 1); - if (jit_regset_set_p(&_jitc->regmask)) { - /* any unresolved live state is considered as live */ - jit_regset_ior(&_jitc->reglive, - &_jitc->reglive, &_jitc->regmask); - jit_regset_set_ui(&_jitc->regmask, 0); - } - } - break; - } -} - -void -_jit_regarg_set(jit_state_t *_jit, jit_node_t *node, int32_t value) -{ -#if GET_JIT_SIZE - jit_size_prepare(); -#endif - if (value & jit_cc_a0_reg) { - if (value & jit_cc_a0_rlh) { - jit_regset_setbit(&_jitc->regarg, jit_regno(node->u.q.l)); - jit_regset_setbit(&_jitc->regarg, jit_regno(node->u.q.h)); - } - else - jit_regset_setbit(&_jitc->regarg, jit_regno(node->u.w)); - } - if (value & jit_cc_a1_reg) - jit_regset_setbit(&_jitc->regarg, jit_regno(node->v.w)); - if (value & jit_cc_a2_reg) - jit_regset_setbit(&_jitc->regarg, jit_regno(node->w.w)); -} - -void -_jit_regarg_clr(jit_state_t *_jit, jit_node_t *node, int32_t value) -{ -#if GET_JIT_SIZE - jit_size_collect(node); -#endif - if (value & jit_cc_a0_reg) { - if (value & jit_cc_a0_rlh) { - jit_regset_clrbit(&_jitc->regarg, jit_regno(node->u.q.l)); - jit_regset_clrbit(&_jitc->regarg, jit_regno(node->u.q.h)); - } - else - jit_regset_clrbit(&_jitc->regarg, jit_regno(node->u.w)); - } - if (value & jit_cc_a1_reg) - jit_regset_clrbit(&_jitc->regarg, jit_regno(node->v.w)); - if (value & jit_cc_a2_reg) - jit_regset_clrbit(&_jitc->regarg, jit_regno(node->w.w)); -} - -void -_jit_realize(jit_state_t *_jit) -{ - assert(!_jitc->realize); - if (_jitc->function) - jit_epilog(); - jit_optimize(); - _jitc->realize = 1; - - /* ensure it is aligned */ - _jitc->data.offset = (_jitc->data.offset + 7) & -8; - -#if GET_JIT_SIZE - /* Heuristic to guess code buffer size */ - _jitc->mult = 4; - _jit->code.length = _jitc->pool.length * 1024 * _jitc->mult; -#else - _jit->code.length = jit_get_size(); -#endif -} - -void -_jit_dataset(jit_state_t *_jit) -{ - uint8_t *ptr; - jit_node_t *node; - jit_word_t offset; -#if defined(__sgi) - int mmap_fd; -#endif - - assert(!_jitc->dataset); - if (!_jit->user_data) { - - /* create read only data buffer */ - _jit->data.length = (_jitc->data.offset + - /* reserve space for annotations */ - _jitc->note.size + 4095) & -4096; -#if defined(__sgi) - mmap_fd = open("/dev/zero", O_RDWR); -#endif - _jit->data.ptr = mmap(NULL, _jit->data.length, - PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, mmap_fd, 0); - assert(_jit->data.ptr != MAP_FAILED); -#if defined(__sgi) - close(mmap_fd); -#endif - } - - if (!_jitc->no_data) - jit_memcpy(_jit->data.ptr, _jitc->data.ptr, _jitc->data.offset); - - if (_jitc->no_note) { - /* Space for one note is always allocated, so revert it here - * if after jit_new_state was called, it is also requested to - * not generate annotation information */ - _jit->note.length = 0; - _jitc->note.size = 0; - } - else { - _jitc->note.base = _jit->data.ptr; - if (!_jitc->no_data) - _jitc->note.base += _jitc->data.offset; - memset(_jitc->note.base, 0, _jitc->note.size); - } - - if (_jit->user_data) - /* Need the temporary hashed data until jit_emit is finished */ - ptr = _jitc->no_data ? _jitc->data.ptr : _jit->data.ptr; - else { - ptr = _jit->data.ptr; - /* Temporary hashed data no longer required */ - jit_free((jit_pointer_t *)&_jitc->data.ptr); - } - - for (offset = 0; offset < _jitc->data.size; offset++) { - for (node = _jitc->data.table[offset]; node; node = node->next) { - node->flag |= jit_flag_patch; - node->u.w = (jit_word_t)(ptr + node->u.w); - } - } - - _jitc->dataset = 1; + free (_jit); } jit_pointer_t -_jit_get_code(jit_state_t *_jit, jit_word_t *length) +jit_address(jit_state_t *_jit) { - assert(_jitc->realize); - if (length) { - if (_jitc->done) - /* If code already generated, return exact size of code */ - *length = _jit->pc.uc - _jit->code.ptr; - else - /* Else return current size of the code buffer */ - *length = _jit->code.length; - } - - return (_jit->code.ptr); + /* TODO: FIXME */ + abort (); } void -_jit_set_code(jit_state_t *_jit, jit_pointer_t ptr, jit_word_t length) +jit_begin(jit_state_t *_jit, jit_addr_t addr, size_t length) { - assert(_jitc->realize); - _jit->code.ptr = ptr; - _jit->code.length = length; - _jit->user_code = 1; -} + ASSERT (!_jit->start); -jit_pointer_t -_jit_get_data(jit_state_t *_jit, jit_word_t *data_size, jit_word_t *note_size) -{ - assert(_jitc->realize); - if (data_size) - *data_size = _jitc->data.offset; - if (note_size) - *note_size = _jitc->note.size; - return (_jit->data.ptr); + _jit->start = addr; + _jit->limit = _jit->start + length; + jit_reset(_jit); } void -_jit_set_data(jit_state_t *_jit, jit_pointer_t ptr, - jit_word_t length, jit_word_t flags) +jit_reset(jit_state_t *_jit) { - assert(_jitc->realize); - if (flags & JIT_DISABLE_DATA) - _jitc->no_data = 1; - else - assert(length >= _jitc->data.offset); - if (flags & JIT_DISABLE_NOTE) - _jitc->no_note = 1; - else { - if (flags & JIT_DISABLE_DATA) - assert(length >= _jitc->note.size); - else - assert(length >= _jitc->data.offset + _jitc->note.size); - } - _jit->data.ptr = ptr; - _jit->data.length = length; - _jit->user_data = 1; + ASSERT (_jit->start); + _jit->pc.uc = _jit->start = _jit->limit = NULL; } -jit_pointer_t -_jit_emit(jit_state_t *_jit) +jit_addr_t +jit_end(jit_state_t *_jit, size_t *length) { - jit_pointer_t code; - jit_node_t *node; - size_t length; - int result; -#if defined(__sgi) - int mmap_fd; -#endif + uint8_t *code = _jit->start; + uint8_t *end = _jit->pc.uc; - if (!_jitc->realize) - jit_realize(); + ASSERT (code); + ASSERT (end > code); + ASSERT (end <= _jit->limit); - if (!_jitc->dataset) - jit_dataset(); + jit_flush (code, end); - _jitc->emit = 1; + if (length) { + *length = end - code; + } - if (!_jit->user_code) { -#if defined(__sgi) - mmap_fd = open("/dev/zero", O_RDWR); -#endif - _jit->code.ptr = mmap(NULL, _jit->code.length, - PROT_EXEC | PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, mmap_fd, 0); - assert(_jit->code.ptr != MAP_FAILED); - } - _jitc->code.end = _jit->code.ptr + _jit->code.length - - jit_get_max_instr(); - _jit->pc.uc = _jit->code.ptr; + jit_reset (_jit); - for (;;) { - if ((code = emit_code()) == NULL) { - _jitc->patches.offset = 0; - for (node = _jitc->head; node; node = node->next) { - if (node->link && - (node->code == jit_code_label || - node->code == jit_code_epilog)) - node->flag &= ~jit_flag_patch; - } - if (_jit->user_code) - goto fail; -#if GET_JIT_SIZE - ++_jitc->mult; - length = _jitc->pool.length * 1024 * _jitc->mult; -#else - /* Should only happen on very special cases */ - length = _jit->code.length + 4096; -#endif + return code; +} -#if !HAVE_MREMAP - munmap(_jit->code.ptr, _jit->code.length); -#endif - -#if HAVE_MREMAP -# if __NetBSD__ - _jit->code.ptr = mremap(_jit->code.ptr, _jit->code.length, - _jit->code.ptr, length, 0); -# else - _jit->code.ptr = mremap(_jit->code.ptr, _jit->code.length, - length, MREMAP_MAYMOVE, NULL); -# endif -#else - _jit->code.ptr = mmap(NULL, length, - PROT_EXEC | PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, mmap_fd, 0); -#endif - - assert(_jit->code.ptr != MAP_FAILED); - _jit->code.length = length; - _jitc->code.end = _jit->code.ptr + _jit->code.length - - jit_get_max_instr(); - _jit->pc.uc = _jit->code.ptr; - } - else - break; - } - -#if defined(__sgi) - if (!_jit->user_code) - close(mmap_fd); -#endif - - _jitc->done = 1; - if (!_jitc->no_note) - jit_annotate(); - - if (_jit->user_data) - jit_free((jit_pointer_t *)&_jitc->data.ptr); - else { - result = mprotect(_jit->data.ptr, _jit->data.length, PROT_READ); - assert(result == 0); - } - if (!_jit->user_code) { - result = mprotect(_jit->code.ptr, _jit->code.length, - PROT_READ | PROT_EXEC); - assert(result == 0); - } - - return (_jit->code.ptr); -fail: - return (NULL); +static int +is_power_of_two (unsigned x) +{ + return x && !(x & (x-1)); } void -_jit_frame(jit_state_t *_jit, int32_t frame) +jit_align(jit_state_t *_jit, unsigned align) { - jit_trampoline(frame, 1); + ASSERT (is_power_of_two (align)); + uintptr_t here = _jit->pc.w; + uintptr_t there = (here + align - 1) & ~(align - 1); + if (there - here) + jit_nop(_jit, there - here); } void -_jit_tramp(jit_state_t *_jit, int32_t frame) +jit_patch_here(jit_state_t *_jit, jit_reloc_t *reloc) { - jit_trampoline(frame, 0); + jit_patch_there (_jit, reloc, jit_address (_jit)); } void -_jit_trampoline(jit_state_t *_jit, int32_t frame, jit_bool_t prolog) +jit_patch_there(jit_state_t* _jit, jit_reloc_t *reloc, jit_pointer_t *addr) { - int32_t regno; - - /* Must be called after prolog, actually, just to simplify - * tests and know there is a current function and that - * _jitc->function->self.aoff is at the before any alloca value */ - assert(_jitc->tail && _jitc->tail->code == jit_code_prolog); - - /* + 24 for 3 possible spilled temporaries (that could be a double) */ - frame += 24; -#if defined(__hppa__) - frame += _jitc->function->self.aoff; -#else - frame -= _jitc->function->self.aoff; -#endif - _jitc->function->frame = frame; - if (prolog) - _jitc->function->define_frame = 1; - else - _jitc->function->assume_frame = 1; - for (regno = 0; regno < _jitc->reglen; regno++) - if (jit_class(_rvs[regno].spec) & jit_class_sav) - jit_regset_setbit(&_jitc->function->regset, regno); -} - -/* Compute initial reglive and regmask set values of a basic block. - * reglive is the set of known live registers - * regmask is the set of registers not referenced in the block - */ -static void -_jit_setup(jit_state_t *_jit, jit_block_t *block) -{ -#define reglive block->reglive -#define regmask block->regmask - jit_node_t *node; - jit_bool_t live; - jit_bool_t jump; - unsigned long value; - - jump = 0; - jit_regset_set_mask(®mask, _jitc->reglen); - for (node = block->label->next; node; node = node->next) { - switch (node->code) { - case jit_code_label: case jit_code_prolog: - case jit_code_epilog: - return; - default: - value = jit_classify(node->code); - if (value & jit_cc_a0_reg) { - live = !(value & jit_cc_a0_chg); - if (value & jit_cc_a0_rlh) { - if (!(node->u.q.l & jit_regno_patch) && - jit_regset_tstbit(®mask, node->u.q.l)) { - if (live || !jump) - jit_regset_clrbit(®mask, node->u.q.l); - if (live) - jit_regset_setbit(®live, node->u.q.l); - } - if (!(node->u.q.h & jit_regno_patch) && - jit_regset_tstbit(®mask, node->u.q.h)) { - if (live || !jump) - jit_regset_clrbit(®mask, node->u.q.h); - if (live) - jit_regset_setbit(®live, node->u.q.h); - } - } - else { - if (!(node->u.w & jit_regno_patch) && - jit_regset_tstbit(®mask, node->u.w)) { - if (live || !jump) - jit_regset_clrbit(®mask, node->u.w); - if (live) - jit_regset_setbit(®live, node->u.w); - } - } - } - if ((value & jit_cc_a1_reg) && - !(node->v.w & jit_regno_patch) && - jit_regset_tstbit(®mask, node->v.w)) { - live = !(value & jit_cc_a1_chg); - if (live || !jump) - jit_regset_clrbit(®mask, node->v.w); - if (live) - jit_regset_setbit(®live, node->v.w); - } - if ((value & jit_cc_a2_reg) && - !(node->w.w & jit_regno_patch) && - jit_regset_tstbit(®mask, node->w.w)) { - live = !(value & jit_cc_a2_chg); - if (live || !jump) - jit_regset_clrbit(®mask, node->w.w); - if (live) - jit_regset_setbit(®live, node->w.w); - } - if (value & jit_cc_a0_jmp) - jump = 1; - break; - } - } -#undef regmask -#undef reglive -} - -/* Remove bit of mask argument based on instructions arguments up to end - * of code or finding a basic block boundary, if a value is used as argument, - * also set the live bit to know value cannot be clobbered; if value is - * modified, just remove it from the mask as if it not already in the live - * bitmask, then the value is dead. - */ -static void -_jit_update(jit_state_t *_jit, jit_node_t *node, - jit_regset_t *live, jit_regset_t *mask, jit_bool_t recurse) -{ - int32_t spec; - int32_t regno; - jit_regset_t ztmp; - jit_regset_t zmask; - unsigned long value; - jit_block_t *block; - jit_node_t *label; - - for (; node; node = node->next) { - restart: - if (jit_regset_set_p(mask) == 0) - break; - switch (node->code) { - case jit_code_label: - block = _jitc->blocks.ptr + node->v.w; - jit_regset_and(&ztmp, mask, &block->reglive); - if (jit_regset_set_p(&ztmp)) { - jit_regset_ior(live, live, &ztmp); - jit_regset_com(&ztmp, &ztmp); - jit_regset_and(mask, mask, &ztmp); - } - if (bmp_tst(node->v.w)) - return; - bmp_set(node->v.w); - break; - case jit_code_prolog: - jit_regset_set_ui(mask, 0); - return; - case jit_code_epilog: - jit_regset_set_ui(mask, 0); - return; - case jit_code_callr: - value = jit_regno(node->u.w); - if (!(node->u.w & jit_regno_patch)) { - if (jit_regset_tstbit(mask, value)) { - jit_regset_clrbit(mask, value); - jit_regset_setbit(live, value); - } - } - case jit_code_calli: - for (value = 0; value < _jitc->reglen; ++value) { - value = jit_regset_scan1(mask, value); - if (value >= _jitc->reglen) - break; - spec = jit_class(_rvs[value].spec); - if (!(spec & jit_class_sav)) - jit_regset_clrbit(mask, value); - if ((spec & jit_class_arg) && jit_regarg_p(node, value)) - jit_regset_setbit(live, value); - } - break; - default: - value = jit_classify(node->code); - if (value & jit_cc_a2_reg) { - if (!(node->w.w & jit_regno_patch)) { - if (jit_regset_tstbit(mask, node->w.w)) { - jit_regset_clrbit(mask, node->w.w); - if (!(value & jit_cc_a2_chg)) - jit_regset_setbit(live, node->w.w); - } - } - } - if (value & jit_cc_a1_reg) { - if (!(node->v.w & jit_regno_patch)) { - if (jit_regset_tstbit(mask, node->v.w)) { - jit_regset_clrbit(mask, node->v.w); - if (!(value & jit_cc_a1_chg)) - jit_regset_setbit(live, node->v.w); - } - } - } - if (value & jit_cc_a0_reg) { - if (value & jit_cc_a0_rlh) { - if (!(node->u.q.l & jit_regno_patch)) { - if (jit_regset_tstbit(mask, node->u.q.l)) { - jit_regset_clrbit(mask, node->u.q.l); - if (!(value & jit_cc_a0_chg)) - jit_regset_setbit(live, node->u.q.l); - } - } - if (!(node->u.q.h & jit_regno_patch)) { - if (jit_regset_tstbit(mask, node->u.q.h)) { - jit_regset_clrbit(mask, node->u.q.h); - if (!(value & jit_cc_a0_chg)) - jit_regset_setbit(live, node->u.q.h); - } - } - } - else { - if (!(node->u.w & jit_regno_patch)) { - if (jit_regset_tstbit(mask, node->u.w)) { - jit_regset_clrbit(mask, node->u.w); - if (!(value & jit_cc_a0_chg)) - jit_regset_setbit(live, node->u.w); - } - } - } - } - if (value & jit_cc_a0_jmp) { - if (node->flag & jit_flag_node) { - label = node->u.n; - if (node->code == jit_code_jmpi) { - node = label; - goto restart; - } - block = _jitc->blocks.ptr + label->v.w; - jit_regset_and(&ztmp, mask, &block->reglive); - if (jit_regset_set_p(&ztmp)) { - jit_regset_ior(live, live, &ztmp); - jit_regset_com(&ztmp, &ztmp); - jit_regset_and(mask, mask, &ztmp); - } - if (bmp_tst(label->v.w)) - continue; - bmp_set(label->v.w); - if (jit_regset_set_p(mask) == 0) - return; - /* restore mask if branch is conditional */ - if (recurse) { - jit_regset_set(&zmask, mask); - jit_update(block->label->next, live, &zmask, 0); - } - else { - node = block->label->next; - goto restart; - } - jit_regset_xor(&ztmp, &zmask, mask); - /* remove known live registers from mask */ - if (jit_regset_set_p(&ztmp)) { - jit_regset_and(&ztmp, &ztmp, live); - jit_regset_com(&ztmp, &ztmp); - jit_regset_and(mask, mask, &ztmp); - } - continue; - } - /* Should not really mark as live all registers in unknown - * state if using jit_jmpr(), or jit_jmpi(absolute_address) - * because that would leave the register allocator with - * no options for "nospill" temporaries (other temporaries - * also benefit from not needing to spill/reload), so, the - * user must ensure to either spill/reload, or only leave - * live values on registers that are advertised as - * callee save (as per jit_callee_save_p); on most targets - * these are the JIT_Vn registers. */ - for (regno = 0; regno < _jitc->reglen; regno++) { - spec = jit_class(_rvs[regno].spec); - if (jit_regset_tstbit(mask, regno) && - (spec & (jit_class_gpr|jit_class_fpr)) && - !(spec & jit_class_sav)) - jit_regset_clrbit(mask, regno); - } - /* assume value is live due to jump to unknown location */ - jit_regset_ior(live, live, mask); - jit_regset_set_ui(mask, 0); - return; - } - break; - } - } -} - -static void -_thread_jumps(jit_state_t *_jit) -{ - jit_node_t *prev; - jit_node_t *node; - jit_node_t *next; - int32_t mask; - - for (prev = node = _jitc->head; node;) { - next = node->next; - switch (node->code) { - case jit_code_jmpi: - if (redundant_jump(prev, node)) { - node = prev; - continue; - } - if (shortcut_jump(prev, node)) - continue; - break; - case jit_code_jmpr: - case jit_code_callr: case jit_code_calli: - /* non optimizable jump like code */ - break; - default: - mask = jit_classify(node->code); - if (mask & jit_cc_a0_jmp) { - if (reverse_jump(prev, node) || - shortcut_jump(prev, node)) - continue; - } - break; - } - prev = node; - node = next; - } -} - -static void -_sequential_labels(jit_state_t *_jit) -{ - jit_node_t *jump; - jit_node_t *link; - jit_node_t *prev; - jit_node_t *next; - jit_node_t *node; - - for (prev = node = _jitc->head; node; node = next) { - next = node->next; - if (node->code == jit_code_label) { - if (!node->flag) { - if (!node->link) { - del_label(prev, node); - continue; - } - if (prev != node && prev->code == jit_code_label) { - if ((jump = node->link)) { - for (; jump; jump = link) { - link = jump->link; - jump->u.n = prev; - jump->link = prev->link; - prev->link = jump; - } - node->link = NULL; - } - del_label(prev, node); - continue; - } - } - if (next && next->code == jit_code_label && !next->flag) { - if ((jump = next->link)) { - for (; jump; jump = link) { - link = jump->link; - jump->u.n = node; - jump->link = node->link; - node->link = jump; - } - next->link = NULL; - } - del_label(node, next); - next = node->next; - continue; - } - } - prev = node; - } -} - -static jit_bool_t -_shortcut_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) -{ - jit_bool_t cond; - jit_node_t *jump; - jit_node_t *next; - jit_node_t *temp; - - if (!(node->flag & jit_flag_node)) - return (0); - assert(node->code != jit_code_jmpr); - cond = node->code != jit_code_jmpi; - jump = node->u.n; - for (next = jump->next; next; next = next->next) { - switch (next->code) { - case jit_code_jmpi: - if (!(next->flag & jit_flag_node)) - return (0); - if (jump->link == node) - jump->link = node->link; - else { - for (temp = jump->link; - temp->link != node; - temp = temp->link) - assert(temp != NULL); - temp->link = node->link; - } - jump = next->u.n; - node->u.n = jump; - node->link = jump->link; - jump->link = node; - return (1); - case jit_code_jmpr: - if (cond) - return (0); - node->code = jit_code_jmpr; - node->u.w = next->u.w; - node->link = NULL; - node->flag &= ~jit_flag_node; - return (1); - case jit_code_note: case jit_code_label: - break; - default: - return (0); - } - } - return (0); -} - -static jit_bool_t -_redundant_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node) -{ - jit_node_t *local_prev; - jit_node_t *local_next; - - if (!(node->flag & jit_flag_node)) - return (0); - for (local_prev = node, local_next = node->next; - local_next; - local_prev = local_next, local_next = local_next->next) { - - switch (local_next->code) { - case jit_code_label: case jit_code_epilog: - if (node->u.n == local_next) { - if (local_next->link == node) - local_next->link = node->link; - else { - for (local_prev = local_next->link; - local_prev->link != node; - local_prev = local_prev->link) - assert(local_prev != NULL); - local_prev->link = node->link; - } - del_node(prev, node); - return (1); - } - break; - case jit_code_name: case jit_code_note: - case jit_code_align: - break; - default: - return (0); - } - } - return (0); -} - -static jit_code_t -reverse_jump_code(jit_code_t code) -{ - switch (code) { - case jit_code_bltr: return (jit_code_bger); - case jit_code_blti: return (jit_code_bgei); - case jit_code_bltr_u: return (jit_code_bger_u); - case jit_code_blti_u: return (jit_code_bgei_u); - case jit_code_bler: return (jit_code_bgtr); - case jit_code_blei: return (jit_code_bgti); - case jit_code_bler_u: return (jit_code_bgtr_u); - case jit_code_blei_u: return (jit_code_bgti_u); - case jit_code_beqr: return (jit_code_bner); - case jit_code_beqi: return (jit_code_bnei); - case jit_code_bger: return (jit_code_bltr); - case jit_code_bgei: return (jit_code_blti); - case jit_code_bger_u: return (jit_code_bltr_u); - case jit_code_bgei_u: return (jit_code_blti_u); - case jit_code_bgtr: return (jit_code_bler); - case jit_code_bgti: return (jit_code_blei); - case jit_code_bgtr_u: return (jit_code_bler_u); - case jit_code_bgti_u: return (jit_code_blei_u); - case jit_code_bner: return (jit_code_beqr); - case jit_code_bnei: return (jit_code_beqi); - case jit_code_bmsr: return (jit_code_bmcr); - case jit_code_bmsi: return (jit_code_bmci); - case jit_code_bmcr: return (jit_code_bmsr); - case jit_code_bmci: return (jit_code_bmsi); - case jit_code_bltr_f: return (jit_code_bunger_f); - case jit_code_blti_f: return (jit_code_bungei_f); - case jit_code_bler_f: return (jit_code_bungtr_f); - case jit_code_blei_f: return (jit_code_bungti_f); - - case jit_code_beqr_f: return (jit_code_bner_f); - case jit_code_beqi_f: return (jit_code_bnei_f); - - case jit_code_bger_f: return (jit_code_bunltr_f); - case jit_code_bgei_f: return (jit_code_bunlti_f); - case jit_code_bgtr_f: return (jit_code_bunler_f); - case jit_code_bgti_f: return (jit_code_bunlei_f); - - case jit_code_bner_f: return (jit_code_beqr_f); - case jit_code_bnei_f: return (jit_code_beqr_f); - - case jit_code_bunltr_f: return (jit_code_bger_f); - case jit_code_bunlti_f: return (jit_code_bgei_f); - case jit_code_bunler_f: return (jit_code_bgtr_f); - case jit_code_bunlei_f: return (jit_code_bgti_f); - - case jit_code_buneqr_f: return (jit_code_bltgtr_f); - case jit_code_buneqi_f: return (jit_code_bltgti_f); - - case jit_code_bunger_f: return (jit_code_bltr_f); - case jit_code_bungei_f: return (jit_code_blti_f); - case jit_code_bungtr_f: return (jit_code_bler_f); - case jit_code_bungti_f: return (jit_code_blei_f); - - case jit_code_bltgtr_f: return (jit_code_buneqr_f); - case jit_code_bltgti_f: return (jit_code_buneqi_f); - - case jit_code_bordr_f: return (jit_code_bunordr_f); - case jit_code_bordi_f: return (jit_code_bunordi_f); - case jit_code_bunordr_f:return (jit_code_bordr_f); - case jit_code_bunordi_f:return (jit_code_bordi_f); - case jit_code_bltr_d: return (jit_code_bunger_d); - case jit_code_blti_d: return (jit_code_bungei_d); - case jit_code_bler_d: return (jit_code_bungtr_d); - case jit_code_blei_d: return (jit_code_bungti_d); - - case jit_code_beqr_d: return (jit_code_bner_d); - case jit_code_beqi_d: return (jit_code_bnei_d); - - case jit_code_bger_d: return (jit_code_bunltr_d); - case jit_code_bgei_d: return (jit_code_bunlti_d); - case jit_code_bgtr_d: return (jit_code_bunler_d); - case jit_code_bgti_d: return (jit_code_bunlei_d); - - case jit_code_bner_d: return (jit_code_beqr_d); - case jit_code_bnei_d: return (jit_code_beqi_d); - - case jit_code_bunltr_d: return (jit_code_bger_d); - case jit_code_bunlti_d: return (jit_code_bgei_d); - case jit_code_bunler_d: return (jit_code_bgtr_d); - case jit_code_bunlei_d: return (jit_code_bgti_d); - - case jit_code_buneqr_d: return (jit_code_bltgtr_d); - case jit_code_buneqi_d: return (jit_code_bltgti_d); - - case jit_code_bunger_d: return (jit_code_bltr_d); - case jit_code_bungei_d: return (jit_code_blti_d); - case jit_code_bungtr_d: return (jit_code_bler_d); - case jit_code_bungti_d: return (jit_code_blei_d); - - case jit_code_bltgtr_d: return (jit_code_buneqr_d); - case jit_code_bltgti_d: return (jit_code_buneqi_d); - - case jit_code_bordr_d: return (jit_code_bunordr_d); - case jit_code_bordi_d: return (jit_code_bunordi_d); - case jit_code_bunordr_d:return (jit_code_bordr_d); - case jit_code_bunordi_d:return (jit_code_bordi_d); - case jit_code_boaddr: return (jit_code_bxaddr); - case jit_code_boaddi: return (jit_code_bxaddi); - case jit_code_boaddr_u: return (jit_code_bxaddr_u); - case jit_code_boaddi_u: return (jit_code_bxaddi_u); - case jit_code_bxaddr: return (jit_code_boaddr); - case jit_code_bxaddi: return (jit_code_boaddi); - case jit_code_bxaddr_u: return (jit_code_boaddr_u); - case jit_code_bxaddi_u: return (jit_code_boaddi_u); - case jit_code_bosubr: return (jit_code_bxsubr); - case jit_code_bosubi: return (jit_code_bxsubi); - case jit_code_bosubr_u: return (jit_code_bxsubr_u); - case jit_code_bosubi_u: return (jit_code_bxsubi_u); - case jit_code_bxsubr: return (jit_code_bosubr); - case jit_code_bxsubi: return (jit_code_bosubi); - case jit_code_bxsubr_u: return (jit_code_bosubr_u); - case jit_code_bxsubi_u: return (jit_code_bosubi_u); - default: abort(); /* invalid jump code */ - } -} - -/* - * change common pattern: - *