-rw-r--r-- | include/lightning.h.in | 175 | ||||
-rw-r--r-- | lib/jit_aarch64-sz.c | 159 | ||||
-rw-r--r-- | lib/jit_alpha-sz.c | 84 | ||||
-rw-r--r-- | lib/jit_arm-sz.c | 856 | ||||
-rw-r--r-- | lib/jit_hppa-sz.c | 507 | ||||
-rw-r--r-- | lib/jit_ia64-cpu.c | 2 | ||||
-rw-r--r-- | lib/jit_ia64-fpu.c | 28 | ||||
-rw-r--r-- | lib/jit_ia64-sz.c | 100 | ||||
-rw-r--r-- | lib/jit_loongarch-sz.c | 88 | ||||
-rw-r--r-- | lib/jit_mips-sz.c | 116 | ||||
-rw-r--r-- | lib/jit_names.c | 76 | ||||
-rw-r--r-- | lib/jit_ppc-sz.c | 2170 | ||||
-rw-r--r-- | lib/jit_riscv-sz.c | 504 | ||||
-rw-r--r-- | lib/jit_s390-fpu.c | 40 | ||||
-rw-r--r-- | lib/jit_s390-sz.c | 200 | ||||
-rw-r--r-- | lib/jit_sparc-sz.c | 1250 | ||||
-rw-r--r-- | lib/jit_x86-sz.c | 312 |
diff --git a/include/lightning.h.in b/include/lightning.h.in index 3c049ed..a4ef49f 100644 --- a/include/lightning.h.in +++ b/include/lightning.h.in @@ -365,8 +365,11 @@ typedef enum { jit_code_rshr_u, jit_code_rshi_u, #define jit_negr(u,v) jit_new_node_ww(jit_code_negr,u,v) +#define jit_negi(u,v) jit_new_node_ww(jit_code_negi,u,v) + jit_code_negr, jit_code_negi, #define jit_comr(u,v) jit_new_node_ww(jit_code_comr,u,v) - jit_code_negr, jit_code_comr, +#define jit_comi(u,v) jit_new_node_ww(jit_code_comi,u,v) + jit_code_comr, jit_code_comi, #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) @@ -412,25 +415,43 @@ typedef enum { #define jit_casi(u, v, w, x) jit_new_node_wwq(jit_code_casi, u, v, w, x) #define jit_extr_c(u,v) jit_new_node_ww(jit_code_extr_c,u,v) +#define jit_exti_c(u,v) jit_new_node_ww(jit_code_exti_c,u,v) + jit_code_extr_c, jit_code_exti_c, + #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_exti_uc(u,v) jit_new_node_ww(jit_code_exti_uc,u,v) + jit_code_extr_uc, jit_code_exti_uc, + #define jit_extr_s(u,v) jit_new_node_ww(jit_code_extr_s,u,v) +#define jit_exti_s(u,v) jit_new_node_ww(jit_code_exti_s,u,v) + jit_code_extr_s, jit_code_exti_s, + #define jit_extr_us(u,v) jit_new_node_ww(jit_code_extr_us,u,v) - jit_code_extr_s, jit_code_extr_us, +#define jit_exti_us(u,v) jit_new_node_ww(jit_code_exti_us,u,v) + jit_code_extr_us, jit_code_exti_us, + #if __WORDSIZE == 64 # define jit_extr_i(u,v) jit_new_node_ww(jit_code_extr_i,u,v) +# define jit_exti_i(u,v) jit_new_node_ww(jit_code_exti_i,u,v) # define jit_extr_ui(u,v) jit_new_node_ww(jit_code_extr_ui,u,v) +# define jit_exti_ui(u,v) jit_new_node_ww(jit_code_exti_ui,u,v) #endif - jit_code_extr_i, jit_code_extr_ui, + jit_code_extr_i, jit_code_exti_i, + jit_code_extr_ui, jit_code_exti_ui, #define jit_bswapr_us(u,v) jit_new_node_ww(jit_code_bswapr_us,u,v) +#define jit_bswapi_us(u,v) jit_new_node_ww(jit_code_bswapi_us,u,v) + jit_code_bswapr_us, jit_code_bswapi_us, + #define jit_bswapr_ui(u,v) jit_new_node_ww(jit_code_bswapr_ui,u,v) - jit_code_bswapr_us, jit_code_bswapr_ui, +#define jit_bswapi_ui(u,v) jit_new_node_ww(jit_code_bswapi_ui,u,v) + jit_code_bswapr_ui, jit_code_bswapi_ui, #if __WORDSIZE == 64 # define jit_bswapr_ul(u,v) jit_new_node_ww(jit_code_bswapr_ul,u,v) +# define jit_bswapi_ul(u,v) jit_new_node_ww(jit_code_bswapi_ul,u,v) #endif - jit_code_bswapr_ul, + jit_code_bswapr_ul, jit_code_bswapi_ul, #if __WORDSIZE == 32 # define jit_bswapr(u,v) jit_bswapr_ui(u,v) @@ -442,22 +463,33 @@ typedef enum { #define jit_htonr_us(u,v) jit_new_node_ww(jit_code_htonr_us,u,v) #define jit_ntohr_us(u,v) jit_htonr_us(u,v) +#define jit_htoni_us(u,v) jit_new_node_ww(jit_code_htoni_us,u,v) +#define jit_ntohi_us(u,v) jit_htoni_us(u, v) + jit_code_htonr_us, jit_code_htoni_us, + #define jit_htonr_ui(u,v) jit_new_node_ww(jit_code_htonr_ui,u,v) #define jit_ntohr_ui(u,v) jit_htonr_ui(u,v) - jit_code_htonr_us, jit_code_htonr_ui, +#define jit_htoni_ui(u,v) jit_new_node_ww(jit_code_htoni_ui,u,v) +#define jit_ntohi_ui(u,v) jit_htoni_ui(u, v) + jit_code_htonr_ui, jit_code_htoni_ui, #if __WORDSIZE == 64 # define jit_htonr_ul(u,v) jit_new_node_ww(jit_code_htonr_ul,u,v) # define jit_ntohr_ul(u,v) jit_htonr_ul(u,v) +# define jit_htoni_ul(u,v) jit_new_node_ww(jit_code_htoni_ul,u,v) +# define jit_ntohi_ul(u,v) jit_htoni_ul(u, v) #endif - jit_code_htonr_ul, + jit_code_htonr_ul, jit_code_htoni_ul, #if __WORDSIZE == 32 # define jit_htonr(u,v) jit_htonr_ui(u,v) +# define jit_htoni(u,v) jit_htoni_ui(u,v) #else # define jit_htonr(u,v) jit_htonr_ul(u,v) +# define jit_htoni(u,v) jit_htoni_ul(u,v) #endif #define jit_ntohr(u,v) jit_htonr(u,v) +#define jit_ntohi(u,v) jit_htoni(u,v) #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) @@ -756,10 +788,16 @@ typedef enum { #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_negi_f(u,v) _jit_negi_f(_jit,u,v) + jit_code_negr_f, jit_code_negi_f, #define jit_absr_f(u,v) jit_new_node_ww(jit_code_absr_f,u,v) +#define jit_absi_f(u,v) _jit_absi_f(_jit,u,v) + jit_code_absr_f, jit_code_absi_f, #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_sqrti_f(u,v) _jit_sqrti_f(_jit,u,v) + jit_code_sqrtr_f, jit_code_sqrti_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) @@ -910,9 +948,14 @@ typedef enum { 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_negi_d(u,v) _jit_negi_d(_jit,u,v) + jit_code_negr_d, jit_code_negi_d, #define jit_absr_d(u,v) jit_new_node_ww(jit_code_absr_d,u,v) +#define jit_absi_d(u,v) _jit_absi_d(_jit,u,v) + jit_code_absr_d, jit_code_absi_d, #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_sqrti_d(u,v) _jit_sqrti_d(_jit,u,v) + jit_code_sqrtr_d, jit_code_sqrti_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) @@ -1038,36 +1081,54 @@ typedef enum { #define jit_retval_d(u) _jit_retval_d(_jit,u) jit_code_retval_d, - jit_code_movr_w_f, jit_code_movr_ww_d, /* w* -> f|d */ + /* w* -> f|d */ #define jit_movr_w_f(u, v) jit_new_node_ww(jit_code_movr_w_f, u, v) +#define jit_movi_w_f(u,v) jit_new_node_ww(jit_code_movi_w_f, u, v) + jit_code_movr_w_f, jit_code_movi_w_f, #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_movi_ww_d(u,v, w) jit_new_node_www(jit_code_movi_ww_d, u, v, w) + jit_code_movr_ww_d, jit_code_movi_ww_d, + + /* w -> d */ #define jit_movr_w_d(u, v) jit_new_node_ww(jit_code_movr_w_d, u, v) +#define jit_movi_w_d(u,v) jit_new_node_ww(jit_code_movi_w_d, u, v) + jit_code_movr_w_d, jit_code_movi_w_d, - jit_code_movr_f_w, jit_code_movi_f_w, /* f|d -> 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, + jit_code_movr_f_w, jit_code_movi_f_w, #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_ww, jit_code_movi_d_ww, - jit_code_movr_d_w, jit_code_movi_d_w, /* 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_movr_d_w, jit_code_movi_d_w, #define jit_clor(u,v) jit_new_node_ww(jit_code_clor,u,v) +#define jit_cloi(u,v) jit_new_node_ww(jit_code_cloi,u,v) + jit_code_clor, jit_code_cloi, + #define jit_clzr(u,v) jit_new_node_ww(jit_code_clzr,u,v) - jit_code_clor, jit_code_clzr, +#define jit_clzi(u,v) jit_new_node_ww(jit_code_clzi,u,v) + jit_code_clzr, jit_code_clzi, #define jit_ctor(u,v) jit_new_node_ww(jit_code_ctor,u,v) +#define jit_ctoi(u,v) jit_new_node_ww(jit_code_ctoi,u,v) + jit_code_ctor, jit_code_ctoi, #define jit_ctzr(u,v) jit_new_node_ww(jit_code_ctzr,u,v) - jit_code_ctor, jit_code_ctzr, +#define jit_ctzi(u,v) jit_new_node_ww(jit_code_ctzi,u,v) + jit_code_ctzr, jit_code_ctzi, #define jit_rbitr(u,v) jit_new_node_ww(jit_code_rbitr,u,v) - jit_code_rbitr, +#define jit_rbiti(u,v) jit_new_node_ww(jit_code_rbiti,u,v) + jit_code_rbitr, jit_code_rbiti, #define jit_popcntr(u,v) jit_new_node_ww(jit_code_popcntr,u,v) - jit_code_popcntr, +#define jit_popcnti(u,v) jit_new_node_ww(jit_code_popcnti,u,v) + jit_code_popcntr, jit_code_popcnti, #define jit_lrotr(u,v,w) jit_new_node_www(jit_code_lrotr,u,v,w) #define jit_lroti(u,v,w) jit_new_node_www(jit_code_lroti,u,v,w) @@ -1077,77 +1138,15 @@ typedef enum { jit_code_rrotr, jit_code_rroti, #define jit_extr(u,v,w,x) jit_new_node_wwq(jit_code_extr, u, v, w, x) +#define jit_exti(u,v,w,x) jit_new_node_wwq(jit_code_exti, u, v, w, x) + jit_code_extr, jit_code_exti, #define jit_extr_u(u,v,w,x) jit_new_node_wwq(jit_code_extr_u, u, v, w, x) +#define jit_exti_u(u,v,w,x) jit_new_node_wwq(jit_code_exti_u, u, v, w, x) + jit_code_extr_u, jit_code_exti_u, #define jit_depr(u,v,w,x) jit_new_node_wwq(jit_code_depr, u, v, w, x) #define jit_depi(u,v,w,x) jit_new_node_wwq(jit_code_depi, u, v, w, x) - jit_code_extr, jit_code_extr_u, jit_code_depr, jit_code_depi, - /* FIXME Reorder in next release/major bump */ -#define jit_negi(u,v) jit_new_node_ww(jit_code_negi,u,v) -#define jit_comi(u,v) jit_new_node_ww(jit_code_comi,u,v) - jit_code_negi, jit_code_comi, -#define jit_exti_c(u,v) jit_new_node_ww(jit_code_exti_c,u,v) -#define jit_exti_uc(u,v) jit_new_node_ww(jit_code_exti_uc,u,v) - jit_code_exti_c, jit_code_exti_uc, -#define jit_exti_s(u,v) jit_new_node_ww(jit_code_exti_s,u,v) -#define jit_exti_us(u,v) jit_new_node_ww(jit_code_exti_us,u,v) - jit_code_exti_s, jit_code_exti_us, -#if __WORDSIZE == 64 -# define jit_exti_i(u,v) jit_new_node_ww(jit_code_exti_i,u,v) -# define jit_exti_ui(u,v) jit_new_node_ww(jit_code_exti_ui,u,v) -#endif - jit_code_exti_i, jit_code_exti_ui, -#define jit_bswapi_us(u,v) jit_new_node_ww(jit_code_bswapi_us,u,v) -#define jit_bswapi_ui(u,v) jit_new_node_ww(jit_code_bswapi_ui,u,v) - jit_code_bswapi_us, jit_code_bswapi_ui, -#if __WORDSIZE == 64 -# define jit_bswapi_ul(u,v) jit_new_node_ww(jit_code_bswapi_ul,u,v) -#endif - jit_code_bswapi_ul, -#if __WORDSIZE == 32 -# define jit_bswapi(u,v) jit_bswapi_ui(u,v) -#else -# define jit_bswapi(u,v) jit_bswapi_ul(u,v) -#endif -#define jit_htoni_us(u,v) jit_new_node_ww(jit_code_htoni_us,u,v) -#define jit_ntohi_us(u,v) jit_htoni_us(u, v) -#define jit_htoni_ui(u,v) jit_new_node_ww(jit_code_htoni_ui,u,v) -#define jit_ntohi_ui(u,v) jit_htoni_ui(u, v) - jit_code_htoni_us, jit_code_htoni_ui, -#if __WORDSIZE == 64 -# define jit_htoni_ul(u,v) jit_new_node_ww(jit_code_htoni_ul,u,v) -# define jit_ntohi_ul(u,v) jit_htoni_ul(u, v) -#endif - jit_code_htoni_ul, -#if __WORDSIZE == 32 -# define jit_htoni(u,v) jit_htoni_ui(u,v) -#else -# define jit_htoni(u,v) jit_htoni_ul(u,v) -#endif -#define jit_ntohi(u,v) jit_htoni(u,v) -#define jit_negi_f(u,v) _jit_negi_f(_jit,u,v) -#define jit_absi_f(u,v) _jit_absi_f(_jit,u,v) -#define jit_sqrti_f(u,v) _jit_sqrti_f(_jit,u,v) - jit_code_negi_f, jit_code_absi_f, jit_code_sqrti_f, -#define jit_negi_d(u,v) _jit_negi_d(_jit,u,v) -#define jit_absi_d(u,v) _jit_absi_d(_jit,u,v) -#define jit_sqrti_d(u,v) _jit_sqrti_d(_jit,u,v) - jit_code_negi_d, jit_code_absi_d, jit_code_sqrti_d, -#define jit_cloi(u,v) jit_new_node_ww(jit_code_cloi,u,v) -#define jit_clzi(u,v) jit_new_node_ww(jit_code_clzi,u,v) - jit_code_cloi, jit_code_clzi, -#define jit_ctoi(u,v) jit_new_node_ww(jit_code_ctoi,u,v) -#define jit_ctzi(u,v) jit_new_node_ww(jit_code_ctzi,u,v) - jit_code_ctoi, jit_code_ctzi, -#define jit_rbiti(u,v) jit_new_node_ww(jit_code_rbiti,u,v) - jit_code_rbiti, -#define jit_popcnti(u,v) jit_new_node_ww(jit_code_popcnti,u,v) - jit_code_popcnti, -#define jit_exti(u,v,w,x) jit_new_node_wwq(jit_code_exti, u, v, w, x) -#define jit_exti_u(u,v,w,x) jit_new_node_wwq(jit_code_exti_u, u, v, w, x) - jit_code_exti, jit_code_exti_u, - #define jit_qlshr(l,h,v,w) jit_new_node_qww(jit_code_qlshr,l,h,v,w) #define jit_qlshi(l,h,v,w) jit_new_node_qww(jit_code_qlshi,l,h,v,w) jit_code_qlshr, jit_code_qlshi, @@ -1178,12 +1177,6 @@ typedef enum { #define jit_unsti_x(u,v,w) jit_new_node_www(jit_code_unsti_x, u, v, w) jit_code_unstr_x, jit_code_unsti_x, -#define jit_movi_w_f(u,v) jit_new_node_ww(jit_code_movi_w_f, u, v) -#define jit_movi_w_d(u,v) jit_new_node_ww(jit_code_movi_w_d, u, v) -#define jit_movi_ww_d(u,v, w) jit_new_node_www(jit_code_movi_ww_d, u, v, w) - jit_code_movi_w_f, - jit_code_movi_w_d, jit_code_movi_ww_d, - #define jit_fmar_f(u,v,w,x) jit_new_node_wqw(jit_code_fmar_f, u, v, w, x) #define jit_fmai_f(u,v,w,x) _jit_fmai_f(_jit, u, v, w, x) jit_code_fmar_f, jit_code_fmai_f, diff --git a/lib/jit_aarch64-sz.c b/lib/jit_aarch64-sz.c index 937eacd..0a7bc2d 100644 --- a/lib/jit_aarch64-sz.c +++ b/lib/jit_aarch64-sz.c @@ -89,7 +89,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 8, /* ltr */ 8, /* lti */ 8, /* ltr_u */ @@ -115,19 +117,31 @@ 8, /* movnr */ 8, /* movzr */ 28, /* casr */ - 40, /* casi */ + 36, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 4, /* exti_us */ 4, /* extr_i */ + 12, /* exti_i */ 4, /* extr_ui */ + 4, /* exti_ui */ 8, /* bswapr_us */ + 4, /* bswapi_us */ 8, /* bswapr_ui */ + 8, /* bswapi_ui */ 4, /* bswapr_ul */ + 16, /* bswapi_ul */ 8, /* htonr_us */ + 4, /* htoni_us */ 8, /* htonr_ui */ + 8, /* htoni_ui */ 4, /* htonr_ul */ + 16, /* htoni_ul */ 4, /* ldr_c */ 16, /* ldi_c */ 4, /* ldr_uc */ @@ -270,8 +284,11 @@ 4, /* divr_f */ 12, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 8, /* ltr_f */ 16, /* lti_f */ 8, /* ler_f */ @@ -361,8 +378,11 @@ 4, /* divr_d */ 12, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 8, /* ltr_d */ 16, /* lti_d */ 8, /* ler_d */ @@ -439,8 +459,11 @@ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ + 8, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 4, /* movr_w_d */ + 8, /* movi_w_d */ 4, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ @@ -448,47 +471,27 @@ 4, /* movr_d_w */ 4, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 12, /* ctor */ + 4, /* ctoi */ 8, /* ctzr */ + 4, /* ctzi */ 4, /* rbitr */ + 16, /* rbiti */ 16, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ 4, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 4, /* exti_us */ - 12, /* exti_i */ - 4, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 16, /* bswapi_ul */ - 4, /* htoni_us */ - 8, /* htoni_ui */ - 16, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 16, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 56, /* qlshr */ 8, /* qlshi */ 52, /* qlshr_u */ @@ -507,10 +510,22 @@ 20, /* unldi_x */ 8, /* unstr_x */ 20, /* unsti_x */ - 8, /* movi_w_f */ - 8, /* movi_w_d */ - 0, /* movi_ww_d */ - + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ # else /* PACKED_STACK */ #define JIT_INSTR_MAX 120 0, /* data */ @@ -600,7 +615,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 8, /* ltr */ 8, /* lti */ 8, /* ltr_u */ @@ -628,17 +645,29 @@ 28, /* casr */ 40, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 4, /* exti_us */ 4, /* extr_i */ + 12, /* exti_i */ 4, /* extr_ui */ + 4, /* exti_ui */ 8, /* bswapr_us */ + 4, /* bswapi_us */ 8, /* bswapr_ui */ + 8, /* bswapi_ui */ 4, /* bswapr_ul */ + 16, /* bswapi_ul */ 8, /* htonr_us */ + 4, /* htoni_us */ 8, /* htonr_ui */ + 8, /* htoni_ui */ 4, /* htonr_ul */ + 16, /* htoni_ul */ 4, /* ldr_c */ 16, /* ldi_c */ 4, /* ldr_uc */ @@ -781,8 +810,11 @@ 4, /* divr_f */ 12, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 8, /* ltr_f */ 16, /* lti_f */ 8, /* ler_f */ @@ -872,8 +904,11 @@ 4, /* divr_d */ 12, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 8, /* ltr_d */ 16, /* lti_d */ 8, /* ler_d */ @@ -950,8 +985,11 @@ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ + 8, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 4, /* movr_w_d */ + 8, /* movi_w_d */ 4, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ @@ -959,47 +997,27 @@ 4, /* movr_d_w */ 4, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 12, /* ctor */ + 4, /* ctoi */ 8, /* ctzr */ + 4, /* ctzi */ 4, /* rbitr */ + 16, /* rbiti */ 16, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ 4, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 4, /* exti_us */ - 12, /* exti_i */ - 4, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 16, /* bswapi_ul */ - 4, /* htoni_us */ - 8, /* htoni_ui */ - 16, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 16, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 56, /* qlshr */ 8, /* qlshi */ 52, /* qlshr_u */ @@ -1018,8 +1036,21 @@ 20, /* unldi_x */ 8, /* unstr_x */ 20, /* unsti_x */ - 8, /* movi_w_f */ - 8, /* movi_w_d */ - 0, /* movi_ww_d */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ # endif #endif /* __WORDSIZE */ diff --git a/lib/jit_alpha-sz.c b/lib/jit_alpha-sz.c index 44fccd7..4807384 100644 --- a/lib/jit_alpha-sz.c +++ b/lib/jit_alpha-sz.c @@ -1,5 +1,5 @@ #if __WORDSIZE == 64 -#define JIT_INSTR_MAX 140 +#define JIT_INSTR_MAX 204 0, /* data */ 0, /* live */ 4, /* align */ @@ -87,7 +87,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 4, /* ltr */ 4, /* lti */ 4, /* ltr_u */ @@ -115,17 +117,29 @@ 32, /* casr */ 60, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 16, /* exti_us */ 8, /* extr_i */ + 28, /* exti_i */ 4, /* extr_ui */ + 16, /* exti_ui */ 16, /* bswapr_us */ + 4, /* bswapi_us */ 36, /* bswapr_ui */ + 16, /* bswapi_ui */ 36, /* bswapr_ul */ + 32, /* bswapi_ul */ 16, /* htonr_us */ + 16, /* htoni_us */ 36, /* htonr_ui */ + 16, /* htoni_ui */ 36, /* htonr_ul */ + 32, /* htoni_ul */ 8, /* ldr_c */ 36, /* ldi_c */ 4, /* ldr_uc */ @@ -268,8 +282,11 @@ 8, /* divr_f */ 40, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 8, /* sqrtr_f */ + 0, /* sqrti_f */ 32, /* ltr_f */ 64, /* lti_f */ 32, /* ler_f */ @@ -359,8 +376,11 @@ 8, /* divr_d */ 40, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 8, /* sqrtr_d */ + 0, /* sqrti_d */ 32, /* ltr_d */ 64, /* lti_d */ 32, /* ler_d */ @@ -437,8 +457,11 @@ 0, /* reti_d */ 0, /* retval_d */ 8, /* movr_w_f */ + 24, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 8, /* movr_w_d */ + 20, /* movi_w_d */ 8, /* movr_f_w */ 16, /* movi_f_w */ 0, /* movr_d_ww */ @@ -446,47 +469,27 @@ 8, /* movr_d_w */ 12, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 8, /* ctor */ + 4, /* ctoi */ 4, /* ctzr */ + 4, /* ctzi */ 84, /* rbitr */ + 32, /* rbiti */ 4, /* popcntr */ + 4, /* popcnti */ 20, /* lrotr */ 12, /* lroti */ 20, /* rrotr */ 12, /* rroti */ 8, /* extr */ + 4, /* exti */ 36, /* extr_u */ + 4, /* exti_u */ 72, /* depr */ 24, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 16, /* exti_us */ - 28, /* exti_i */ - 16, /* exti_ui */ - 4, /* bswapi_us */ - 16, /* bswapi_ui */ - 32, /* bswapi_ul */ - 16, /* htoni_us */ - 16, /* htoni_ui */ - 32, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 32, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 44, /* qlshr */ 8, /* qlshi */ 40, /* qlshr_u */ @@ -499,13 +502,26 @@ 60, /* unldi */ 36, /* unldr_u */ 60, /* unldi_u */ - 120, /* unstr */ - 140, /* unsti */ + 176, /* unstr */ + 204, /* unsti */ 40, /* unldr_x */ 68, /* unldi_x */ 52, /* unstr_x */ 80, /* unsti_x */ - 24, /* movi_w_f */ - 20, /* movi_w_d */ - 0, /* movi_ww_d */ + 16, /* fmar_f */ + 0, /* fmai_f */ + 16, /* fmsr_f */ + 0, /* fmsi_f */ + 16, /* fmar_d */ + 0, /* fmai_d */ + 16, /* fmsr_d */ + 0, /* fmsi_d */ + 20, /* fnmar_f */ + 0, /* fnmai_f */ + 20, /* fnmsr_f */ + 0, /* fnmsi_f */ + 20, /* fnmar_d */ + 0, /* fnmai_d */ + 20, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_arm-sz.c b/lib/jit_arm-sz.c index c764d5e..c60f952 100644 --- a/lib/jit_arm-sz.c +++ b/lib/jit_arm-sz.c @@ -1,7 +1,7 @@ #if __WORDSIZE == 32 #if !defined(__ARM_PCS_VFP) -#define JIT_INSTR_MAX 208 +#define JIT_INSTR_MAX 144 0, /* data */ 0, /* live */ 20, /* align */ @@ -11,7 +11,7 @@ 2, /* #name */ 0, /* #note */ 0, /* label */ - 30, /* prolog */ + 26, /* prolog */ 0, /* ellipsis */ 0, /* va_push */ 0, /* allocai */ @@ -43,7 +43,7 @@ 0, /* putargi_l */ 4, /* va_start */ 8, /* va_arg */ - 28, /* va_arg_d */ + 16, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ 12, /* addi */ @@ -58,7 +58,7 @@ 4, /* subxr */ 4, /* subxi */ 16, /* rsbi */ - 8, /* mulr */ + 4, /* mulr */ 12, /* muli */ 4, /* qmulr */ 12, /* qmuli */ @@ -89,7 +89,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 14, /* ltr */ 14, /* lti */ 14, /* ltr_u */ @@ -115,19 +117,31 @@ 8, /* movnr */ 8, /* movzr */ 42, /* casr */ - 46, /* casi */ - 8, /* extr_c */ + 50, /* casi */ + 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ - 8, /* extr_s */ - 8, /* extr_us */ + 4, /* exti_uc */ + 4, /* extr_s */ + 4, /* exti_s */ + 4, /* extr_us */ + 4, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ - 20, /* bswapr_us */ - 16, /* bswapr_ui */ + 0, /* exti_ui */ + 8, /* bswapr_us */ + 4, /* bswapi_us */ + 4, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ - 20, /* htonr_us */ - 16, /* htonr_ui */ + 0, /* bswapi_ul */ + 8, /* htonr_us */ + 4, /* htoni_us */ + 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 4, /* ldr_c */ 12, /* ldi_c */ 4, /* ldr_uc */ @@ -212,8 +226,8 @@ 8, /* bxsubi */ 8, /* bxsubr_u */ 8, /* bxsubi_u */ - 12, /* jmpr */ - 72, /* jmpi */ + 4, /* jmpr */ + 8, /* jmpi */ 4, /* callr */ 20, /* calli */ 0, /* prepare */ @@ -255,93 +269,96 @@ 0, /* retval_i */ 0, /* retval_ui */ 0, /* retval_l */ - 20, /* epilog */ + 16, /* epilog */ 0, /* arg_f */ 0, /* getarg_f */ 0, /* putargr_f */ 0, /* putargi_f */ - 24, /* addr_f */ - 24, /* addi_f */ - 24, /* subr_f */ - 24, /* subi_f */ - 24, /* rsbi_f */ - 24, /* mulr_f */ - 24, /* muli_f */ - 24, /* divr_f */ - 24, /* divi_f */ - 12, /* negr_f */ - 12, /* absr_f */ - 20, /* sqrtr_f */ - 24, /* ltr_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 */ + 0, /* negi_f */ + 4, /* absr_f */ + 0, /* absi_f */ + 4, /* sqrtr_f */ + 0, /* sqrti_f */ + 18, /* ltr_f */ 30, /* lti_f */ - 24, /* ler_f */ + 20, /* ler_f */ 32, /* lei_f */ - 24, /* eqr_f */ + 18, /* eqr_f */ 30, /* eqi_f */ - 24, /* ger_f */ + 18, /* ger_f */ 30, /* gei_f */ - 24, /* gtr_f */ + 18, /* gtr_f */ 30, /* gti_f */ - 28, /* ner_f */ - 32, /* nei_f */ - 56, /* unltr_f */ - 64, /* unlti_f */ - 56, /* unler_f */ - 64, /* unlei_f */ - 56, /* uneqr_f */ - 64, /* uneqi_f */ - 56, /* unger_f */ - 64, /* ungei_f */ - 56, /* ungtr_f */ - 64, /* ungti_f */ - 60, /* ltgtr_f */ - 68, /* ltgti_f */ - 28, /* ordr_f */ - 32, /* ordi_f */ - 56, /* unordr_f */ - 64, /* unordi_f */ - 20, /* truncr_f_i */ + 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 */ - 28, /* extr_f */ - 22, /* extr_d_f */ - 8, /* movr_f */ - 16, /* movi_f */ - 8, /* ldr_f */ - 16, /* ldi_f */ + 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 */ - 8, /* str_f */ - 16, /* sti_f */ + 4, /* str_f */ + 12, /* sti_f */ 8, /* stxr_f */ 16, /* stxi_f */ - 28, /* bltr_f */ - 32, /* blti_f */ - 28, /* bler_f */ - 32, /* blei_f */ - 28, /* beqr_f */ - 48, /* beqi_f */ - 28, /* bger_f */ - 32, /* bgei_f */ - 28, /* bgtr_f */ - 32, /* bgti_f */ - 28, /* bner_f */ - 32, /* bnei_f */ - 28, /* bunltr_f */ - 32, /* bunlti_f */ - 28, /* bunler_f */ - 32, /* bunlei_f */ - 60, /* buneqr_f */ - 68, /* buneqi_f */ - 28, /* bunger_f */ - 32, /* bungei_f */ - 28, /* bungtr_f */ - 32, /* bungti_f */ - 60, /* bltgtr_f */ - 68, /* bltgti_f */ - 28, /* bordr_f */ - 32, /* bordi_f */ - 28, /* bunordr_f */ - 32, /* bunordi_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 */ @@ -351,144 +368,130 @@ 0, /* getarg_d */ 0, /* putargr_d */ 0, /* putargi_d */ - 34, /* addr_d */ - 36, /* addi_d */ - 34, /* subr_d */ - 36, /* subi_d */ - 36, /* rsbi_d */ - 34, /* mulr_d */ - 36, /* muli_d */ - 34, /* divr_d */ - 36, /* divi_d */ - 20, /* negr_d */ - 20, /* absr_d */ - 26, /* sqrtr_d */ - 28, /* ltr_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 */ + 0, /* negi_d */ + 4, /* absr_d */ + 0, /* absi_d */ + 4, /* sqrtr_d */ + 0, /* sqrti_d */ + 18, /* ltr_d */ 34, /* lti_d */ - 28, /* ler_d */ + 20, /* ler_d */ 36, /* lei_d */ - 28, /* eqr_d */ + 18, /* eqr_d */ 34, /* eqi_d */ - 28, /* ger_d */ + 18, /* ger_d */ 34, /* gei_d */ - 28, /* gtr_d */ + 18, /* gtr_d */ 34, /* gti_d */ - 32, /* ner_d */ - 36, /* nei_d */ - 66, /* unltr_d */ - 72, /* unlti_d */ - 66, /* unler_d */ - 72, /* unlei_d */ - 66, /* uneqr_d */ - 72, /* uneqi_d */ - 66, /* unger_d */ - 72, /* ungei_d */ - 66, /* ungtr_d */ - 72, /* ungti_d */ - 70, /* ltgtr_d */ - 76, /* ltgti_d */ - 32, /* ordr_d */ - 36, /* ordi_d */ - 66, /* unordr_d */ - 72, /* unordi_d */ - 20, /* truncr_d_i */ + 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 */ - 36, /* extr_d */ - 22, /* extr_f_d */ - 16, /* movr_d */ + 8, /* extr_d */ + 4, /* extr_f_d */ + 4, /* movr_d */ 32, /* 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 */ - 32, /* bltr_d */ - 36, /* blti_d */ - 32, /* bler_d */ - 36, /* blei_d */ - 32, /* beqr_d */ - 52, /* beqi_d */ - 32, /* bger_d */ - 36, /* bgei_d */ - 32, /* bgtr_d */ - 36, /* bgti_d */ - 32, /* bner_d */ - 36, /* bnei_d */ - 32, /* bunltr_d */ - 36, /* bunlti_d */ - 32, /* bunler_d */ - 36, /* bunlei_d */ - 68, /* buneqr_d */ - 76, /* buneqi_d */ - 32, /* bunger_d */ - 36, /* bungei_d */ - 32, /* bungtr_d */ - 36, /* bungti_d */ - 68, /* bltgtr_d */ - 76, /* bltgti_d */ - 32, /* bordr_d */ - 36, /* bordi_d */ - 32, /* bunordr_d */ - 36, /* bunordi_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 */ + 36, /* 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 */ 4, /* movr_w_f */ - 8, /* movr_ww_d */ + 8, /* movi_w_f */ + 4, /* movr_ww_d */ + 16, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 4, /* movr_f_w */ - 8, /* movi_f_w */ - 8, /* movr_d_ww */ + 4, /* movi_f_w */ + 4, /* movr_d_ww */ 12, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 12, /* ctor */ + 4, /* ctoi */ 8, /* ctzr */ + 4, /* ctzi */ 4, /* rbitr */ + 8, /* rbiti */ 40, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ - 8, /* extr */ - 12, /* extr_u */ - 24, /* depr */ - 20, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 4, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 4, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 8, /* rbiti */ - 4, /* popcnti */ + 4, /* extr */ 4, /* exti */ + 4, /* extr_u */ 4, /* exti_u */ + 4, /* depr */ + 8, /* depi */ 50, /* qlshr */ 8, /* qlshi */ 50, /* qlshr_u */ @@ -497,25 +500,38 @@ 8, /* qrshi */ 50, /* qrshr_u */ 8, /* qrshi_u */ - 100, /* unldr */ - 32, /* unldi */ - 100, /* unldr_u */ - 32, /* unldi_u */ + 72, /* unldr */ + 44, /* unldi */ + 72, /* unldr_u */ + 44, /* unldi_u */ 68, /* unstr */ 44, /* unsti */ - 208, /* unldr_x */ - 80, /* unldi_x */ - 148, /* unstr_x */ - 96, /* unsti_x */ - 8, /* movi_w_f */ - 0, /* movi_w_d */ - 20, /* movi_ww_d */ + 140, /* unldr_x */ + 76, /* unldi_x */ + 144, /* unstr_x */ + 92, /* unsti_x */ + 8, /* fmar_f */ + 0, /* fmai_f */ + 8, /* fmsr_f */ + 0, /* fmsi_f */ + 8, /* fmar_d */ + 0, /* fmai_d */ + 8, /* fmsr_d */ + 0, /* fmsi_d */ + 12, /* fnmar_f */ + 0, /* fnmai_f */ + 12, /* fnmsr_f */ + 0, /* fnmsi_f */ + 12, /* fnmar_d */ + 0, /* fnmai_d */ + 12, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __ARM_PCS_VFP */ #endif /* __WORDSIZE */ #if __WORDSIZE == 32 #if defined(__ARM_PCS_VFP) -#define JIT_INSTR_MAX 204 +#define JIT_INSTR_MAX 276 0, /* data */ 0, /* live */ 20, /* align */ @@ -525,7 +541,7 @@ 2, /* #name */ 0, /* #note */ 0, /* label */ - 26, /* prolog */ + 30, /* prolog */ 0, /* ellipsis */ 0, /* va_push */ 0, /* allocai */ @@ -557,7 +573,7 @@ 0, /* putargi_l */ 4, /* va_start */ 8, /* va_arg */ - 16, /* va_arg_d */ + 28, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ 12, /* addi */ @@ -572,7 +588,7 @@ 4, /* subxr */ 4, /* subxi */ 16, /* rsbi */ - 4, /* mulr */ + 8, /* mulr */ 12, /* muli */ 4, /* qmulr */ 12, /* qmuli */ @@ -603,7 +619,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 14, /* ltr */ 14, /* lti */ 14, /* ltr_u */ @@ -629,19 +647,31 @@ 8, /* movnr */ 8, /* movzr */ 42, /* casr */ - 50, /* casi */ - 4, /* extr_c */ + 46, /* casi */ + 8, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ - 4, /* extr_s */ - 4, /* extr_us */ + 4, /* exti_uc */ + 8, /* extr_s */ + 4, /* exti_s */ + 8, /* extr_us */ + 4, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ - 8, /* bswapr_us */ - 4, /* bswapr_ui */ + 0, /* exti_ui */ + 20, /* bswapr_us */ + 4, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ - 8, /* htonr_us */ - 4, /* htonr_ui */ + 0, /* bswapi_ul */ + 20, /* htonr_us */ + 4, /* htoni_us */ + 16, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 4, /* ldr_c */ 12, /* ldi_c */ 4, /* ldr_uc */ @@ -726,8 +756,8 @@ 8, /* bxsubi */ 8, /* bxsubr_u */ 8, /* bxsubi_u */ - 4, /* jmpr */ - 8, /* jmpi */ + 12, /* jmpr */ + 72, /* jmpi */ 4, /* callr */ 20, /* calli */ 0, /* prepare */ @@ -769,93 +799,96 @@ 0, /* retval_i */ 0, /* retval_ui */ 0, /* retval_l */ - 16, /* epilog */ + 276, /* 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 */ + 24, /* addr_f */ + 24, /* addi_f */ + 24, /* subr_f */ + 24, /* subi_f */ + 24, /* rsbi_f */ + 24, /* mulr_f */ + 24, /* muli_f */ + 24, /* divr_f */ + 24, /* divi_f */ + 12, /* negr_f */ + 0, /* negi_f */ + 12, /* absr_f */ + 0, /* absi_f */ + 20, /* sqrtr_f */ + 0, /* sqrti_f */ + 24, /* ltr_f */ 30, /* lti_f */ - 20, /* ler_f */ + 24, /* ler_f */ 32, /* lei_f */ - 18, /* eqr_f */ + 24, /* eqr_f */ 30, /* eqi_f */ - 18, /* ger_f */ + 24, /* ger_f */ 30, /* gei_f */ - 18, /* gtr_f */ + 24, /* 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 */ + 28, /* ner_f */ + 32, /* nei_f */ + 56, /* unltr_f */ + 64, /* unlti_f */ + 56, /* unler_f */ + 64, /* unlei_f */ + 56, /* uneqr_f */ + 64, /* uneqi_f */ + 56, /* unger_f */ + 64, /* ungei_f */ + 56, /* ungtr_f */ + 64, /* ungti_f */ + 60, /* ltgtr_f */ + 68, /* ltgti_f */ + 28, /* ordr_f */ + 32, /* ordi_f */ + 56, /* unordr_f */ + 64, /* unordi_f */ + 20, /* 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 */ + 28, /* extr_f */ + 22, /* extr_d_f */ + 8, /* movr_f */ + 16, /* movi_f */ + 8, /* ldr_f */ + 16, /* ldi_f */ 8, /* ldxr_f */ 16, /* ldxi_f */ - 4, /* str_f */ - 12, /* sti_f */ + 8, /* str_f */ + 16, /* 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 */ + 28, /* bltr_f */ + 32, /* blti_f */ + 28, /* bler_f */ + 32, /* blei_f */ + 28, /* beqr_f */ + 48, /* beqi_f */ + 28, /* bger_f */ + 32, /* bgei_f */ + 28, /* bgtr_f */ + 32, /* bgti_f */ + 28, /* bner_f */ + 32, /* bnei_f */ + 28, /* bunltr_f */ + 32, /* bunlti_f */ + 28, /* bunler_f */ + 32, /* bunlei_f */ + 60, /* buneqr_f */ + 68, /* buneqi_f */ + 28, /* bunger_f */ + 32, /* bungei_f */ + 28, /* bungtr_f */ + 32, /* bungti_f */ + 60, /* bltgtr_f */ + 68, /* bltgti_f */ + 28, /* bordr_f */ + 32, /* bordi_f */ + 28, /* bunordr_f */ + 32, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -865,144 +898,130 @@ 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, /* addr_d */ + 36, /* addi_d */ + 34, /* subr_d */ + 36, /* subi_d */ + 36, /* rsbi_d */ + 34, /* mulr_d */ + 36, /* muli_d */ + 34, /* divr_d */ + 36, /* divi_d */ + 20, /* negr_d */ + 0, /* negi_d */ + 20, /* absr_d */ + 0, /* absi_d */ + 26, /* sqrtr_d */ + 0, /* sqrti_d */ + 28, /* ltr_d */ 34, /* lti_d */ - 20, /* ler_d */ + 28, /* ler_d */ 36, /* lei_d */ - 18, /* eqr_d */ + 28, /* eqr_d */ 34, /* eqi_d */ - 18, /* ger_d */ + 28, /* ger_d */ 34, /* gei_d */ - 18, /* gtr_d */ + 28, /* 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 */ + 32, /* ner_d */ + 36, /* nei_d */ + 66, /* unltr_d */ + 72, /* unlti_d */ + 66, /* unler_d */ + 72, /* unlei_d */ + 66, /* uneqr_d */ + 72, /* uneqi_d */ + 66, /* unger_d */ + 72, /* ungei_d */ + 66, /* ungtr_d */ + 72, /* ungti_d */ + 70, /* ltgtr_d */ + 76, /* ltgti_d */ + 32, /* ordr_d */ + 36, /* ordi_d */ + 66, /* unordr_d */ + 72, /* unordi_d */ + 20, /* truncr_d_i */ 0, /* truncr_d_l */ - 8, /* extr_d */ - 4, /* extr_f_d */ - 4, /* movr_d */ + 36, /* extr_d */ + 22, /* extr_f_d */ + 16, /* movr_d */ 32, /* 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 */ - 36, /* 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 */ + 16, /* ldr_d */ + 24, /* ldi_d */ + 20, /* ldxr_d */ + 28, /* ldxi_d */ + 16, /* str_d */ + 24, /* sti_d */ + 20, /* stxr_d */ + 28, /* stxi_d */ + 32, /* bltr_d */ + 36, /* blti_d */ + 32, /* bler_d */ + 36, /* blei_d */ + 32, /* beqr_d */ + 52, /* beqi_d */ + 32, /* bger_d */ + 36, /* bgei_d */ + 32, /* bgtr_d */ + 36, /* bgti_d */ + 32, /* bner_d */ + 36, /* bnei_d */ + 32, /* bunltr_d */ + 36, /* bunlti_d */ + 32, /* bunler_d */ + 36, /* bunlei_d */ + 68, /* buneqr_d */ + 76, /* buneqi_d */ + 32, /* bunger_d */ + 36, /* bungei_d */ + 32, /* bungtr_d */ + 36, /* bungti_d */ + 68, /* bltgtr_d */ + 76, /* bltgti_d */ + 32, /* bordr_d */ + 36, /* bordi_d */ + 32, /* bunordr_d */ + 36, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ - 4, /* movr_ww_d */ + 8, /* movi_w_f */ + 8, /* movr_ww_d */ + 20, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 4, /* movr_f_w */ - 4, /* movi_f_w */ - 4, /* movr_d_ww */ + 8, /* movi_f_w */ + 8, /* movr_d_ww */ 12, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 12, /* ctor */ + 4, /* ctoi */ 8, /* ctzr */ + 4, /* ctzi */ 4, /* rbitr */ + 8, /* rbiti */ 40, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ - 4, /* extr */ - 4, /* extr_u */ - 4, /* depr */ - 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 4, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 4, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 8, /* rbiti */ - 4, /* popcnti */ + 8, /* extr */ 4, /* exti */ + 12, /* extr_u */ 4, /* exti_u */ + 24, /* depr */ + 20, /* depi */ 50, /* qlshr */ 8, /* qlshi */ 50, /* qlshr_u */ @@ -1011,18 +1030,31 @@ 8, /* qrshi */ 50, /* qrshr_u */ 8, /* qrshi_u */ - 100, /* unldr */ - 36, /* unldi */ - 100, /* unldr_u */ - 36, /* unldi_u */ + 72, /* unldr */ + 44, /* unldi */ + 72, /* unldr_u */ + 44, /* unldi_u */ 68, /* unstr */ 44, /* unsti */ - 204, /* unldr_x */ - 76, /* unldi_x */ - 144, /* unstr_x */ - 92, /* unsti_x */ - 8, /* movi_w_f */ - 0, /* movi_w_d */ - 16, /* movi_ww_d */ + 144, /* unldr_x */ + 80, /* unldi_x */ + 148, /* unstr_x */ + 96, /* unsti_x */ + 48, /* fmar_f */ + 0, /* fmai_f */ + 48, /* fmsr_f */ + 0, /* fmsi_f */ + 68, /* fmar_d */ + 0, /* fmai_d */ + 68, /* fmsr_d */ + 0, /* fmsi_d */ + 60, /* fnmar_f */ + 0, /* fnmai_f */ + 60, /* fnmsr_f */ + 0, /* fnmsi_f */ + 88, /* fnmar_d */ + 0, /* fnmai_d */ + 88, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __ARM_PCS_VFP */ #endif /* __WORDSIZE */ diff --git a/lib/jit_hppa-sz.c b/lib/jit_hppa-sz.c index ef3310a..c460264 100644 --- a/lib/jit_hppa-sz.c +++ b/lib/jit_hppa-sz.c @@ -1,9 +1,8 @@ - #if __WORDSIZE == 32 #define JIT_INSTR_MAX 196 0, /* data */ 0, /* live */ - 16, /* align */ + 16, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ @@ -42,53 +41,55 @@ 0, /* putargi_l */ 4, /* va_start */ 8, /* va_arg */ - 20, /* va_arg_d */ + 20, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 12, /* addi */ + 12, /* addi */ 4, /* addcr */ - 12, /* addci */ + 12, /* addci */ 4, /* addxr */ 8, /* addxi */ 4, /* subr */ - 12, /* subi */ + 12, /* subi */ 4, /* subcr */ - 12, /* subci */ + 12, /* subci */ 4, /* subxr */ 8, /* subxi */ - 12, /* rsbi */ - 48, /* mulr */ - 56, /* muli */ - 40, /* qmulr */ - 44, /* qmuli */ - 52, /* qmulr_u */ - 60, /* 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 */ + 12, /* rsbi */ + 48, /* mulr */ + 56, /* muli */ + 40, /* qmulr */ + 44, /* qmuli */ + 52, /* qmulr_u */ + 60, /* 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 */ + 12, /* andi */ 4, /* orr */ - 12, /* ori */ + 12, /* ori */ 4, /* xorr */ - 12, /* xori */ - 12, /* lshr */ + 12, /* xori */ + 12, /* lshr */ 4, /* lshi */ - 12, /* rshr */ + 12, /* rshr */ 4, /* rshi */ - 12, /* rshr_u */ + 12, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 8, /* ltr */ 8, /* lti */ 8, /* ltr_u */ @@ -98,7 +99,7 @@ 8, /* ler_u */ 8, /* lei_u */ 8, /* eqr */ - 12, /* eqi */ + 12, /* eqi */ 8, /* ger */ 8, /* gei */ 8, /* ger_u */ @@ -111,28 +112,40 @@ 8, /* nei */ 4, /* movr */ 8, /* movi */ - 12, /* movnr */ - 12, /* movzr */ - 88, /* casr */ - 96, /* casi */ + 12, /* movnr */ + 12, /* movzr */ + 0, /* casr */ + 0, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ - 12, /* bswapr_us */ - 16, /* bswapr_ui */ + 0, /* exti_ui */ + 12, /* bswapr_us */ + 8, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 8, /* ldr_c */ - 12, /* ldi_c */ + 12, /* ldi_c */ 4, /* ldr_uc */ 8, /* ldi_uc */ 8, /* ldr_s */ - 12, /* ldi_s */ + 12, /* ldi_s */ 4, /* ldr_us */ 8, /* ldi_us */ 4, /* ldr_i */ @@ -142,11 +155,11 @@ 0, /* ldr_l */ 0, /* ldi_l */ 8, /* ldxr_c */ - 12, /* ldxi_c */ + 12, /* ldxi_c */ 4, /* ldxr_uc */ 8, /* ldxi_uc */ 8, /* ldxr_s */ - 12, /* ldxi_s */ + 12, /* ldxi_s */ 4, /* ldxr_us */ 8, /* ldxi_us */ 4, /* ldxr_i */ @@ -164,23 +177,23 @@ 0, /* str_l */ 0, /* sti_l */ 8, /* stxr_c */ - 12, /* stxi_c */ + 12, /* stxi_c */ 8, /* stxr_s */ - 12, /* stxi_s */ + 12, /* stxi_s */ 8, /* stxr_i */ - 12, /* stxi_i */ + 12, /* stxi_i */ 0, /* stxr_l */ 0, /* stxi_l */ 8, /* bltr */ - 12, /* blti */ + 12, /* blti */ 8, /* bltr_u */ 8, /* blti_u */ 8, /* bler */ - 12, /* blei */ + 12, /* blei */ 8, /* bler_u */ 8, /* blei_u */ 8, /* beqr */ - 16, /* beqi */ + 16, /* beqi */ 8, /* bger */ 8, /* bgei */ 8, /* bger_u */ @@ -190,11 +203,11 @@ 8, /* bgtr_u */ 8, /* bgti_u */ 8, /* bner */ - 16, /* bnei */ - 12, /* bmsr */ - 16, /* bmsi */ - 12, /* bmcr */ - 16, /* bmci */ + 16, /* bnei */ + 12, /* bmsr */ + 16, /* bmsi */ + 12, /* bmcr */ + 16, /* bmci */ 8, /* boaddr */ 8, /* boaddi */ 8, /* boaddr_u */ @@ -203,18 +216,18 @@ 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 */ + 12, /* bosubr */ + 16, /* bosubi */ + 16, /* bosubr_u */ + 20, /* bosubi_u */ + 12, /* bxsubr */ + 16, /* bxsubi */ + 16, /* bxsubr_u */ + 20, /* bxsubi_u */ 4, /* jmpr */ - 12, /* jmpi */ - 40, /* callr */ - 44, /* calli */ + 12, /* jmpi */ + 40, /* callr */ + 44, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -260,87 +273,90 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 24, /* addi_f */ + 24, /* addi_f */ 4, /* subr_f */ - 24, /* subi_f */ - 24, /* rsbi_f */ + 24, /* subi_f */ + 24, /* rsbi_f */ 4, /* mulr_f */ - 24, /* muli_f */ + 24, /* muli_f */ 4, /* divr_f */ - 24, /* divi_f */ + 24, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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 */ - 16, /* uneqr_f */ - 36, /* uneqi_f */ - 16, /* unger_f */ - 36, /* ungei_f */ - 16, /* ungtr_f */ - 36, /* ungti_f */ - 16, /* ltgtr_f */ - 36, /* ltgti_f */ - 16, /* ordr_f */ - 36, /* ordi_f */ - 16, /* unordr_f */ - 36, /* unordi_f */ - 16, /* truncr_f_i */ + 0, /* sqrti_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 */ + 16, /* uneqr_f */ + 36, /* uneqi_f */ + 16, /* unger_f */ + 36, /* ungei_f */ + 16, /* ungtr_f */ + 36, /* ungti_f */ + 16, /* ltgtr_f */ + 36, /* ltgti_f */ + 16, /* ordr_f */ + 36, /* ordi_f */ + 16, /* unordr_f */ + 36, /* unordi_f */ + 16, /* truncr_f_i */ 0, /* truncr_f_l */ - 20, /* extr_f */ + 20, /* extr_f */ 4, /* extr_d_f */ 4, /* movr_f */ - 20, /* movi_f */ + 20, /* movi_f */ 4, /* ldr_f */ - 12, /* ldi_f */ + 12, /* ldi_f */ 8, /* ldxr_f */ - 12, /* ldxi_f */ + 12, /* ldxi_f */ 4, /* str_f */ - 12, /* sti_f */ + 12, /* sti_f */ 8, /* stxr_f */ - 12, /* stxi_f */ - 16, /* bltr_f */ - 36, /* blti_f */ - 16, /* bler_f */ - 36, /* blei_f */ - 16, /* beqr_f */ - 36, /* beqi_f */ - 16, /* bger_f */ - 36, /* bgei_f */ - 16, /* bgtr_f */ - 36, /* bgti_f */ - 16, /* bner_f */ - 36, /* bnei_f */ - 16, /* bunltr_f */ - 36, /* bunlti_f */ - 16, /* bunler_f */ - 36, /* bunlei_f */ - 16, /* buneqr_f */ - 36, /* buneqi_f */ - 16, /* bunger_f */ - 36, /* bungei_f */ - 16, /* bungtr_f */ - 36, /* bungti_f */ - 16, /* bltgtr_f */ - 36, /* bltgti_f */ - 16, /* bordr_f */ - 36, /* bordi_f */ - 16, /* bunordr_f */ - 36, /* bunordi_f */ + 12, /* stxi_f */ + 16, /* bltr_f */ + 36, /* blti_f */ + 16, /* bler_f */ + 36, /* blei_f */ + 16, /* beqr_f */ + 36, /* beqi_f */ + 16, /* bger_f */ + 36, /* bgei_f */ + 16, /* bgtr_f */ + 36, /* bgti_f */ + 16, /* bner_f */ + 36, /* bnei_f */ + 16, /* bunltr_f */ + 36, /* bunlti_f */ + 16, /* bunler_f */ + 36, /* bunlei_f */ + 16, /* buneqr_f */ + 36, /* buneqi_f */ + 16, /* bunger_f */ + 36, /* bungei_f */ + 16, /* bungtr_f */ + 36, /* bungti_f */ + 16, /* bltgtr_f */ + 36, /* bltgti_f */ + 16, /* bordr_f */ + 36, /* bordi_f */ + 16, /* bunordr_f */ + 36, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -351,150 +367,136 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 32, /* addi_d */ + 32, /* addi_d */ 4, /* subr_d */ - 32, /* subi_d */ - 32, /* rsbi_d */ + 32, /* subi_d */ + 32, /* rsbi_d */ 4, /* mulr_d */ - 32, /* muli_d */ + 32, /* muli_d */ 4, /* divr_d */ - 32, /* divi_d */ + 32, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ - 16, /* ltr_d */ - 44, /* lti_d */ - 16, /* ler_d */ - 44, /* lei_d */ - 16, /* eqr_d */ - 44, /* eqi_d */ - 16, /* ger_d */ - 44, /* gei_d */ - 16, /* gtr_d */ - 44, /* 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 */ - 16, /* unordr_d */ - 44, /* unordi_d */ - 16, /* truncr_d_i */ + 0, /* sqrti_d */ + 16, /* ltr_d */ + 44, /* lti_d */ + 16, /* ler_d */ + 44, /* lei_d */ + 16, /* eqr_d */ + 44, /* eqi_d */ + 16, /* ger_d */ + 44, /* gei_d */ + 16, /* gtr_d */ + 44, /* 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 */ + 16, /* unordr_d */ + 44, /* unordi_d */ + 16, /* truncr_d_i */ 0, /* truncr_d_l */ - 20, /* extr_d */ + 20, /* extr_d */ 4, /* extr_f_d */ 4, /* movr_d */ - 28, /* movi_d */ + 28, /* movi_d */ 4, /* ldr_d */ - 12, /* ldi_d */ + 12, /* ldi_d */ 8, /* ldxr_d */ - 12, /* ldxi_d */ + 12, /* ldxi_d */ 4, /* str_d */ - 12, /* sti_d */ + 12, /* sti_d */ 8, /* stxr_d */ - 12, /* stxi_d */ - 16, /* bltr_d */ - 44, /* blti_d */ - 16, /* bler_d */ - 44, /* blei_d */ - 16, /* beqr_d */ - 44, /* beqi_d */ - 16, /* bger_d */ - 44, /* bgei_d */ - 16, /* bgtr_d */ - 44, /* bgti_d */ - 16, /* bner_d */ - 44, /* bnei_d */ - 16, /* bunltr_d */ - 44, /* bunlti_d */ - 16, /* bunler_d */ - 44, /* bunlei_d */ - 16, /* buneqr_d */ - 44, /* buneqi_d */ - 16, /* bunger_d */ - 44, /* bungei_d */ - 16, /* bungtr_d */ - 44, /* bungti_d */ - 16, /* bltgtr_d */ - 44, /* bltgti_d */ - 16, /* bordr_d */ - 44, /* bordi_d */ - 16, /* bunordr_d */ - 44, /* bunordi_d */ + 12, /* stxi_d */ + 16, /* bltr_d */ + 44, /* blti_d */ + 16, /* bler_d */ + 44, /* blei_d */ + 16, /* beqr_d */ + 44, /* beqi_d */ + 16, /* bger_d */ + 44, /* bgei_d */ + 16, /* bgtr_d */ + 44, /* bgti_d */ + 16, /* bner_d */ + 44, /* bnei_d */ + 16, /* bunltr_d */ + 44, /* bunlti_d */ + 16, /* bunler_d */ + 44, /* bunlei_d */ + 16, /* buneqr_d */ + 44, /* buneqi_d */ + 16, /* bunger_d */ + 44, /* bungei_d */ + 16, /* bungtr_d */ + 44, /* bungti_d */ + 16, /* bltgtr_d */ + 44, /* bltgti_d */ + 16, /* bordr_d */ + 44, /* bordi_d */ + 16, /* bunordr_d */ + 44, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ - 16, /* movr_w_f */ - 20, /* movr_ww_d */ + 16, /* movr_w_f */ + 20, /* movi_w_f */ + 20, /* movr_ww_d */ + 28, /* movi_ww_d */ 0, /* movr_w_d */ - 12, /* movr_f_w */ + 0, /* movi_w_d */ + 12, /* movr_f_w */ 4, /* movi_f_w */ - 16, /* movr_d_ww */ + 16, /* movr_d_ww */ 8, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ - 80, /* clor */ - 60, /* clzr */ - 72, /* ctor */ - 52, /* ctzr */ - 68, /* rbitr */ - 64, /* popcntr */ - 32, /* lrotr */ - 8, /* lroti */ - 32, /* rrotr */ - 8, /* rroti */ - 4, /* extr */ - 4, /* extr_u */ - 4, /* depr */ - 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 8, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ + 80, /* clor */ 4, /* cloi */ + 60, /* clzr */ 4, /* clzi */ + 76, /* ctor */ 4, /* ctoi */ + 56, /* ctzr */ 4, /* ctzi */ + 68, /* rbitr */ 8, /* rbiti */ + 64, /* popcntr */ 4, /* popcnti */ + 32, /* lrotr */ + 8, /* lroti */ + 32, /* rrotr */ + 8, /* rroti */ + 4, /* extr */ 4, /* exti */ + 4, /* extr_u */ 4, /* exti_u */ - 72, /* qlshr */ + 4, /* depr */ + 8, /* depi */ + 72, /* qlshr */ 8, /* qlshi */ - 72, /* qlshr_u */ + 72, /* qlshr_u */ 8, /* qlshi_u */ - 72, /* qrshr */ + 72, /* qrshr */ 8, /* qrshi */ - 72, /* qrshr_u */ + 72, /* qrshr_u */ 8, /* qrshi_u */ 0, /* unldr */ 0, /* unldi */ @@ -506,7 +508,20 @@ 0, /* unldi_x */ 0, /* unstr_x */ 0, /* unsti_x */ - 20, /* movi_w_f */ - 0, /* movi_w_d */ - 28, /* movi_ww_d */ + 8, /* fmar_f */ + 0, /* fmai_f */ + 8, /* fmsr_f */ + 0, /* fmsi_f */ + 8, /* fmar_d */ + 0, /* fmai_d */ + 8, /* fmsr_d */ + 0, /* fmsi_d */ + 12, /* fnmar_f */ + 0, /* fnmai_f */ + 12, /* fnmsr_f */ + 0, /* fnmsi_f */ + 12, /* fnmar_d */ + 0, /* fnmai_d */ + 12, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_ia64-cpu.c b/lib/jit_ia64-cpu.c index 4320074..4460940 100644 --- a/lib/jit_ia64-cpu.c +++ b/lib/jit_ia64-cpu.c @@ -210,7 +210,7 @@ typedef enum { #define ldxr(r0,r1,r2) ldxr_l(r0,r1,r2) #define ldxi(r0,r1,i0) ldxi_l(r0,r1,i0) #define str(r0,r1) str_l(r0,r1) -#define sti(i0,r0) str_l(i0,r0) +#define sti(i0,r0) sti_l(i0,r0) #define stxr(r0,r1,r2) stxr_l(r0,r1,r2) #define stxi(i0,r0,r1) stxi_l(i0,r0,r1) diff --git a/lib/jit_ia64-fpu.c b/lib/jit_ia64-fpu.c index e29bff7..bca90b7 100644 --- a/lib/jit_ia64-fpu.c +++ b/lib/jit_ia64-fpu.c @@ -453,19 +453,19 @@ static void _movi_w_d(jit_state_t*, jit_int32_t, jit_word_t); #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); -#define fmar_f(r0,r1,r2,r3) FMA_S(r0,r2,r3,r1) -#define fmsr_f(r0,r1,r2,r3) FMS_S(r0,r2,r3,r1) -#define fnmar_f(r0,r1,r2,r3) FNMA_S(r0,r2,r3,r1) -#define fnmsr_f(r0,r1,r2,r3) _fnmsr_f(_jit,r0,r1,r2,r3) -static void _fnmsr_f(jit_state_t*, +#define fmar_f(r0,r1,r2,r3) FMA_S(r0,r1,r2,r3) +#define fmsr_f(r0,r1,r2,r3) FMS_S(r0,r1,r2,r3) +#define fnmsr_f(r0,r1,r2,r3) FNMA_S(r0,r1,r2,r3) +#define fnmar_f(r0,r1,r2,r3) _fnmar_f(_jit,r0,r1,r2,r3) +static void _fnmar_f(jit_state_t*, jit_int32_t,jit_int32_t,jit_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); -#define fmar_d(r0,r1,r2,r3) FMA_D(r0,r2,r3,r1) -#define fmsr_d(r0,r1,r2,r3) FMS_D(r0,r2,r3,r1) -#define fnmar_d(r0,r1,r2,r3) FNMA_D(r0,r2,r3,r1) -#define fnmsr_d(r0,r1,r2,r3) _fnmsr_d(_jit,r0,r1,r2,r3) -static void _fnmsr_d(jit_state_t*, +#define fmar_d(r0,r1,r2,r3) FMA_D(r0,r1,r2,r3) +#define fmsr_d(r0,r1,r2,r3) FMS_D(r0,r1,r2,r3) +#define fnmsr_d(r0,r1,r2,r3) FNMA_D(r0,r1,r2,r3) +#define fnmar_d(r0,r1,r2,r3) _fnmar_d(_jit,r0,r1,r2,r3) +static void _fnmar_d(jit_state_t*, jit_int32_t,jit_int32_t,jit_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) @@ -1573,10 +1573,10 @@ _sqrtr_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_fnmsr_f(jit_state_t *_jit, +_fnmar_f(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - fmsr_f(r0, r1, r2, r3); + fmar_f(r0, r1, r2, r3); negr_f(r0, r0); } @@ -1589,10 +1589,10 @@ _sqrtr_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void -_fnmsr_d(jit_state_t *_jit, +_fnmar_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { - fmsr_d(r0, r1, r2, r3); + fmar_d(r0, r1, r2, r3); negr_d(r0, r0); } diff --git a/lib/jit_ia64-sz.c b/lib/jit_ia64-sz.c index 4b98116..2a8feaf 100644 --- a/lib/jit_ia64-sz.c +++ b/lib/jit_ia64-sz.c @@ -1,5 +1,5 @@ #if __WORDSIZE == 64 -#define JIT_INSTR_MAX 384 +#define JIT_INSTR_MAX 144 0, /* data */ 0, /* live */ 32, /* align */ @@ -87,7 +87,9 @@ 16, /* rshr_u */ 16, /* rshi_u */ 16, /* negr */ + 16, /* negi */ 16, /* comr */ + 16, /* comi */ 16, /* ltr */ 16, /* lti */ 16, /* ltr_u */ @@ -115,17 +117,29 @@ 32, /* casr */ 32, /* casi */ 16, /* extr_c */ + 16, /* exti_c */ 16, /* extr_uc */ + 16, /* exti_uc */ 16, /* extr_s */ + 16, /* exti_s */ 16, /* extr_us */ + 16, /* exti_us */ 16, /* extr_i */ + 16, /* exti_i */ 16, /* extr_ui */ + 16, /* exti_ui */ 16, /* bswapr_us */ + 16, /* bswapi_us */ 16, /* bswapr_ui */ + 16, /* bswapi_ui */ 16, /* bswapr_ul */ + 16, /* bswapi_ul */ 16, /* htonr_us */ + 16, /* htoni_us */ 16, /* htonr_ui */ + 16, /* htoni_ui */ 16, /* htonr_ul */ + 16, /* htoni_ul */ 16, /* ldr_c */ 16, /* ldi_c */ 16, /* ldr_uc */ @@ -268,8 +282,11 @@ 64, /* divr_f */ 80, /* divi_f */ 16, /* negr_f */ + 0, /* negi_f */ 16, /* absr_f */ + 0, /* absi_f */ 32, /* sqrtr_f */ + 0, /* sqrti_f */ 16, /* ltr_f */ 32, /* lti_f */ 16, /* ler_f */ @@ -359,8 +376,11 @@ 64, /* divr_d */ 80, /* divi_d */ 16, /* negr_d */ + 0, /* negi_d */ 16, /* absr_d */ + 0, /* absi_d */ 32, /* sqrtr_d */ + 0, /* sqrti_d */ 16, /* ltr_d */ 32, /* lti_d */ 16, /* ler_d */ @@ -437,8 +457,11 @@ 0, /* reti_d */ 0, /* retval_d */ 16, /* movr_w_f */ + 16, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 16, /* movr_w_d */ + 16, /* movi_w_d */ 16, /* movr_f_w */ 16, /* movi_f_w */ 0, /* movr_d_ww */ @@ -446,47 +469,27 @@ 16, /* movr_d_w */ 16, /* movi_d_w */ 96, /* clor */ + 16, /* cloi */ 64, /* clzr */ + 16, /* clzi */ 64, /* ctor */ + 16, /* ctoi */ 48, /* ctzr */ + 16, /* ctzi */ 64, /* rbitr */ + 16, /* rbiti */ 16, /* popcntr */ + 16, /* popcnti */ 32, /* lrotr */ 32, /* lroti */ 32, /* rrotr */ 32, /* rroti */ 16, /* extr */ + 16, /* exti */ 16, /* extr_u */ + 16, /* exti_u */ 32, /* depr */ 16, /* depi */ - 16, /* negi */ - 16, /* comi */ - 16, /* exti_c */ - 16, /* exti_uc */ - 16, /* exti_s */ - 16, /* exti_us */ - 16, /* exti_i */ - 16, /* exti_ui */ - 16, /* bswapi_us */ - 16, /* bswapi_ui */ - 16, /* bswapi_ul */ - 16, /* htoni_us */ - 16, /* htoni_ui */ - 16, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 16, /* cloi */ - 16, /* clzi */ - 16, /* ctoi */ - 16, /* ctzi */ - 16, /* rbiti */ - 16, /* popcnti */ - 16, /* exti */ - 16, /* exti_u */ 48, /* qlshr */ 16, /* qlshi */ 48, /* qlshr_u */ @@ -495,17 +498,30 @@ 16, /* qrshi */ 48, /* qrshr_u */ 16, /* qrshi_u */ - 384, /* unldr */ - 64, /* unldi */ - 384, /* unldr_u */ - 64, /* unldi_u */ - 192, /* unstr */ - 64, /* unsti */ - 384, /* unldr_x */ - 64, /* unldi_x */ - 208, /* unstr_x */ - 64, /* unsti_x */ - 16, /* movi_w_f */ - 16, /* movi_w_d */ - 0, /* movi_ww_d */ + 96, /* unldr */ + 48, /* unldi */ + 96, /* unldr_u */ + 48, /* unldi_u */ + 128, /* unstr */ + 96, /* unsti */ + 80, /* unldr_x */ + 48, /* unldi_x */ + 144, /* unstr_x */ + 112, /* unsti_x */ + 16, /* fmar_f */ + 0, /* fmai_f */ + 16, /* fmsr_f */ + 0, /* fmsi_f */ + 16, /* fmar_d */ + 0, /* fmai_d */ + 16, /* fmsr_d */ + 0, /* fmsi_d */ + 16, /* fnmar_f */ + 0, /* fnmai_f */ + 16, /* fnmsr_f */ + 0, /* fnmsi_f */ + 16, /* fnmar_d */ + 0, /* fnmai_d */ + 16, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_loongarch-sz.c b/lib/jit_loongarch-sz.c index 03dadee..377dbc0 100644 --- a/lib/jit_loongarch-sz.c +++ b/lib/jit_loongarch-sz.c @@ -87,7 +87,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 4, /* ltr */ 4, /* lti */ 4, /* ltr_u */ @@ -115,17 +117,29 @@ 32, /* casr */ 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 4, /* extr_i */ + 4, /* exti_i */ 4, /* extr_ui */ + 12, /* exti_ui */ 8, /* bswapr_us */ + 8, /* bswapi_us */ 8, /* bswapr_ui */ + 8, /* bswapi_ui */ 4, /* bswapr_ul */ + 16, /* bswapi_ul */ 8, /* htonr_us */ + 8, /* htoni_us */ 8, /* htonr_ui */ + 8, /* htoni_ui */ 4, /* htonr_ul */ + 16, /* htoni_ul */ 4, /* ldr_c */ 20, /* ldi_c */ 4, /* ldr_uc */ @@ -268,8 +282,11 @@ 4, /* divr_f */ 12, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 8, /* ltr_f */ 16, /* lti_f */ 8, /* ler_f */ @@ -359,8 +376,11 @@ 4, /* divr_d */ 20, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 8, /* ltr_d */ 24, /* lti_d */ 8, /* ler_d */ @@ -437,8 +457,11 @@ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ + 8, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 4, /* movr_w_d */ + 12, /* movi_w_d */ 4, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ @@ -446,47 +469,27 @@ 4, /* movr_d_w */ 12, /* movi_d_w */ 4, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 4, /* ctor */ + 4, /* ctoi */ 4, /* ctzr */ + 4, /* ctzi */ 4, /* rbitr */ + 16, /* rbiti */ 52, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ 8, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 4, /* exti_i */ - 12, /* exti_ui */ - 8, /* bswapi_us */ - 8, /* bswapi_ui */ - 16, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 16, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 16, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 84, /* qlshr */ 8, /* qlshi */ 84, /* qlshr_u */ @@ -496,16 +499,29 @@ 84, /* qrshr_u */ 8, /* qrshi_u */ 24, /* unldr */ - 44, /* unldi */ + 52, /* unldi */ 24, /* unldr_u */ - 44, /* unldi_u */ + 52, /* unldi_u */ 20, /* unstr */ - 56, /* unsti */ + 68, /* unsti */ 4, /* unldr_x */ - 16, /* unldi_x */ + 20, /* unldi_x */ 4, /* unstr_x */ - 20, /* unsti_x */ - 8, /* movi_w_f */ - 12, /* movi_w_d */ - 0, /* movi_ww_d */ + 24, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_mips-sz.c b/lib/jit_mips-sz.c index 94783b3..c107934 100644 --- a/lib/jit_mips-sz.c +++ b/lib/jit_mips-sz.c @@ -1,6 +1,6 @@ #if __WORDSIZE == 32 -#define JIT_INSTR_MAX 116 +#define JIT_INSTR_MAX 172 0, /* data */ 0, /* live */ 12, /* align */ @@ -88,7 +88,9 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 8, /* comr */ + 4, /* comi */ 4, /* ltr */ 4, /* lti */ 4, /* ltr_u */ @@ -116,17 +118,29 @@ 36, /* casr */ 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 4, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 8, /* bswapr_us */ + 4, /* bswapi_us */ 8, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 4, /* htonr_us */ + 4, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 4, /* ldr_c */ 12, /* ldi_c */ 4, /* ldr_uc */ @@ -269,8 +283,11 @@ 4, /* divr_f */ 16, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 16, /* ltr_f */ 28, /* lti_f */ 16, /* ler_f */ @@ -360,8 +377,11 @@ 4, /* divr_d */ 20, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 16, /* ltr_d */ 40, /* lti_d */ 16, /* ler_d */ @@ -438,8 +458,11 @@ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ + 8, /* movi_w_f */ 8, /* movr_ww_d */ + 16, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 4, /* movr_f_w */ 4, /* movi_f_w */ 8, /* movr_d_ww */ @@ -447,47 +470,27 @@ 0, /* movr_d_w */ 0, /* movi_d_w */ 4, /* clor */ + 4, /* cloi */ 4, /* clzr */ + 4, /* clzi */ 28, /* ctor */ + 4, /* ctoi */ 20, /* ctzr */ + 4, /* ctzi */ 68, /* rbitr */ + 8, /* rbiti */ 64, /* popcntr */ + 4, /* popcnti */ 12, /* lrotr */ 4, /* lroti */ 4, /* rrotr */ 4, /* rroti */ 8, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 4, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 4, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 8, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 48, /* qlshr */ 8, /* qlshi */ 44, /* qlshr_u */ @@ -497,22 +500,35 @@ 44, /* qrshr_u */ 8, /* qrshi_u */ 16, /* unldr */ - 36, /* unldi */ + 40, /* unldi */ 16, /* unldr_u */ - 36, /* unldi_u */ - 44, /* unstr */ - 28, /* unsti */ + 40, /* unldi_u */ + 172, /* unstr */ + 104, /* unsti */ 32, /* unldr_x */ 80, /* unldi_x */ 28, /* unstr_x */ 40, /* unsti_x */ - 8, /* movi_w_f */ - 0, /* movi_w_d */ - 16, /* movi_ww_d */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ #if __WORDSIZE == 64 -#define JIT_INSTR_MAX 132 +#define JIT_INSTR_MAX 184 0, /* data */ 0, /* live */ 8, /* align */ @@ -1009,16 +1025,32 @@ 44, /* qrshr_u */ 8, /* qrshi_u */ 16, /* unldr */ - 120, /* unldi */ + 64, /* unldi */ 16, /* unldr_u */ - 120, /* unldi_u */ - 132, /* unstr */ - 108, /* unsti */ + 64, /* unldi_u */ + 184, /* unstr */ + 164, /* unsti */ 16, /* unldr_x */ - 124, /* unldi_x */ + 68, /* unldi_x */ 12, /* unstr_x */ 32, /* unsti_x */ 8, /* movi_w_f */ 12, /* movi_w_d */ 0, /* movi_ww_d */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_names.c b/lib/jit_names.c index eba8e30..52f1eef 100644 --- a/lib/jit_names.c +++ b/lib/jit_names.c @@ -27,10 +27,8 @@ static char *code_name[] = { "prolog", "ellipsis", "va_push", "allocai", "allocar", - "arg_c", - "arg_s", - "arg_i", - "arg_l", + "arg_c", "arg_s", + "arg_i", "arg_l", "getarg_c", "getarg_uc", "getarg_s", "getarg_us", "getarg_i", "getarg_ui", @@ -67,7 +65,8 @@ static char *code_name[] = { "lshr", "lshi", "rshr", "rshi", "rshr_u", "rshi_u", - "negr", "comr", + "negr", "negi", + "comr", "comi", "ltr", "lti", "ltr_u", "lti_u", "ler", "lei", @@ -81,13 +80,18 @@ static char *code_name[] = { "movr", "movi", "movnr", "movzr", "casr", "casi", - "extr_c", "extr_uc", - "extr_s", "extr_us", - "extr_i", "extr_ui", - "bswapr_us", - "bswapr_ui", "bswapr_ul", - "htonr_us", - "htonr_ui", "htonr_ul", + "extr_c", "exti_c", + "extr_uc", "exti_uc", + "extr_s", "exti_s", + "extr_us", "exti_us", + "extr_i", "exti_i", + "extr_ui", "exti_ui", + "bswapr_us", "bswapi_us", + "bswapr_ui", "bswapi_ui", + "bswapr_ul", "bswapi_ul", + "htonr_us", "htoni_us", + "htonr_ui", "htoni_ui", + "htonr_ul", "htoni_ul", "ldr_c", "ldi_c", "ldr_uc", "ldi_uc", "ldr_s", "ldi_s", @@ -161,8 +165,9 @@ static char *code_name[] = { "rsbi_f", "mulr_f", "muli_f", "divr_f", "divi_f", - "negr_f", "absr_f", - "sqrtr_f", + "negr_f", "negi_f", + "absr_f", "absi_f", + "sqrtr_f", "sqrti_f", "ltr_f", "lti_f", "ler_f", "lei_f", "eqr_f", "eqi_f", @@ -208,8 +213,9 @@ static char *code_name[] = { "rsbi_d", "mulr_d", "muli_d", "divr_d", "divi_d", - "negr_d", "absr_d", - "sqrtr_d", + "negr_d", "negi_d", + "absr_d", "absi_d", + "sqrtr_d", "sqrti_d", "ltr_d", "lti_d", "ler_d", "lei_d", "eqr_d", "eqi_d", @@ -224,7 +230,8 @@ static char *code_name[] = { "ltgtr_d", "ltgti_d", "ordr_d", "ordi_d", "unordr_d", "unordi_d", - "truncr_d_i", "truncr_d_l", + "truncr_d_i", + "truncr_d_l", "extr_d", "extr_f_d", "movr_d", "movi_d", "ldr_d", "ldi_d", @@ -248,34 +255,23 @@ static char *code_name[] = { "pushargr_d", "pushargi_d", "retr_d", "reti_d", "retval_d", - "movr_w_f", "movr_ww_d", - "movr_w_d", + "movr_w_f", "movi_w_f", + "movr_ww_d", "movi_ww_d", + "movr_w_d", "movi_w_d", "movr_f_w", "movi_f_w", "movr_d_ww", "movi_d_ww", "movr_d_w", "movi_d_w", - "clor", "clzr", - "ctor", "ctzr", - "rbitr", "popcntr", + "clor", "cloi", + "clzr", "clzi", + "ctor", "ctoi", + "ctzr", "ctzi", + "rbitr", "rbiti", + "popcntr", "popcnti", "lrotr", "lroti", "rrotr", "rroti", - "extr", "extr_u", + "extr", "exti", + "extr_u", "exti_u", "depr", "depi", - "negi", "comi", - "exti_c", "exti_uc", - "exti_s", "exti_us", - "exti_i", "exti_ui", - "bswapi_us", "bswapi_ui", - "bswapi_ul", - "htoni_us", "htoni_ui", - "htoni_ul", - "negi_f", "absi_f", - "sqrti_f", - "negi_d", "absi_d", - "sqrti_d", - "cloi", "clzi", - "ctoi", "ctzi", - "rbiti", "popcnti", - "exti", "exti_u", "qlshr", "qlshi", "qlshr_u", "qlshi_u", "qrshr", "qrshi", @@ -285,8 +281,6 @@ static char *code_name[] = { "unstr", "unsti", "unldr_x", "unldi_x", "unstr_x", "unsti_x", - "movi_w_f", - "movi_w_d", "movi_ww_d", "fmar_f", "fmai_f", "fmsr_f", "fmsi_f", "fmar_d", "fmai_d", diff --git a/lib/jit_ppc-sz.c b/lib/jit_ppc-sz.c index f33566d..8c8a704 100644 --- a/lib/jit_ppc-sz.c +++ b/lib/jit_ppc-sz.c @@ -2,10 +2,10 @@ #if defined(__powerpc__) #if __BYTE_ORDER == __BIG_ENDIAN #if !_CALL_SYSV -#define JIT_INSTR_MAX 136 +#define JIT_INSTR_MAX 384 0, /* data */ 0, /* live */ - 16, /* align */ + 16, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ @@ -47,42 +47,42 @@ 8, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 12, /* addi */ + 12, /* addi */ 4, /* addcr */ - 12, /* addci */ + 12, /* addci */ 4, /* addxr */ 8, /* addxi */ 4, /* subr */ - 12, /* subi */ + 12, /* subi */ 4, /* subcr */ - 12, /* subci */ + 12, /* subci */ 4, /* subxr */ 8, /* subxi */ - 16, /* rsbi */ + 16, /* rsbi */ 4, /* mulr */ - 12, /* muli */ - 12, /* qmulr */ - 16, /* qmuli */ - 12, /* qmulr_u */ - 16, /* qmuli_u */ + 12, /* muli */ + 12, /* qmulr */ + 16, /* qmuli */ + 12, /* qmulr_u */ + 16, /* qmuli_u */ 4, /* divr */ - 12, /* divi */ + 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 */ + 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 */ 4, /* andi */ 4, /* orr */ - 12, /* ori */ + 12, /* ori */ 4, /* xorr */ - 12, /* xori */ + 12, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -90,47 +90,61 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 12, /* movnr */ - 12, /* movzr */ - 36, /* casr */ - 44, /* casi */ + 12, /* movnr */ + 12, /* movzr */ + 36, /* casr */ + 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 8, /* bswapr_us */ - 16, /* bswapr_ui */ + 4, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 8, /* ldr_c */ - 12, /* ldi_c */ + 12, /* ldi_c */ 4, /* ldr_uc */ 8, /* ldi_uc */ 4, /* ldr_s */ @@ -144,15 +158,15 @@ 0, /* ldr_l */ 0, /* ldi_l */ 8, /* ldxr_c */ - 16, /* ldxi_c */ + 16, /* ldxi_c */ 4, /* ldxr_uc */ - 12, /* ldxi_uc */ + 12, /* ldxi_uc */ 4, /* ldxr_s */ - 12, /* ldxi_s */ + 12, /* ldxi_s */ 4, /* ldxr_us */ - 12, /* ldxi_us */ + 12, /* ldxi_us */ 4, /* ldxr_i */ - 12, /* ldxi_i */ + 12, /* ldxi_i */ 0, /* ldxr_ui */ 0, /* ldxi_ui */ 0, /* ldxr_l */ @@ -166,23 +180,23 @@ 0, /* str_l */ 0, /* sti_l */ 4, /* stxr_c */ - 12, /* stxi_c */ + 12, /* stxi_c */ 4, /* stxr_s */ - 12, /* stxi_s */ + 12, /* stxi_s */ 4, /* stxr_i */ - 12, /* stxi_i */ + 12, /* stxi_i */ 0, /* stxr_l */ 0, /* stxi_l */ 8, /* bltr */ 8, /* blti */ 8, /* bltr_u */ - 12, /* blti_u */ + 12, /* blti_u */ 8, /* bler */ 8, /* blei */ 8, /* bler_u */ - 12, /* blei_u */ + 12, /* blei_u */ 8, /* beqr */ - 16, /* beqi */ + 16, /* beqi */ 8, /* bger */ 8, /* bgei */ 8, /* bger_u */ @@ -192,31 +206,31 @@ 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 */ + 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 */ - 36, /* calli */ + 28, /* callr */ + 36, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -262,87 +276,90 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 16, /* addi_f */ + 16, /* addi_f */ 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ + 16, /* subi_f */ + 16, /* rsbi_f */ 4, /* mulr_f */ - 16, /* muli_f */ + 16, /* muli_f */ 4, /* divr_f */ - 16, /* divi_f */ + 16, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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, /* sqrti_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 */ - 36, /* extr_f */ + 36, /* extr_f */ 4, /* extr_d_f */ 4, /* movr_f */ - 12, /* movi_f */ + 12, /* movi_f */ 4, /* ldr_f */ 8, /* ldi_f */ 4, /* ldxr_f */ - 12, /* ldxi_f */ + 12, /* ldxi_f */ 4, /* str_f */ 8, /* sti_f */ 4, /* stxr_f */ - 12, /* stxi_f */ + 12, /* stxi_f */ 8, /* bltr_f */ - 20, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ + 20, /* blti_f */ + 12, /* bler_f */ + 24, /* blei_f */ 8, /* beqr_f */ - 20, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ + 20, /* beqi_f */ + 12, /* bger_f */ + 24, /* bgei_f */ 8, /* bgtr_f */ - 20, /* bgti_f */ + 20, /* bgti_f */ 8, /* bner_f */ - 20, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ + 20, /* bnei_f */ + 12, /* bunltr_f */ + 24, /* bunlti_f */ 8, /* bunler_f */ - 20, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_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 */ + 20, /* bungei_f */ + 12, /* bungtr_f */ + 24, /* bungti_f */ + 12, /* bltgtr_f */ + 24, /* bltgti_f */ 8, /* bordr_f */ - 20, /* bordi_f */ + 20, /* bordi_f */ 8, /* bunordr_f */ - 20, /* bunordi_f */ + 20, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -353,164 +370,163 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 24, /* addi_d */ + 24, /* addi_d */ 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ + 24, /* subi_d */ + 24, /* rsbi_d */ 4, /* mulr_d */ - 24, /* muli_d */ + 24, /* muli_d */ 4, /* divr_d */ - 24, /* divi_d */ + 24, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_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, /* sqrti_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 */ - 36, /* extr_d */ + 36, /* extr_d */ 4, /* extr_f_d */ 4, /* movr_d */ - 28, /* movi_d */ + 28, /* movi_d */ 4, /* ldr_d */ 8, /* ldi_d */ 4, /* ldxr_d */ - 12, /* ldxi_d */ + 12, /* ldxi_d */ 4, /* str_d */ 8, /* sti_d */ 4, /* stxr_d */ - 12, /* stxi_d */ + 12, /* stxi_d */ 8, /* bltr_d */ - 28, /* blti_d */ - 12, /* bler_d */ - 32, /* blei_d */ + 28, /* blti_d */ + 12, /* bler_d */ + 32, /* blei_d */ 8, /* beqr_d */ - 32, /* beqi_d */ - 12, /* bger_d */ - 32, /* bgei_d */ + 32, /* beqi_d */ + 12, /* bger_d */ + 32, /* bgei_d */ 8, /* bgtr_d */ - 28, /* bgti_d */ + 28, /* bgti_d */ 8, /* bner_d */ - 28, /* bnei_d */ - 12, /* bunltr_d */ - 32, /* bunlti_d */ + 28, /* bnei_d */ + 12, /* bunltr_d */ + 32, /* bunlti_d */ 8, /* bunler_d */ - 28, /* bunlei_d */ - 12, /* buneqr_d */ - 32, /* buneqi_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 */ + 28, /* bungei_d */ + 12, /* bungtr_d */ + 32, /* bungti_d */ + 12, /* bltgtr_d */ + 32, /* bltgti_d */ 8, /* bordr_d */ - 28, /* bordi_d */ + 28, /* bordi_d */ 8, /* bunordr_d */ - 28, /* bunordi_d */ + 28, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 8, /* movr_w_f */ - 12, /* movr_ww_d */ + 12, /* movi_w_f */ + 12, /* movr_ww_d */ + 20, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 8, /* movr_f_w */ 4, /* movi_f_w */ - 12, /* movr_d_ww */ + 12, /* movr_d_ww */ 8, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ 8, /* clor */ - 4, /* clzr */ - 32, /* ctor */ - 28, /* ctzr */ - 56, /* rbitr */ - 20, /* popcntr */ - 4, /* lrotr */ - 4, /* lroti */ - 12, /* rrotr */ - 4, /* rroti */ - 8, /* extr */ - 4, /* extr_u */ - 4, /* depr */ - 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ 4, /* cloi */ + 4, /* clzr */ 4, /* clzi */ + 32, /* ctor */ 4, /* ctoi */ + 28, /* ctzr */ 4, /* ctzi */ + 56, /* rbitr */ 8, /* rbiti */ + 20, /* popcntr */ 4, /* popcnti */ + 4, /* lrotr */ + 4, /* lroti */ + 12, /* rrotr */ + 4, /* rroti */ + 8, /* extr */ 4, /* exti */ + 4, /* extr_u */ 4, /* exti_u */ - 56, /* qlshr */ + 4, /* depr */ + 8, /* depi */ + 56, /* qlshr */ 8, /* qlshi */ - 56, /* qlshr_u */ + 56, /* qlshr_u */ 8, /* qlshi_u */ - 56, /* qrshr */ + 56, /* qrshr */ 8, /* qrshi */ - 56, /* qrshr_u */ + 56, /* qrshr_u */ 8, /* qrshi_u */ - 100, /* unldr */ - 28, /* unldi */ - 100, /* unldr_u */ - 28, /* unldi_u */ - 68, /* unstr */ - 32, /* unsti */ - 212, /* unldr_x */ - 68, /* unldi_x */ - 152, /* unstr_x */ - 76, /* unsti_x */ - 12, /* movi_w_f */ - 0, /* movi_w_d */ - 20, /* movi_ww_d */ + 68, /* unldr */ + 32, /* unldi */ + 68, /* unldr_u */ + 32, /* unldi_u */ + 176, /* unstr */ + 80, /* unsti */ + 140, /* unldr_x */ + 68, /* unldi_x */ + 384, /* unstr_x */ + 164, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* !_CALL_SYSV */ #endif /* __BYTE_ORDER */ #endif /* __powerpc__ */ @@ -520,10 +536,10 @@ #if defined(__powerpc__) #if __BYTE_ORDER == __BIG_ENDIAN #if _CALL_SYSV -#define JIT_INSTR_MAX 124 +#define JIT_INSTR_MAX 384 0, /* data */ 0, /* live */ - 28, /* align */ + 28, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ @@ -560,47 +576,47 @@ 0, /* putargi_ui */ 0, /* putargr_l */ 0, /* putargi_l */ - 36, /* va_start */ - 52, /* va_arg */ - 64, /* va_arg_d */ + 36, /* va_start */ + 52, /* va_arg */ + 64, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 12, /* addi */ + 12, /* addi */ 4, /* addcr */ - 12, /* addci */ + 12, /* addci */ 4, /* addxr */ 8, /* addxi */ 4, /* subr */ - 12, /* subi */ + 12, /* subi */ 4, /* subcr */ - 12, /* subci */ + 12, /* subci */ 4, /* subxr */ 8, /* subxi */ - 16, /* rsbi */ + 16, /* rsbi */ 4, /* mulr */ - 12, /* muli */ - 12, /* qmulr */ - 16, /* qmuli */ - 12, /* qmulr_u */ - 16, /* qmuli_u */ + 12, /* muli */ + 12, /* qmulr */ + 16, /* qmuli */ + 12, /* qmulr_u */ + 16, /* qmuli_u */ 4, /* divr */ - 12, /* divi */ + 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 */ + 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 */ 4, /* andi */ 4, /* orr */ - 12, /* ori */ + 12, /* ori */ 4, /* xorr */ - 12, /* xori */ + 12, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -608,47 +624,61 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 12, /* movnr */ - 12, /* movzr */ - 36, /* casr */ - 44, /* casi */ + 12, /* movnr */ + 12, /* movzr */ + 36, /* casr */ + 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 8, /* bswapr_us */ - 16, /* bswapr_ui */ + 4, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 8, /* ldr_c */ - 12, /* ldi_c */ + 12, /* ldi_c */ 4, /* ldr_uc */ 8, /* ldi_uc */ 4, /* ldr_s */ @@ -662,15 +692,15 @@ 0, /* ldr_l */ 0, /* ldi_l */ 8, /* ldxr_c */ - 16, /* ldxi_c */ + 16, /* ldxi_c */ 4, /* ldxr_uc */ - 12, /* ldxi_uc */ + 12, /* ldxi_uc */ 4, /* ldxr_s */ - 12, /* ldxi_s */ + 12, /* ldxi_s */ 4, /* ldxr_us */ - 12, /* ldxi_us */ + 12, /* ldxi_us */ 4, /* ldxr_i */ - 12, /* ldxi_i */ + 12, /* ldxi_i */ 0, /* ldxr_ui */ 0, /* ldxi_ui */ 0, /* ldxr_l */ @@ -684,23 +714,23 @@ 0, /* str_l */ 0, /* sti_l */ 4, /* stxr_c */ - 12, /* stxi_c */ + 12, /* stxi_c */ 4, /* stxr_s */ - 12, /* stxi_s */ + 12, /* stxi_s */ 4, /* stxr_i */ - 12, /* stxi_i */ + 12, /* stxi_i */ 0, /* stxr_l */ 0, /* stxi_l */ 8, /* bltr */ 8, /* blti */ 8, /* bltr_u */ - 12, /* blti_u */ + 12, /* blti_u */ 8, /* bler */ 8, /* blei */ 8, /* bler_u */ - 12, /* blei_u */ + 12, /* blei_u */ 8, /* beqr */ - 16, /* beqi */ + 16, /* beqi */ 8, /* bger */ 8, /* bgei */ 8, /* bger_u */ @@ -710,31 +740,31 @@ 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 */ + 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 */ - 12, /* callr */ - 20, /* calli */ + 12, /* callr */ + 20, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -780,87 +810,90 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 16, /* addi_f */ + 16, /* addi_f */ 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ + 16, /* subi_f */ + 16, /* rsbi_f */ 4, /* mulr_f */ - 16, /* muli_f */ + 16, /* muli_f */ 4, /* divr_f */ - 16, /* divi_f */ + 16, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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, /* sqrti_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 */ - 36, /* extr_f */ + 36, /* extr_f */ 4, /* extr_d_f */ 4, /* movr_f */ - 12, /* movi_f */ + 12, /* movi_f */ 4, /* ldr_f */ 8, /* ldi_f */ 4, /* ldxr_f */ - 12, /* ldxi_f */ + 12, /* ldxi_f */ 4, /* str_f */ 8, /* sti_f */ 4, /* stxr_f */ - 12, /* stxi_f */ + 12, /* stxi_f */ 8, /* bltr_f */ - 20, /* blti_f */ - 12, /* bler_f */ - 24, /* blei_f */ + 20, /* blti_f */ + 12, /* bler_f */ + 24, /* blei_f */ 8, /* beqr_f */ - 20, /* beqi_f */ - 12, /* bger_f */ - 24, /* bgei_f */ + 20, /* beqi_f */ + 12, /* bger_f */ + 24, /* bgei_f */ 8, /* bgtr_f */ - 20, /* bgti_f */ + 20, /* bgti_f */ 8, /* bner_f */ - 20, /* bnei_f */ - 12, /* bunltr_f */ - 24, /* bunlti_f */ + 20, /* bnei_f */ + 12, /* bunltr_f */ + 24, /* bunlti_f */ 8, /* bunler_f */ - 20, /* bunlei_f */ - 12, /* buneqr_f */ - 24, /* buneqi_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 */ + 20, /* bungei_f */ + 12, /* bungtr_f */ + 24, /* bungti_f */ + 12, /* bltgtr_f */ + 24, /* bltgti_f */ 8, /* bordr_f */ - 20, /* bordi_f */ + 20, /* bordi_f */ 8, /* bunordr_f */ - 20, /* bunordi_f */ + 20, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -871,164 +904,163 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 24, /* addi_d */ + 24, /* addi_d */ 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ + 24, /* subi_d */ + 24, /* rsbi_d */ 4, /* mulr_d */ - 24, /* muli_d */ + 24, /* muli_d */ 4, /* divr_d */ - 24, /* divi_d */ + 24, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_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, /* sqrti_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 */ - 36, /* extr_d */ + 36, /* extr_d */ 4, /* extr_f_d */ 4, /* movr_d */ - 28, /* movi_d */ + 28, /* movi_d */ 4, /* ldr_d */ 8, /* ldi_d */ 4, /* ldxr_d */ - 12, /* ldxi_d */ + 12, /* ldxi_d */ 4, /* str_d */ 8, /* sti_d */ 4, /* stxr_d */ - 12, /* stxi_d */ + 12, /* stxi_d */ 8, /* bltr_d */ - 28, /* blti_d */ - 12, /* bler_d */ - 32, /* blei_d */ + 28, /* blti_d */ + 12, /* bler_d */ + 32, /* blei_d */ 8, /* beqr_d */ - 32, /* beqi_d */ - 12, /* bger_d */ - 32, /* bgei_d */ + 32, /* beqi_d */ + 12, /* bger_d */ + 32, /* bgei_d */ 8, /* bgtr_d */ - 28, /* bgti_d */ + 28, /* bgti_d */ 8, /* bner_d */ - 28, /* bnei_d */ - 12, /* bunltr_d */ - 32, /* bunlti_d */ + 28, /* bnei_d */ + 12, /* bunltr_d */ + 32, /* bunlti_d */ 8, /* bunler_d */ - 28, /* bunlei_d */ - 12, /* buneqr_d */ - 32, /* buneqi_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 */ + 28, /* bungei_d */ + 12, /* bungtr_d */ + 32, /* bungti_d */ + 12, /* bltgtr_d */ + 32, /* bltgti_d */ 8, /* bordr_d */ - 28, /* bordi_d */ + 28, /* bordi_d */ 8, /* bunordr_d */ - 28, /* bunordi_d */ + 28, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 8, /* movr_w_f */ - 12, /* movr_ww_d */ + 12, /* movi_w_f */ + 12, /* movr_ww_d */ + 20, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 8, /* movr_f_w */ 4, /* movi_f_w */ - 12, /* movr_d_ww */ + 12, /* movr_d_ww */ 8, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ 8, /* clor */ - 4, /* clzr */ - 32, /* ctor */ - 28, /* ctzr */ - 56, /* rbitr */ - 20, /* popcntr */ - 4, /* lrotr */ - 4, /* lroti */ - 12, /* rrotr */ - 4, /* rroti */ - 8, /* extr */ - 4, /* extr_u */ - 4, /* depr */ - 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ 4, /* cloi */ + 4, /* clzr */ 4, /* clzi */ + 32, /* ctor */ 4, /* ctoi */ + 28, /* ctzr */ 4, /* ctzi */ + 56, /* rbitr */ 8, /* rbiti */ + 20, /* popcntr */ 4, /* popcnti */ + 4, /* lrotr */ + 4, /* lroti */ + 12, /* rrotr */ + 4, /* rroti */ + 8, /* extr */ 4, /* exti */ + 4, /* extr_u */ 4, /* exti_u */ - 56, /* qlshr */ + 4, /* depr */ + 8, /* depi */ + 56, /* qlshr */ 8, /* qlshi */ - 56, /* qlshr_u */ + 56, /* qlshr_u */ 8, /* qlshi_u */ - 56, /* qrshr */ + 56, /* qrshr */ 8, /* qrshi */ - 56, /* qrshr_u */ + 56, /* qrshr_u */ 8, /* qrshi_u */ - 100, /* unldr */ - 28, /* unldi */ - 100, /* unldr_u */ - 28, /* unldi_u */ - 68, /* unstr */ - 32, /* unsti */ - 212, /* unldr_x */ - 68, /* unldi_x */ - 152, /* unstr_x */ - 76, /* unsti_x */ - 12, /* movi_w_f */ - 0, /* movi_w_d */ - 20, /* movi_ww_d */ + 68, /* unldr */ + 32, /* unldi */ + 68, /* unldr_u */ + 32, /* unldi_u */ + 176, /* unstr */ + 80, /* unsti */ + 140, /* unldr_x */ + 68, /* unldi_x */ + 384, /* unstr_x */ + 164, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* _CALL_SYSV */ #endif /* __BYTE_ORDER */ #endif /* __powerpc__ */ @@ -1037,10 +1069,10 @@ #if __WORDSIZE == 64 #if defined(__powerpc__) #if __BYTE_ORDER == __BIG_ENDIAN -#define JIT_INSTR_MAX 148 +#define JIT_INSTR_MAX 208 0, /* data */ 0, /* live */ - 28, /* align */ + 28, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ @@ -1082,42 +1114,42 @@ 8, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 28, /* addi */ + 28, /* addi */ 4, /* addcr */ - 28, /* addci */ + 28, /* addci */ 4, /* addxr */ 8, /* addxi */ 4, /* subr */ - 28, /* subi */ + 28, /* subi */ 4, /* subcr */ - 28, /* subci */ + 28, /* subci */ 4, /* subxr */ 8, /* subxi */ - 44, /* rsbi */ + 44, /* rsbi */ 4, /* mulr */ - 28, /* muli */ - 12, /* qmulr */ - 28, /* qmuli */ - 12, /* qmulr_u */ - 28, /* qmuli_u */ + 28, /* muli */ + 12, /* qmulr */ + 28, /* qmuli */ + 12, /* qmulr_u */ + 28, /* qmuli_u */ 4, /* divr */ - 28, /* divi */ + 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 */ + 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 */ + 28, /* andi */ 4, /* orr */ - 28, /* ori */ + 28, /* ori */ 4, /* xorr */ - 28, /* xori */ + 28, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -1125,99 +1157,113 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 12, /* movnr */ - 12, /* movzr */ - 36, /* casr */ - 44, /* casi */ + 36, /* movi */ + 12, /* movnr */ + 12, /* movzr */ + 36, /* casr */ + 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 4, /* extr_i */ + 4, /* exti_i */ 4, /* extr_ui */ + 16, /* exti_ui */ 8, /* bswapr_us */ - 16, /* bswapr_ui */ - 44, /* bswapr_ul */ + 4, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ + 44, /* bswapr_ul */ + 36, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 4, /* htonr_ul */ + 36, /* htoni_ul */ 8, /* ldr_c */ - 28, /* ldi_c */ + 28, /* ldi_c */ 4, /* ldr_uc */ - 24, /* ldi_uc */ + 24, /* ldi_uc */ 4, /* ldr_s */ - 24, /* ldi_s */ + 24, /* ldi_s */ 4, /* ldr_us */ - 24, /* ldi_us */ + 24, /* ldi_us */ 4, /* ldr_i */ - 24, /* ldi_i */ + 24, /* ldi_i */ 4, /* ldr_ui */ - 24, /* ldi_ui */ + 24, /* ldi_ui */ 4, /* ldr_l */ - 24, /* ldi_l */ + 24, /* ldi_l */ 8, /* ldxr_c */ - 16, /* ldxi_c */ + 16, /* ldxi_c */ 4, /* ldxr_uc */ - 12, /* ldxi_uc */ + 12, /* ldxi_uc */ 4, /* ldxr_s */ - 12, /* ldxi_s */ + 12, /* ldxi_s */ 4, /* ldxr_us */ - 12, /* ldxi_us */ + 12, /* ldxi_us */ 4, /* ldxr_i */ - 12, /* ldxi_i */ + 12, /* ldxi_i */ 4, /* ldxr_ui */ - 12, /* ldxi_ui */ + 12, /* ldxi_ui */ 4, /* ldxr_l */ - 12, /* ldxi_l */ + 12, /* ldxi_l */ 4, /* str_c */ - 24, /* sti_c */ + 24, /* sti_c */ 4, /* str_s */ - 24, /* sti_s */ + 24, /* sti_s */ 4, /* str_i */ - 24, /* sti_i */ + 24, /* sti_i */ 4, /* str_l */ - 24, /* sti_l */ + 24, /* sti_l */ 4, /* stxr_c */ - 12, /* stxi_c */ + 12, /* stxi_c */ 4, /* stxr_s */ - 12, /* stxi_s */ + 12, /* stxi_s */ 4, /* stxr_i */ - 12, /* stxi_i */ + 12, /* stxi_i */ 4, /* stxr_l */ - 12, /* stxi_l */ + 12, /* stxi_l */ 8, /* bltr */ 8, /* blti */ 8, /* bltr_u */ - 12, /* blti_u */ + 12, /* blti_u */ 8, /* bler */ 8, /* blei */ 8, /* bler_u */ - 12, /* blei_u */ + 12, /* blei_u */ 8, /* beqr */ - 44, /* beqi */ + 44, /* beqi */ 8, /* bger */ 8, /* bgei */ 8, /* bger_u */ @@ -1227,31 +1273,31 @@ 8, /* bgtr_u */ 8, /* bgti_u */ 8, /* bner */ - 44, /* 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 */ + 44, /* 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 */ - 52, /* calli */ + 28, /* callr */ + 52, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -1297,87 +1343,90 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 28, /* addi_f */ + 28, /* addi_f */ 4, /* subr_f */ - 28, /* subi_f */ - 28, /* rsbi_f */ + 28, /* subi_f */ + 28, /* rsbi_f */ 4, /* mulr_f */ - 28, /* muli_f */ + 28, /* muli_f */ 4, /* divr_f */ - 28, /* divi_f */ + 28, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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 */ + 0, /* sqrti_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 */ + 24, /* movi_f */ 4, /* ldr_f */ - 24, /* ldi_f */ + 24, /* ldi_f */ 4, /* ldxr_f */ - 12, /* ldxi_f */ + 12, /* ldxi_f */ 4, /* str_f */ - 24, /* sti_f */ + 24, /* sti_f */ 4, /* stxr_f */ - 12, /* stxi_f */ + 12, /* stxi_f */ 8, /* bltr_f */ - 32, /* blti_f */ - 12, /* bler_f */ - 36, /* blei_f */ + 32, /* blti_f */ + 12, /* bler_f */ + 36, /* blei_f */ 8, /* beqr_f */ - 32, /* beqi_f */ - 12, /* bger_f */ - 36, /* bgei_f */ + 32, /* beqi_f */ + 12, /* bger_f */ + 36, /* bgei_f */ 8, /* bgtr_f */ - 32, /* bgti_f */ + 32, /* bgti_f */ 8, /* bner_f */ - 32, /* bnei_f */ - 12, /* bunltr_f */ - 36, /* bunlti_f */ + 32, /* bnei_f */ + 12, /* bunltr_f */ + 36, /* bunlti_f */ 8, /* bunler_f */ - 32, /* bunlei_f */ - 12, /* buneqr_f */ - 36, /* buneqi_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 */ + 32, /* bungei_f */ + 12, /* bungtr_f */ + 36, /* bungti_f */ + 12, /* bltgtr_f */ + 36, /* bltgti_f */ 8, /* bordr_f */ - 32, /* bordi_f */ + 32, /* bordi_f */ 8, /* bunordr_f */ - 32, /* bunordi_f */ + 32, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -1388,95 +1437,101 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 28, /* addi_d */ + 28, /* addi_d */ 4, /* subr_d */ - 28, /* subi_d */ - 32, /* rsbi_d */ + 28, /* subi_d */ + 32, /* rsbi_d */ 4, /* mulr_d */ - 28, /* muli_d */ + 28, /* muli_d */ 4, /* divr_d */ - 28, /* divi_d */ + 28, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_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 */ + 0, /* sqrti_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 */ + 32, /* movi_d */ 4, /* ldr_d */ - 24, /* ldi_d */ + 24, /* ldi_d */ 4, /* ldxr_d */ - 12, /* ldxi_d */ + 12, /* ldxi_d */ 4, /* str_d */ - 24, /* sti_d */ + 24, /* sti_d */ 4, /* stxr_d */ - 12, /* stxi_d */ + 12, /* stxi_d */ 8, /* bltr_d */ - 32, /* blti_d */ - 12, /* bler_d */ - 36, /* blei_d */ + 32, /* blti_d */ + 12, /* bler_d */ + 36, /* blei_d */ 8, /* beqr_d */ - 40, /* beqi_d */ - 12, /* bger_d */ - 40, /* bgei_d */ + 40, /* beqi_d */ + 12, /* bger_d */ + 40, /* bgei_d */ 8, /* bgtr_d */ - 36, /* bgti_d */ + 36, /* bgti_d */ 8, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ + 36, /* bnei_d */ + 12, /* bunltr_d */ + 36, /* bunlti_d */ 8, /* bunler_d */ - 32, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_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 */ + 36, /* bungei_d */ + 12, /* bungtr_d */ + 40, /* bungti_d */ + 12, /* bltgtr_d */ + 40, /* bltgti_d */ 8, /* bordr_d */ - 36, /* bordi_d */ + 36, /* bordi_d */ 8, /* bunordr_d */ - 32, /* bunordi_d */ + 32, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 8, /* movr_w_f */ + 12, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 8, /* movr_w_d */ + 16, /* movi_w_d */ 8, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ @@ -1484,68 +1539,61 @@ 8, /* movr_d_w */ 8, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ - 32, /* ctor */ - 28, /* ctzr */ - 68, /* rbitr */ - 36, /* popcntr */ + 4, /* clzi */ + 32, /* ctor */ + 4, /* ctoi */ + 28, /* ctzr */ + 4, /* ctzi */ + 68, /* rbitr */ + 36, /* rbiti */ + 36, /* popcntr */ + 4, /* popcnti */ 4, /* lrotr */ 4, /* lroti */ - 12, /* rrotr */ + 12, /* rrotr */ 4, /* rroti */ 8, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 4, /* exti_i */ - 16, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 36, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 36, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 36, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ - 56, /* qlshr */ + 56, /* qlshr */ 8, /* qlshi */ - 56, /* qlshr_u */ + 56, /* qlshr_u */ 8, /* qlshi_u */ - 56, /* qrshr */ + 56, /* qrshr */ 8, /* qrshi */ - 56, /* qrshr_u */ + 56, /* qrshr_u */ 8, /* qrshi_u */ - 304, /* unldr */ - 124, /* unldi */ - 304, /* unldr_u */ - 124, /* unldi_u */ - 168, /* unstr */ - 108, /* unsti */ - 308, /* unldr_x */ - 132, /* unldi_x */ - 176, /* unstr_x */ - 116, /* unsti_x */ - 12, /* movi_w_f */ - 16, /* movi_w_d */ - 0, /* movi_ww_d */ + 72, /* unldr */ + 64, /* unldi */ + 72, /* unldr_u */ + 64, /* unldi_u */ + 200, /* unstr */ + 164, /* unsti */ + 76, /* unldr_x */ + 72, /* unldi_x */ + 208, /* unstr_x */ + 172, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __BYTE_ORDER */ #endif /* __powerpc__ */ #endif /* __WORDSIZE */ @@ -1553,10 +1601,10 @@ #if __WORDSIZE == 64 #if defined(__powerpc__) #if __BYTE_ORDER == __LITTLE_ENDIAN -#define JIT_INSTR_MAX 124 +#define JIT_INSTR_MAX 208 0, /* data */ 0, /* live */ - 20, /* align */ + 20, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ @@ -1598,42 +1646,42 @@ 8, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 28, /* addi */ + 28, /* addi */ 4, /* addcr */ - 28, /* addci */ + 28, /* addci */ 4, /* addxr */ 8, /* addxi */ 4, /* subr */ - 28, /* subi */ + 28, /* subi */ 4, /* subcr */ - 28, /* subci */ + 28, /* subci */ 4, /* subxr */ 8, /* subxi */ - 44, /* rsbi */ + 44, /* rsbi */ 4, /* mulr */ - 28, /* muli */ - 12, /* qmulr */ - 28, /* qmuli */ - 12, /* qmulr_u */ - 28, /* qmuli_u */ + 28, /* muli */ + 12, /* qmulr */ + 28, /* qmuli */ + 12, /* qmulr_u */ + 28, /* qmuli_u */ 4, /* divr */ - 28, /* divi */ + 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 */ + 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 */ + 28, /* andi */ 4, /* orr */ - 28, /* ori */ + 28, /* ori */ 4, /* xorr */ - 28, /* xori */ + 28, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -1641,99 +1689,113 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 12, /* movnr */ - 12, /* movzr */ - 36, /* casr */ - 44, /* casi */ + 36, /* movi */ + 12, /* movnr */ + 12, /* movzr */ + 36, /* casr */ + 44, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 4, /* extr_i */ + 4, /* exti_i */ 4, /* extr_ui */ + 16, /* exti_ui */ 8, /* bswapr_us */ - 16, /* bswapr_ui */ - 44, /* bswapr_ul */ + 4, /* bswapi_us */ + 16, /* bswapr_ui */ + 8, /* bswapi_ui */ + 44, /* bswapr_ul */ + 36, /* bswapi_ul */ 8, /* htonr_us */ - 16, /* htonr_ui */ - 44, /* htonr_ul */ + 8, /* htoni_us */ + 16, /* htonr_ui */ + 8, /* htoni_ui */ + 44, /* htonr_ul */ + 36, /* htoni_ul */ 8, /* ldr_c */ - 28, /* ldi_c */ + 28, /* ldi_c */ 4, /* ldr_uc */ - 24, /* ldi_uc */ + 24, /* ldi_uc */ 4, /* ldr_s */ - 24, /* ldi_s */ + 24, /* ldi_s */ 4, /* ldr_us */ - 24, /* ldi_us */ + 24, /* ldi_us */ 4, /* ldr_i */ - 24, /* ldi_i */ + 24, /* ldi_i */ 4, /* ldr_ui */ - 24, /* ldi_ui */ + 24, /* ldi_ui */ 4, /* ldr_l */ - 24, /* ldi_l */ + 24, /* ldi_l */ 8, /* ldxr_c */ - 16, /* ldxi_c */ + 16, /* ldxi_c */ 4, /* ldxr_uc */ - 12, /* ldxi_uc */ + 12, /* ldxi_uc */ 4, /* ldxr_s */ - 12, /* ldxi_s */ + 12, /* ldxi_s */ 4, /* ldxr_us */ - 12, /* ldxi_us */ + 12, /* ldxi_us */ 4, /* ldxr_i */ - 12, /* ldxi_i */ + 12, /* ldxi_i */ 4, /* ldxr_ui */ - 12, /* ldxi_ui */ + 12, /* ldxi_ui */ 4, /* ldxr_l */ - 12, /* ldxi_l */ + 12, /* ldxi_l */ 4, /* str_c */ - 24, /* sti_c */ + 24, /* sti_c */ 4, /* str_s */ - 24, /* sti_s */ + 24, /* sti_s */ 4, /* str_i */ - 24, /* sti_i */ + 24, /* sti_i */ 4, /* str_l */ - 24, /* sti_l */ + 24, /* sti_l */ 4, /* stxr_c */ - 12, /* stxi_c */ + 12, /* stxi_c */ 4, /* stxr_s */ - 12, /* stxi_s */ + 12, /* stxi_s */ 4, /* stxr_i */ - 12, /* stxi_i */ + 12, /* stxi_i */ 4, /* stxr_l */ - 12, /* stxi_l */ + 12, /* stxi_l */ 8, /* bltr */ 8, /* blti */ 8, /* bltr_u */ - 12, /* blti_u */ + 12, /* blti_u */ 8, /* bler */ 8, /* blei */ 8, /* bler_u */ - 12, /* blei_u */ + 12, /* blei_u */ 8, /* beqr */ - 44, /* beqi */ + 44, /* beqi */ 8, /* bger */ 8, /* bgei */ 8, /* bger_u */ @@ -1743,31 +1805,31 @@ 8, /* bgtr_u */ 8, /* bgti_u */ 8, /* bner */ - 44, /* 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 */ + 44, /* 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 */ - 32, /* calli */ + 12, /* callr */ + 32, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -1813,87 +1875,90 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 28, /* addi_f */ + 28, /* addi_f */ 4, /* subr_f */ - 28, /* subi_f */ - 28, /* rsbi_f */ + 28, /* subi_f */ + 28, /* rsbi_f */ 4, /* mulr_f */ - 28, /* muli_f */ + 28, /* muli_f */ 4, /* divr_f */ - 28, /* divi_f */ + 28, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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 */ + 0, /* sqrti_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 */ + 24, /* movi_f */ 4, /* ldr_f */ - 24, /* ldi_f */ + 24, /* ldi_f */ 4, /* ldxr_f */ - 12, /* ldxi_f */ + 12, /* ldxi_f */ 4, /* str_f */ - 24, /* sti_f */ + 24, /* sti_f */ 4, /* stxr_f */ - 12, /* stxi_f */ + 12, /* stxi_f */ 8, /* bltr_f */ - 32, /* blti_f */ - 12, /* bler_f */ - 36, /* blei_f */ + 32, /* blti_f */ + 12, /* bler_f */ + 36, /* blei_f */ 8, /* beqr_f */ - 32, /* beqi_f */ - 12, /* bger_f */ - 36, /* bgei_f */ + 32, /* beqi_f */ + 12, /* bger_f */ + 36, /* bgei_f */ 8, /* bgtr_f */ - 32, /* bgti_f */ + 32, /* bgti_f */ 8, /* bner_f */ - 32, /* bnei_f */ - 12, /* bunltr_f */ - 36, /* bunlti_f */ + 32, /* bnei_f */ + 12, /* bunltr_f */ + 36, /* bunlti_f */ 8, /* bunler_f */ - 32, /* bunlei_f */ - 12, /* buneqr_f */ - 36, /* buneqi_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 */ + 32, /* bungei_f */ + 12, /* bungtr_f */ + 36, /* bungti_f */ + 12, /* bltgtr_f */ + 36, /* bltgti_f */ 8, /* bordr_f */ - 32, /* bordi_f */ + 32, /* bordi_f */ 8, /* bunordr_f */ - 32, /* bunordi_f */ + 32, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -1904,95 +1969,101 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 28, /* addi_d */ + 28, /* addi_d */ 4, /* subr_d */ - 28, /* subi_d */ - 32, /* rsbi_d */ + 28, /* subi_d */ + 32, /* rsbi_d */ 4, /* mulr_d */ - 28, /* muli_d */ + 28, /* muli_d */ 4, /* divr_d */ - 28, /* divi_d */ + 28, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_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 */ + 0, /* sqrti_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 */ + 32, /* movi_d */ 4, /* ldr_d */ - 24, /* ldi_d */ + 24, /* ldi_d */ 4, /* ldxr_d */ - 12, /* ldxi_d */ + 12, /* ldxi_d */ 4, /* str_d */ - 24, /* sti_d */ + 24, /* sti_d */ 4, /* stxr_d */ - 12, /* stxi_d */ + 12, /* stxi_d */ 8, /* bltr_d */ - 32, /* blti_d */ - 12, /* bler_d */ - 36, /* blei_d */ + 32, /* blti_d */ + 12, /* bler_d */ + 36, /* blei_d */ 8, /* beqr_d */ - 40, /* beqi_d */ - 12, /* bger_d */ - 40, /* bgei_d */ + 40, /* beqi_d */ + 12, /* bger_d */ + 40, /* bgei_d */ 8, /* bgtr_d */ - 36, /* bgti_d */ + 36, /* bgti_d */ 8, /* bner_d */ - 36, /* bnei_d */ - 12, /* bunltr_d */ - 36, /* bunlti_d */ + 36, /* bnei_d */ + 12, /* bunltr_d */ + 36, /* bunlti_d */ 8, /* bunler_d */ - 32, /* bunlei_d */ - 12, /* buneqr_d */ - 36, /* buneqi_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 */ + 36, /* bungei_d */ + 12, /* bungtr_d */ + 40, /* bungti_d */ + 12, /* bltgtr_d */ + 40, /* bltgti_d */ 8, /* bordr_d */ - 36, /* bordi_d */ + 36, /* bordi_d */ 8, /* bunordr_d */ - 32, /* bunordi_d */ + 32, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 8, /* movr_w_f */ + 12, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 8, /* movr_w_d */ + 16, /* movi_w_d */ 8, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ @@ -2000,68 +2071,61 @@ 8, /* movr_d_w */ 8, /* movi_d_w */ 8, /* clor */ + 4, /* cloi */ 4, /* clzr */ - 32, /* ctor */ - 28, /* ctzr */ - 68, /* rbitr */ - 36, /* popcntr */ + 4, /* clzi */ + 32, /* ctor */ + 4, /* ctoi */ + 28, /* ctzr */ + 4, /* ctzi */ + 68, /* rbitr */ + 36, /* rbiti */ + 36, /* popcntr */ + 4, /* popcnti */ 4, /* lrotr */ 4, /* lroti */ - 12, /* rrotr */ + 12, /* rrotr */ 4, /* rroti */ 8, /* extr */ + 4, /* exti */ 4, /* extr_u */ + 4, /* exti_u */ 4, /* depr */ 8, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 4, /* exti_i */ - 16, /* exti_ui */ - 4, /* bswapi_us */ - 8, /* bswapi_ui */ - 36, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 36, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 36, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ - 56, /* qlshr */ + 56, /* qlshr */ 8, /* qlshi */ - 56, /* qlshr_u */ + 56, /* qlshr_u */ 8, /* qlshi_u */ - 56, /* qrshr */ + 56, /* qrshr */ 8, /* qrshi */ - 56, /* qrshr_u */ + 56, /* qrshr_u */ 8, /* qrshi_u */ - 292, /* unldr */ - 124, /* unldi */ - 292, /* unldr_u */ - 124, /* unldi_u */ - 168, /* unstr */ - 108, /* unsti */ - 296, /* unldr_x */ - 132, /* unldi_x */ - 176, /* unstr_x */ - 116, /* unsti_x */ - 12, /* movi_w_f */ - 16, /* movi_w_d */ - 0, /* movi_ww_d */ + 76, /* unldr */ + 68, /* unldi */ + 76, /* unldr_u */ + 68, /* unldi_u */ + 204, /* unstr */ + 168, /* unsti */ + 76, /* unldr_x */ + 72, /* unldi_x */ + 208, /* unstr_x */ + 172, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __BYTE_ORDER */ #endif /* __powerpc__ */ #endif /* __WORDSIZE */ diff --git a/lib/jit_riscv-sz.c b/lib/jit_riscv-sz.c index 1f90aa8..887f8dc 100644 --- a/lib/jit_riscv-sz.c +++ b/lib/jit_riscv-sz.c @@ -44,42 +44,42 @@ 8, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 16, /* addi */ - 12, /* addcr */ - 24, /* addci */ - 28, /* addxr */ - 28, /* addxi */ + 16, /* addi */ + 12, /* addcr */ + 24, /* addci */ + 28, /* addxr */ + 28, /* addxi */ 4, /* subr */ - 16, /* subi */ - 12, /* subcr */ - 24, /* subci */ - 28, /* subxr */ - 28, /* subxi */ - 20, /* rsbi */ + 16, /* subi */ + 12, /* subcr */ + 24, /* subci */ + 28, /* subxr */ + 28, /* subxi */ + 20, /* rsbi */ 4, /* mulr */ - 16, /* muli */ - 12, /* qmulr */ - 20, /* qmuli */ - 12, /* qmulr_u */ - 20, /* qmuli_u */ + 16, /* muli */ + 12, /* qmulr */ + 20, /* qmuli */ + 12, /* qmulr_u */ + 20, /* qmuli_u */ 4, /* divr */ - 16, /* divi */ + 16, /* divi */ 4, /* divr_u */ - 16, /* divi_u */ - 20, /* qdivr */ - 16, /* qdivi */ - 20, /* qdivr_u */ - 16, /* qdivi_u */ + 16, /* divi_u */ + 20, /* qdivr */ + 16, /* qdivi */ + 20, /* qdivr_u */ + 16, /* qdivi_u */ 4, /* remr */ - 16, /* remi */ + 16, /* remi */ 4, /* remr_u */ - 16, /* remi_u */ + 16, /* remi_u */ 4, /* andr */ - 16, /* andi */ + 16, /* andi */ 4, /* orr */ - 16, /* ori */ + 16, /* ori */ 4, /* xorr */ - 16, /* xori */ + 16, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -87,21 +87,23 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 4, /* comr */ + 4, /* comi */ 4, /* ltr */ 4, /* lti */ 4, /* ltr_u */ 4, /* lti_u */ 8, /* ler */ - 12, /* lei */ + 12, /* lei */ 8, /* ler_u */ - 12, /* lei_u */ - 12, /* eqr */ - 12, /* eqi */ + 12, /* lei_u */ + 12, /* eqr */ + 12, /* eqi */ 8, /* ger */ - 12, /* gei */ + 12, /* gei */ 8, /* ger_u */ - 12, /* gei_u */ + 12, /* gei_u */ 4, /* gtr */ 8, /* gti */ 4, /* gtr_u */ @@ -109,67 +111,79 @@ 8, /* ner */ 8, /* nei */ 4, /* movr */ - 12, /* movi */ - 12, /* movnr */ - 12, /* movzr */ - 28, /* casr */ - 40, /* casi */ + 12, /* movi */ + 12, /* movnr */ + 12, /* movzr */ + 28, /* casr */ + 40, /* casi */ 8, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 8, /* extr_s */ + 4, /* exti_s */ 8, /* extr_us */ + 8, /* exti_us */ 4, /* extr_i */ + 4, /* exti_i */ 8, /* extr_ui */ - 20, /* bswapr_us */ - 52, /* bswapr_ui */ + 12, /* exti_ui */ + 20, /* bswapr_us */ + 8, /* bswapi_us */ + 52, /* bswapr_ui */ + 8, /* bswapi_ui */ 116, /* bswapr_ul */ - 20, /* htonr_us */ - 52, /* htonr_ui */ + 12, /* bswapi_ul */ + 20, /* htonr_us */ + 8, /* htoni_us */ + 52, /* htonr_ui */ + 8, /* htoni_ui */ 116, /* htonr_ul */ + 12, /* htoni_ul */ 4, /* ldr_c */ - 16, /* ldi_c */ + 16, /* ldi_c */ 4, /* ldr_uc */ - 16, /* ldi_uc */ + 16, /* ldi_uc */ 4, /* ldr_s */ - 16, /* ldi_s */ + 16, /* ldi_s */ 4, /* ldr_us */ - 16, /* ldi_us */ + 16, /* ldi_us */ 4, /* ldr_i */ - 16, /* ldi_i */ + 16, /* ldi_i */ 4, /* ldr_ui */ - 16, /* ldi_ui */ + 16, /* ldi_ui */ 4, /* ldr_l */ - 16, /* ldi_l */ + 16, /* ldi_l */ 8, /* ldxr_c */ - 16, /* ldxi_c */ + 16, /* ldxi_c */ 8, /* ldxr_uc */ - 16, /* ldxi_uc */ + 16, /* ldxi_uc */ 8, /* ldxr_s */ - 16, /* ldxi_s */ + 16, /* ldxi_s */ 8, /* ldxr_us */ - 16, /* ldxi_us */ + 16, /* ldxi_us */ 8, /* ldxr_i */ - 16, /* ldxi_i */ + 16, /* ldxi_i */ 8, /* ldxr_ui */ - 16, /* ldxi_ui */ + 16, /* ldxi_ui */ 8, /* ldxr_l */ - 16, /* ldxi_l */ + 16, /* ldxi_l */ 4, /* str_c */ - 16, /* sti_c */ + 16, /* sti_c */ 4, /* str_s */ - 16, /* sti_s */ + 16, /* sti_s */ 4, /* str_i */ - 16, /* sti_i */ + 16, /* sti_i */ 4, /* str_l */ - 16, /* sti_l */ + 16, /* sti_l */ 8, /* stxr_c */ - 16, /* stxi_c */ + 16, /* stxi_c */ 8, /* stxr_s */ - 16, /* stxi_s */ + 16, /* stxi_s */ 8, /* stxr_i */ - 16, /* stxi_i */ + 16, /* stxi_i */ 8, /* stxr_l */ - 16, /* stxi_l */ + 16, /* stxi_l */ 4, /* bltr */ 8, /* blti */ 4, /* bltr_u */ @@ -179,7 +193,7 @@ 4, /* bler_u */ 8, /* blei_u */ 4, /* beqr */ - 16, /* beqi */ + 16, /* beqi */ 4, /* bger */ 8, /* bgei */ 4, /* bger_u */ @@ -189,31 +203,31 @@ 4, /* bgtr_u */ 8, /* bgti_u */ 4, /* bner */ - 16, /* bnei */ + 16, /* bnei */ 8, /* bmsr */ - 12, /* bmsi */ + 12, /* bmsi */ 8, /* bmcr */ - 12, /* bmci */ - 32, /* boaddr */ - 36, /* boaddi */ - 16, /* boaddr_u */ - 20, /* boaddi_u */ - 32, /* bxaddr */ - 36, /* bxaddi */ - 16, /* bxaddr_u */ - 20, /* bxaddi_u */ - 32, /* bosubr */ - 36, /* bosubi */ - 16, /* bosubr_u */ - 20, /* bosubi_u */ - 32, /* bxsubr */ - 36, /* bxsubi */ - 16, /* bxsubr_u */ - 20, /* bxsubi_u */ + 12, /* bmci */ + 32, /* boaddr */ + 36, /* boaddi */ + 16, /* boaddr_u */ + 20, /* boaddi_u */ + 32, /* bxaddr */ + 36, /* bxaddi */ + 16, /* bxaddr_u */ + 20, /* bxaddi_u */ + 32, /* bosubr */ + 36, /* bosubi */ + 16, /* bosubr_u */ + 20, /* bosubi_u */ + 32, /* bxsubr */ + 36, /* bxsubi */ + 16, /* bxsubr_u */ + 20, /* bxsubi_u */ 4, /* jmpr */ - 16, /* jmpi */ + 16, /* jmpi */ 4, /* callr */ - 16, /* calli */ + 16, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -259,45 +273,48 @@ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 12, /* addi_f */ + 12, /* addi_f */ 4, /* subr_f */ - 12, /* subi_f */ - 12, /* rsbi_f */ + 12, /* subi_f */ + 12, /* rsbi_f */ 4, /* mulr_f */ - 12, /* muli_f */ + 12, /* muli_f */ 4, /* divr_f */ - 12, /* divi_f */ + 12, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 4, /* ltr_f */ - 12, /* lti_f */ + 12, /* lti_f */ 4, /* ler_f */ - 12, /* lei_f */ + 12, /* lei_f */ 4, /* eqr_f */ - 12, /* eqi_f */ + 12, /* eqi_f */ 4, /* ger_f */ - 12, /* gei_f */ + 12, /* gei_f */ 4, /* gtr_f */ - 12, /* gti_f */ + 12, /* gti_f */ 8, /* ner_f */ - 16, /* nei_f */ - 28, /* unltr_f */ - 36, /* unlti_f */ - 28, /* unler_f */ - 36, /* unlei_f */ - 28, /* uneqr_f */ - 36, /* uneqi_f */ - 28, /* unger_f */ - 36, /* ungei_f */ - 28, /* ungtr_f */ - 36, /* ungti_f */ - 40, /* ltgtr_f */ - 48, /* ltgti_f */ - 28, /* ordr_f */ - 36, /* ordi_f */ - 20, /* unordr_f */ - 28, /* unordi_f */ + 16, /* nei_f */ + 28, /* unltr_f */ + 36, /* unlti_f */ + 28, /* unler_f */ + 36, /* unlei_f */ + 28, /* uneqr_f */ + 36, /* uneqi_f */ + 28, /* unger_f */ + 36, /* ungei_f */ + 28, /* ungtr_f */ + 36, /* ungti_f */ + 40, /* ltgtr_f */ + 48, /* ltgti_f */ + 28, /* ordr_f */ + 36, /* ordi_f */ + 20, /* unordr_f */ + 28, /* unordi_f */ 4, /* truncr_f_i */ 4, /* truncr_f_l */ 4, /* extr_f */ @@ -305,41 +322,41 @@ 4, /* movr_f */ 8, /* movi_f */ 4, /* ldr_f */ - 16, /* ldi_f */ + 16, /* ldi_f */ 8, /* ldxr_f */ - 16, /* ldxi_f */ + 16, /* ldxi_f */ 4, /* str_f */ - 16, /* sti_f */ + 16, /* sti_f */ 8, /* stxr_f */ - 16, /* stxi_f */ + 16, /* stxi_f */ 8, /* bltr_f */ - 16, /* blti_f */ + 16, /* blti_f */ 8, /* bler_f */ - 16, /* blei_f */ + 16, /* blei_f */ 8, /* beqr_f */ - 16, /* beqi_f */ + 16, /* beqi_f */ 8, /* bger_f */ - 16, /* bgei_f */ + 16, /* bgei_f */ 8, /* bgtr_f */ - 16, /* bgti_f */ + 16, /* bgti_f */ 8, /* bner_f */ - 16, /* bnei_f */ - 32, /* bunltr_f */ - 40, /* bunlti_f */ - 32, /* bunler_f */ - 40, /* bunlei_f */ - 32, /* buneqr_f */ - 40, /* buneqi_f */ - 32, /* bunger_f */ - 40, /* bungei_f */ - 32, /* bungtr_f */ - 40, /* bungti_f */ - 44, /* bltgtr_f */ - 52, /* bltgti_f */ - 32, /* bordr_f */ - 40, /* bordi_f */ - 24, /* bunordr_f */ - 32, /* bunordi_f */ + 16, /* bnei_f */ + 32, /* bunltr_f */ + 40, /* bunlti_f */ + 32, /* bunler_f */ + 40, /* bunlei_f */ + 32, /* buneqr_f */ + 40, /* buneqi_f */ + 32, /* bunger_f */ + 40, /* bungei_f */ + 32, /* bungtr_f */ + 40, /* bungti_f */ + 44, /* bltgtr_f */ + 52, /* bltgti_f */ + 32, /* bordr_f */ + 40, /* bordi_f */ + 24, /* bunordr_f */ + 32, /* bunordi_f */ 0, /* pushargr_f */ 0, /* pushargi_f */ 0, /* retr_f */ @@ -350,162 +367,161 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 20, /* addi_d */ + 20, /* addi_d */ 4, /* subr_d */ - 20, /* subi_d */ - 20, /* rsbi_d */ + 20, /* subi_d */ + 20, /* rsbi_d */ 4, /* mulr_d */ - 20, /* muli_d */ + 20, /* muli_d */ 4, /* divr_d */ - 20, /* divi_d */ + 20, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 4, /* ltr_d */ - 20, /* lti_d */ + 20, /* lti_d */ 4, /* ler_d */ - 20, /* lei_d */ + 20, /* lei_d */ 4, /* eqr_d */ - 20, /* eqi_d */ + 20, /* eqi_d */ 4, /* ger_d */ - 20, /* gei_d */ + 20, /* gei_d */ 4, /* gtr_d */ - 20, /* gti_d */ + 20, /* gti_d */ 8, /* ner_d */ - 24, /* nei_d */ - 28, /* unltr_d */ - 44, /* unlti_d */ - 28, /* unler_d */ - 44, /* unlei_d */ - 28, /* uneqr_d */ - 44, /* uneqi_d */ - 28, /* unger_d */ - 44, /* ungei_d */ - 28, /* ungtr_d */ - 44, /* ungti_d */ - 40, /* ltgtr_d */ - 56, /* ltgti_d */ - 28, /* ordr_d */ - 44, /* ordi_d */ - 20, /* unordr_d */ - 36, /* unordi_d */ + 24, /* nei_d */ + 28, /* unltr_d */ + 44, /* unlti_d */ + 28, /* unler_d */ + 44, /* unlei_d */ + 28, /* uneqr_d */ + 44, /* uneqi_d */ + 28, /* unger_d */ + 44, /* ungei_d */ + 28, /* ungtr_d */ + 44, /* ungti_d */ + 40, /* ltgtr_d */ + 56, /* ltgti_d */ + 28, /* ordr_d */ + 44, /* ordi_d */ + 20, /* unordr_d */ + 36, /* unordi_d */ 4, /* truncr_d_i */ 4, /* truncr_d_l */ 4, /* extr_d */ 4, /* extr_f_d */ 4, /* movr_d */ - 16, /* movi_d */ + 16, /* movi_d */ 4, /* ldr_d */ - 16, /* ldi_d */ + 16, /* ldi_d */ 8, /* ldxr_d */ - 16, /* ldxi_d */ + 16, /* ldxi_d */ 4, /* str_d */ - 16, /* sti_d */ + 16, /* sti_d */ 8, /* stxr_d */ - 16, /* stxi_d */ + 16, /* stxi_d */ 8, /* bltr_d */ - 24, /* blti_d */ + 24, /* blti_d */ 8, /* bler_d */ - 24, /* blei_d */ + 24, /* blei_d */ 8, /* beqr_d */ - 24, /* beqi_d */ + 24, /* beqi_d */ 8, /* bger_d */ - 24, /* bgei_d */ + 24, /* bgei_d */ 8, /* bgtr_d */ - 24, /* bgti_d */ + 24, /* bgti_d */ 8, /* bner_d */ - 24, /* bnei_d */ - 32, /* bunltr_d */ - 48, /* bunlti_d */ - 32, /* bunler_d */ - 48, /* bunlei_d */ - 32, /* buneqr_d */ - 48, /* buneqi_d */ - 32, /* bunger_d */ - 48, /* bungei_d */ - 32, /* bungtr_d */ - 48, /* bungti_d */ - 44, /* bltgtr_d */ - 60, /* bltgti_d */ - 32, /* bordr_d */ - 48, /* bordi_d */ - 24, /* bunordr_d */ - 40, /* bunordi_d */ + 24, /* bnei_d */ + 32, /* bunltr_d */ + 48, /* bunlti_d */ + 32, /* bunler_d */ + 48, /* bunlei_d */ + 32, /* buneqr_d */ + 48, /* buneqi_d */ + 32, /* bunger_d */ + 48, /* bungei_d */ + 32, /* bungtr_d */ + 48, /* bungti_d */ + 44, /* bltgtr_d */ + 60, /* bltgti_d */ + 32, /* bordr_d */ + 48, /* bordi_d */ + 24, /* bunordr_d */ + 40, /* bunordi_d */ 0, /* pushargr_d */ 0, /* pushargi_d */ 0, /* retr_d */ 0, /* reti_d */ 0, /* retval_d */ 4, /* movr_w_f */ + 8, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 4, /* movr_w_d */ + 16, /* movi_w_d */ 4, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ 0, /* movi_d_ww */ 4, /* movr_d_w */ - 12, /* movi_d_w */ - 84, /* clor */ - 64, /* clzr */ - 56, /* ctor */ - 36, /* ctzr */ - 68, /* rbitr */ - 64, /* popcntr */ - 20, /* lrotr */ - 12, /* lroti */ - 20, /* rrotr */ - 12, /* rroti */ - 8, /* extr */ - 20, /* extr_u */ - 40, /* depr */ - 20, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 4, /* exti_i */ - 12, /* exti_ui */ - 8, /* bswapi_us */ - 8, /* bswapi_ui */ - 12, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 12, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ + 12, /* movi_d_w */ + 84, /* clor */ 4, /* cloi */ + 64, /* clzr */ 4, /* clzi */ + 56, /* ctor */ 4, /* ctoi */ + 36, /* ctzr */ 4, /* ctzi */ - 12, /* rbiti */ + 68, /* rbitr */ + 12, /* rbiti */ + 64, /* popcntr */ 4, /* popcnti */ + 20, /* lrotr */ + 12, /* lroti */ + 20, /* rrotr */ + 12, /* rroti */ + 8, /* extr */ 4, /* exti */ + 20, /* extr_u */ 4, /* exti_u */ - 56, /* qlshr */ + 40, /* depr */ + 20, /* depi */ + 56, /* qlshr */ 8, /* qlshi */ - 56, /* qlshr_u */ + 56, /* qlshr_u */ 8, /* qlshi_u */ - 56, /* qrshr */ + 56, /* qrshr */ 8, /* qrshi */ - 56, /* qrshr_u */ + 56, /* qrshr_u */ 8, /* qrshi_u */ - 24, /* unldr */ - 44, /* unldi */ - 24, /* unldr_u */ - 44, /* unldi_u */ - 20, /* unstr */ - 56, /* unsti */ + 24, /* unldr */ + 44, /* unldi */ + 24, /* unldr_u */ + 44, /* unldi_u */ + 20, /* unstr */ + 56, /* unsti */ 4, /* unldr_x */ - 16, /* unldi_x */ + 16, /* unldi_x */ 4, /* unstr_x */ - 20, /* unsti_x */ - 8, /* movi_w_f */ - 16, /* movi_w_d */ - 0, /* movi_ww_d */ + 20, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_s390-fpu.c b/lib/jit_s390-fpu.c index db848d9..b43f4f6 100644 --- a/lib/jit_s390-fpu.c +++ b/lib/jit_s390-fpu.c @@ -997,12 +997,13 @@ static void _fmar_f(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) - MAER(r0, r2, r1); + MAEBR(r0, r2, r1); else { t0 = jit_get_reg(jit_class_fpr); movr_f(rn(t0), r3); - MAER(rn(t0), r2, r1); + MAEBR(rn(t0), r2, r1); movr_f(r0, rn(t0)); jit_unget_reg(t0); } @@ -1012,12 +1013,13 @@ static void _fmsr_f(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) - MSER(r0, r2, r1); + MSEBR(r0, r2, r1); else { t0 = jit_get_reg(jit_class_fpr); movr_f(rn(t0), r3); - MSER(rn(t0), r2, r1); + MSEBR(rn(t0), r2, r1); movr_f(r0, rn(t0)); jit_unget_reg(t0); } @@ -1027,14 +1029,15 @@ static void _fnmar_f(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) { - MAER(r0, r2, r1); + MAEBR(r0, r2, r1); negr_f(r0, r0); } else { t0 = jit_get_reg(jit_class_fpr); movr_f(rn(t0), r3); - MAER(rn(t0), r2, r1); + MAEBR(rn(t0), r2, r1); negr_f(r0, rn(t0)); jit_unget_reg(t0); } @@ -1044,14 +1047,15 @@ static void _fnmsr_f(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) { - MSER(r0, r2, r1); + MSEBR(r0, r2, r1); negr_f(r0, r0); } else { t0 = jit_get_reg(jit_class_fpr); movr_f(rn(t0), r3); - MSER(rn(t0), r2, r1); + MSEBR(rn(t0), r2, r1); negr_f(r0, rn(t0)); jit_unget_reg(t0); } @@ -1061,12 +1065,13 @@ static void _fmar_d(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) - MADR(r0, r2, r1); + MADBR(r0, r2, r1); else { t0 = jit_get_reg(jit_class_fpr); movr_d(rn(t0), r3); - MADR(rn(t0), r2, r1); + MADBR(rn(t0), r2, r1); movr_d(r0, rn(t0)); jit_unget_reg(t0); } @@ -1076,12 +1081,13 @@ static void _fmsr_d(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) - MSDR(r0, r2, r1); + MSDBR(r0, r2, r1); else { t0 = jit_get_reg(jit_class_fpr); movr_d(rn(t0), r3); - MSDR(rn(t0), r2, r1); + MSDBR(rn(t0), r2, r1); movr_d(r0, rn(t0)); jit_unget_reg(t0); } @@ -1091,14 +1097,15 @@ static void _fnmar_d(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) { - MADR(r0, r2, r1); + MADBR(r0, r2, r1); negr_d(r0, r0); } else { t0 = jit_get_reg(jit_class_fpr); movr_f(rn(t0), r3); - MADR(rn(t0), r2, r1); + MADBR(rn(t0), r2, r1); negr_d(r0, rn(t0)); jit_unget_reg(t0); } @@ -1108,14 +1115,15 @@ static void _fnmsr_d(jit_state_t* _jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) { + jit_int32_t t0; if (r0 == r3) { - MSDR(r0, r2, r1); + MSDBR(r0, r2, r1); negr_d(r0, r0); } else { t0 = jit_get_reg(jit_class_fpr); movr_d(rn(t0), r3); - MSDR(rn(t0), r2, r1); + MSDBR(rn(t0), r2, r1); negr_d(r0, rn(t0)); jit_unget_reg(t0); } diff --git a/lib/jit_s390-sz.c b/lib/jit_s390-sz.c index e713364..c71b040 100644 --- a/lib/jit_s390-sz.c +++ b/lib/jit_s390-sz.c @@ -1,5 +1,5 @@ #if __WORDSIZE == 32 -#define JIT_INSTR_MAX 288 +#define JIT_INSTR_MAX 630 0, /* data */ 0, /* live */ 4, /* align */ @@ -87,7 +87,9 @@ 8, /* rshr_u */ 6, /* rshi_u */ 2, /* negr */ + 4, /* negi */ 8, /* comr */ + 4, /* comi */ 16, /* ltr */ 20, /* lti */ 16, /* ltr_u */ @@ -115,17 +117,29 @@ 22, /* casr */ 28, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 12, /* bswapr_us */ + 4, /* bswapi_us */ 4, /* bswapr_ui */ + 6, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 2, /* htonr_ui */ + 6, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 6, /* ldr_c */ 12, /* ldi_c */ 6, /* ldr_uc */ @@ -268,8 +282,11 @@ 8, /* divr_f */ 24, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 16, /* ltr_f */ 36, /* lti_f */ 16, /* ler_f */ @@ -359,8 +376,11 @@ 8, /* divr_d */ 34, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 16, /* ltr_d */ 46, /* lti_d */ 16, /* ler_d */ @@ -437,8 +457,11 @@ 0, /* reti_d */ 0, /* retval_d */ 12, /* movr_w_f */ + 18, /* movi_w_f */ 18, /* movr_ww_d */ + 28, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 12, /* movr_f_w */ 6, /* movi_f_w */ 18, /* movr_d_ww */ @@ -446,47 +469,27 @@ 0, /* movr_d_w */ 0, /* movi_d_w */ 36, /* clor */ + 4, /* cloi */ 28, /* clzr */ + 4, /* clzi */ 62, /* ctor */ + 4, /* ctoi */ 54, /* ctzr */ + 4, /* ctzi */ 64, /* rbitr */ + 6, /* rbiti */ 60, /* popcntr */ + 4, /* popcnti */ 6, /* lrotr */ 6, /* lroti */ 16, /* rrotr */ 6, /* rroti */ 10, /* extr */ + 4, /* exti */ 14, /* extr_u */ + 4, /* exti_u */ 24, /* depr */ 28, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 4, /* bswapi_us */ - 6, /* bswapi_ui */ - 0, /* bswapi_ul */ - 8, /* htoni_us */ - 6, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 6, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 68, /* qlshr */ 12, /* qlshi */ 66, /* qlshr_u */ @@ -495,23 +498,36 @@ 12, /* qrshi */ 66, /* qrshr_u */ 12, /* qrshi_u */ - 132, /* unldr */ - 36, /* unldi */ - 132, /* unldr_u */ - 36, /* unldi_u */ - 84, /* unstr */ - 42, /* unsti */ - 288, /* unldr_x */ - 90, /* unldi_x */ - 194, /* unstr_x */ - 102, /* unsti_x */ - 18, /* movi_w_f */ - 0, /* movi_w_d */ - 28, /* movi_ww_d */ + 86, /* unldr */ + 38, /* unldi */ + 86, /* unldr_u */ + 38, /* unldi_u */ + 238, /* unstr */ + 100, /* unsti */ + 200, /* unldr_x */ + 86, /* unldi_x */ + 630, /* unstr_x */ + 294, /* unsti_x */ + 8, /* fmar_f */ + 0, /* fmai_f */ + 8, /* fmsr_f */ + 0, /* fmsi_f */ + 8, /* fmar_d */ + 0, /* fmai_d */ + 8, /* fmsr_d */ + 0, /* fmsi_d */ + 10, /* fnmar_f */ + 0, /* fnmai_f */ + 10, /* fnmsr_f */ + 0, /* fnmsi_f */ + 10, /* fnmar_d */ + 0, /* fnmai_d */ + 10, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ #if __WORDSIZE == 64 -#define JIT_INSTR_MAX 440 +#define JIT_INSTR_MAX 364 0, /* data */ 0, /* live */ 20, /* align */ @@ -599,7 +615,9 @@ 6, /* rshr_u */ 6, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 12, /* comr */ + 4, /* comi */ 20, /* ltr */ 24, /* lti */ 20, /* ltr_u */ @@ -627,17 +645,29 @@ 30, /* casr */ 42, /* casi */ 4, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 4, /* extr_s */ + 4, /* exti_s */ 4, /* extr_us */ + 8, /* exti_us */ 4, /* extr_i */ + 16, /* exti_i */ 4, /* extr_ui */ + 8, /* exti_ui */ 12, /* bswapr_us */ + 4, /* bswapi_us */ 8, /* bswapr_ui */ + 12, /* bswapi_ui */ 4, /* bswapr_ul */ + 16, /* bswapi_ul */ 4, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 12, /* htoni_ui */ 4, /* htonr_ul */ + 16, /* htoni_ul */ 6, /* ldr_c */ 18, /* ldi_c */ 6, /* ldr_uc */ @@ -780,8 +810,11 @@ 8, /* divr_f */ 26, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_f */ 4, /* sqrtr_f */ + 0, /* sqrti_f */ 16, /* ltr_f */ 36, /* lti_f */ 16, /* ler_f */ @@ -871,8 +904,11 @@ 8, /* divr_d */ 26, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_d */ 4, /* sqrtr_d */ + 0, /* sqrti_d */ 16, /* ltr_d */ 36, /* lti_d */ 16, /* ler_d */ @@ -949,8 +985,11 @@ 0, /* reti_d */ 0, /* retval_d */ 12, /* movr_w_f */ + 20, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 12, /* movr_w_d */ + 20, /* movi_w_d */ 12, /* movr_f_w */ 8, /* movi_f_w */ 0, /* movr_d_ww */ @@ -958,47 +997,27 @@ 12, /* movr_d_w */ 8, /* movi_d_w */ 24, /* clor */ + 4, /* cloi */ 12, /* clzr */ + 4, /* clzi */ 62, /* ctor */ + 4, /* ctoi */ 50, /* ctzr */ + 4, /* ctzi */ 78, /* rbitr */ + 16, /* rbiti */ 72, /* popcntr */ + 4, /* popcnti */ 6, /* lrotr */ 6, /* lroti */ 16, /* rrotr */ 6, /* rroti */ 12, /* extr */ + 4, /* exti */ 22, /* extr_u */ + 4, /* exti_u */ 46, /* depr */ 50, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 16, /* exti_i */ - 8, /* exti_ui */ - 4, /* bswapi_us */ - 12, /* bswapi_ui */ - 16, /* bswapi_ul */ - 8, /* htoni_us */ - 12, /* htoni_ui */ - 16, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 4, /* cloi */ - 4, /* clzi */ - 4, /* ctoi */ - 4, /* ctzi */ - 16, /* rbiti */ - 4, /* popcnti */ - 4, /* exti */ - 4, /* exti_u */ 76, /* qlshr */ 12, /* qlshi */ 74, /* qlshr_u */ @@ -1007,17 +1026,30 @@ 12, /* qrshi */ 74, /* qrshr_u */ 12, /* qrshi_u */ - 432, /* unldr */ - 102, /* unldi */ - 432, /* unldr_u */ - 102, /* unldi_u */ - 252, /* unstr */ - 82, /* unsti */ - 440, /* unldr_x */ - 114, /* unldi_x */ - 264, /* unstr_x */ - 94, /* unsti_x */ - 20, /* movi_w_f */ - 20, /* movi_w_d */ - 0, /* movi_ww_d */ + 122, /* unldr */ + 58, /* unldi */ + 122, /* unldr_u */ + 58, /* unldi_u */ + 296, /* unstr */ + 150, /* unsti */ + 130, /* unldr_x */ + 70, /* unldi_x */ + 364, /* unstr_x */ + 194, /* unsti_x */ + 8, /* fmar_f */ + 0, /* fmai_f */ + 8, /* fmsr_f */ + 0, /* fmsi_f */ + 8, /* fmar_d */ + 0, /* fmai_d */ + 8, /* fmsr_d */ + 0, /* fmsi_d */ + 10, /* fnmar_f */ + 0, /* fnmai_f */ + 10, /* fnmsr_f */ + 0, /* fnmsi_f */ + 10, /* fnmar_d */ + 0, /* fnmai_d */ + 10, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_sparc-sz.c b/lib/jit_sparc-sz.c index 0dd9c64..992e5b8 100644 --- a/lib/jit_sparc-sz.c +++ b/lib/jit_sparc-sz.c @@ -1,5 +1,5 @@ #if __WORDSIZE == 32 -#define JIT_INSTR_MAX 260 +#define JIT_INSTR_MAX 440 0, /* data */ 0, /* live */ 0, /* align */ @@ -9,7 +9,7 @@ 0, /* #name */ 0, /* #note */ 0, /* label */ - 36, /* prolog */ + 36, /* prolog */ 0, /* ellipsis */ 0, /* va_push */ 0, /* allocai */ @@ -41,45 +41,45 @@ 0, /* putargi_l */ 4, /* va_start */ 8, /* va_arg */ - 12, /* va_arg_d */ + 12, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 12, /* addi */ + 12, /* addi */ 4, /* addcr */ - 12, /* addci */ + 12, /* addci */ 4, /* addxr */ 4, /* addxi */ 4, /* subr */ - 12, /* subi */ + 12, /* subi */ 4, /* subcr */ - 12, /* subci */ + 12, /* subci */ 4, /* subxr */ 4, /* subxi */ - 16, /* rsbi */ + 16, /* rsbi */ 4, /* mulr */ - 12, /* muli */ + 12, /* muli */ 8, /* qmulr */ - 16, /* qmuli */ + 16, /* qmuli */ 8, /* qmulr_u */ - 16, /* qmuli_u */ - 12, /* divr */ - 20, /* divi */ + 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 */ + 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 */ + 12, /* andi */ 4, /* orr */ - 12, /* ori */ + 12, /* ori */ 4, /* xorr */ - 12, /* xori */ + 12, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -87,55 +87,69 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 16, /* movnr */ - 16, /* movzr */ - 24, /* casr */ - 32, /* casi */ + 16, /* movnr */ + 16, /* movzr */ + 24, /* casr */ + 32, /* casi */ 8, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 8, /* extr_s */ + 4, /* exti_s */ 8, /* extr_us */ + 8, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ - 20, /* bswapr_us */ - 52, /* bswapr_ui */ + 0, /* exti_ui */ + 20, /* bswapr_us */ + 8, /* bswapi_us */ + 52, /* bswapr_ui */ + 8, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 8, /* htonr_us */ + 8, /* htoni_us */ 4, /* htonr_ui */ + 8, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 4, /* ldr_c */ - 12, /* ldi_c */ + 12, /* ldi_c */ 4, /* ldr_uc */ - 12, /* ldi_uc */ + 12, /* ldi_uc */ 4, /* ldr_s */ - 12, /* ldi_s */ + 12, /* ldi_s */ 4, /* ldr_us */ - 12, /* ldi_us */ + 12, /* ldi_us */ 4, /* ldr_i */ - 12, /* ldi_i */ + 12, /* ldi_i */ 0, /* ldr_ui */ 0, /* ldi_ui */ 0, /* ldr_l */ @@ -155,11 +169,11 @@ 0, /* ldxr_l */ 0, /* ldxi_l */ 4, /* str_c */ - 12, /* sti_c */ + 12, /* sti_c */ 4, /* str_s */ - 12, /* sti_s */ + 12, /* sti_s */ 4, /* str_i */ - 12, /* sti_i */ + 12, /* sti_i */ 0, /* str_l */ 0, /* sti_l */ 4, /* stxr_c */ @@ -170,46 +184,46 @@ 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 */ + 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 */ 8, /* jmpi */ 8, /* callr */ @@ -253,93 +267,96 @@ 0, /* retval_i */ 0, /* retval_ui */ 0, /* retval_l */ - 44, /* epilog */ + 44, /* epilog */ 0, /* arg_f */ 0, /* getarg_f */ 0, /* putargr_f */ 0, /* putargi_f */ 4, /* addr_f */ - 16, /* addi_f */ + 16, /* addi_f */ 4, /* subr_f */ - 16, /* subi_f */ - 16, /* rsbi_f */ + 16, /* subi_f */ + 16, /* rsbi_f */ 4, /* mulr_f */ - 16, /* muli_f */ + 16, /* muli_f */ 4, /* divr_f */ - 16, /* divi_f */ + 16, /* divi_f */ 4, /* negr_f */ + 0, /* negi_f */ 4, /* absr_f */ + 0, /* absi_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, /* sqrti_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 */ + 12, /* extr_f */ 4, /* extr_d_f */ 4, /* movr_f */ - 16, /* movi_f */ + 16, /* movi_f */ 4, /* ldr_f */ - 12, /* ldi_f */ + 12, /* ldi_f */ 4, /* ldxr_f */ 8, /* ldxi_f */ 4, /* str_f */ - 12, /* sti_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 */ + 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 */ @@ -350,178 +367,177 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 24, /* addi_d */ + 24, /* addi_d */ 4, /* subr_d */ - 24, /* subi_d */ - 24, /* rsbi_d */ + 24, /* subi_d */ + 24, /* rsbi_d */ 4, /* mulr_d */ - 24, /* muli_d */ + 24, /* muli_d */ 4, /* divr_d */ - 24, /* divi_d */ + 24, /* divi_d */ 8, /* negr_d */ + 0, /* negi_d */ 8, /* absr_d */ + 0, /* absi_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, /* sqrti_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 */ + 16, /* extr_d */ 4, /* extr_f_d */ 8, /* movr_d */ - 24, /* movi_d */ + 24, /* movi_d */ 4, /* ldr_d */ - 12, /* ldi_d */ + 12, /* ldi_d */ 4, /* ldxr_d */ 8, /* ldxi_d */ 4, /* str_d */ - 12, /* sti_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 */ + 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 */ 8, /* movr_w_f */ - 12, /* movr_ww_d */ + 12, /* movi_w_f */ + 12, /* movr_ww_d */ + 20, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 8, /* movr_f_w */ 4, /* movi_f_w */ - 12, /* movr_d_ww */ + 12, /* movr_d_ww */ 8, /* movi_d_ww */ 0, /* movr_d_w */ 0, /* movi_d_w */ - 92, /* clor */ - 64, /* clzr */ - 68, /* ctor */ - 40, /* ctzr */ - 60, /* rbitr */ - 56, /* popcntr */ - 20, /* lrotr */ - 12, /* lroti */ - 20, /* rrotr */ - 12, /* rroti */ - 8, /* extr */ - 16, /* extr_u */ - 32, /* depr */ - 20, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 8, /* bswapi_us */ - 8, /* bswapi_ui */ - 0, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ + 92, /* clor */ 4, /* cloi */ + 64, /* clzr */ 4, /* clzi */ + 68, /* ctor */ 4, /* ctoi */ + 40, /* ctzr */ 4, /* ctzi */ + 60, /* rbitr */ 8, /* rbiti */ + 56, /* popcntr */ 4, /* popcnti */ + 20, /* lrotr */ + 12, /* lroti */ + 20, /* rrotr */ + 12, /* rroti */ + 8, /* extr */ 4, /* exti */ + 16, /* extr_u */ 4, /* exti_u */ - 72, /* qlshr */ + 32, /* depr */ + 20, /* depi */ + 72, /* qlshr */ 8, /* qlshi */ - 72, /* qlshr_u */ + 72, /* qlshr_u */ 8, /* qlshi_u */ - 72, /* qrshr */ + 72, /* qrshr */ 8, /* qrshi */ - 72, /* qrshr_u */ + 72, /* qrshr_u */ 8, /* qrshi_u */ - 124, /* unldr */ - 36, /* unldi */ - 124, /* unldr_u */ - 36, /* unldi_u */ - 84, /* unstr */ - 44, /* unsti */ - 260, /* unldr_x */ - 84, /* unldi_x */ - 184, /* unstr_x */ - 100, /* unsti_x */ - 12, /* movi_w_f */ - 0, /* movi_w_d */ - 20, /* movi_ww_d */ + 76, /* unldr */ + 40, /* unldi */ + 76, /* unldr_u */ + 40, /* unldi_u */ + 212, /* unstr */ + 96, /* unsti */ + 156, /* unldr_x */ + 84, /* unldi_x */ + 440, /* unstr_x */ + 196, /* unsti_x */ + 4, /* fmar_f */ + 0, /* fmai_f */ + 4, /* fmsr_f */ + 0, /* fmsi_f */ + 4, /* fmar_d */ + 0, /* fmai_d */ + 4, /* fmsr_d */ + 0, /* fmsi_d */ + 4, /* fnmar_f */ + 0, /* fnmai_f */ + 4, /* fnmsr_f */ + 0, /* fnmsi_f */ + 4, /* fnmar_d */ + 0, /* fnmai_d */ + 4, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ #if __WORDSIZE == 64 -#define JIT_INSTR_MAX 328 +#define JIT_INSTR_MAX 240 0, /* data */ 0, /* live */ - 24, /* align */ + 24, /* align */ 0, /* save */ 0, /* load */ 4, /* skip */ 0, /* #name */ 0, /* #note */ 4, /* label */ - 36, /* prolog */ + 36, /* prolog */ 0, /* ellipsis */ 0, /* va_push */ 0, /* allocai */ @@ -556,42 +572,42 @@ 8, /* va_arg_d */ 0, /* va_end */ 4, /* addr */ - 28, /* addi */ - 24, /* addcr */ - 48, /* addci */ - 52, /* addxr */ - 52, /* addxi */ + 28, /* addi */ + 24, /* addcr */ + 48, /* addci */ + 52, /* addxr */ + 52, /* addxi */ 4, /* subr */ - 28, /* subi */ - 24, /* subcr */ - 48, /* subci */ - 52, /* subxr */ - 52, /* subxi */ - 32, /* rsbi */ + 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 */ + 28, /* muli */ + 48, /* qmulr */ + 64, /* qmuli */ + 48, /* qmulr_u */ + 64, /* qmuli_u */ 4, /* divr */ - 28, /* divi */ + 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 */ + 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 */ + 28, /* andi */ 4, /* orr */ - 28, /* ori */ + 28, /* ori */ 4, /* xorr */ - 28, /* xori */ + 28, /* xori */ 4, /* lshr */ 4, /* lshi */ 4, /* rshr */ @@ -599,133 +615,147 @@ 4, /* rshr_u */ 4, /* rshi_u */ 4, /* negr */ + 4, /* negi */ 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, /* comi */ + 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 */ - 16, /* movnr */ - 16, /* movzr */ - 24, /* casr */ - 44, /* casi */ + 24, /* movi */ + 16, /* movnr */ + 16, /* movzr */ + 24, /* casr */ + 44, /* casi */ 8, /* extr_c */ + 4, /* exti_c */ 4, /* extr_uc */ + 4, /* exti_uc */ 8, /* extr_s */ + 4, /* exti_s */ 8, /* extr_us */ + 8, /* exti_us */ 8, /* extr_i */ + 20, /* exti_i */ 8, /* extr_ui */ - 20, /* bswapr_us */ - 52, /* bswapr_ui */ + 4, /* exti_ui */ + 20, /* bswapr_us */ + 8, /* bswapi_us */ + 52, /* bswapr_ui */ + 8, /* bswapi_ui */ 116, /* bswapr_ul */ + 24, /* bswapi_ul */ 8, /* htonr_us */ + 8, /* htoni_us */ 8, /* htonr_ui */ + 8, /* htoni_ui */ 4, /* htonr_ul */ + 24, /* htoni_ul */ 4, /* ldr_c */ - 24, /* ldi_c */ + 24, /* ldi_c */ 4, /* ldr_uc */ - 28, /* ldi_uc */ + 28, /* ldi_uc */ 4, /* ldr_s */ - 28, /* ldi_s */ + 28, /* ldi_s */ 4, /* ldr_us */ - 28, /* ldi_us */ + 28, /* ldi_us */ 4, /* ldr_i */ - 28, /* ldi_i */ + 28, /* ldi_i */ 4, /* ldr_ui */ - 28, /* ldi_ui */ + 28, /* ldi_ui */ 4, /* ldr_l */ - 28, /* ldi_l */ + 28, /* ldi_l */ 4, /* ldxr_c */ - 24, /* ldxi_c */ + 24, /* ldxi_c */ 4, /* ldxr_uc */ - 24, /* ldxi_uc */ + 24, /* ldxi_uc */ 4, /* ldxr_s */ - 24, /* ldxi_s */ + 24, /* ldxi_s */ 4, /* ldxr_us */ - 24, /* ldxi_us */ + 24, /* ldxi_us */ 4, /* ldxr_i */ - 24, /* ldxi_i */ + 24, /* ldxi_i */ 4, /* ldxr_ui */ - 24, /* ldxi_ui */ + 24, /* ldxi_ui */ 4, /* ldxr_l */ - 24, /* ldxi_l */ + 24, /* ldxi_l */ 4, /* str_c */ - 28, /* sti_c */ + 28, /* sti_c */ 4, /* str_s */ - 28, /* sti_s */ + 28, /* sti_s */ 4, /* str_i */ - 28, /* sti_i */ + 28, /* sti_i */ 4, /* str_l */ - 28, /* sti_l */ + 28, /* sti_l */ 4, /* stxr_c */ - 24, /* stxi_c */ + 24, /* stxi_c */ 4, /* stxr_s */ - 24, /* stxi_s */ + 24, /* stxi_s */ 4, /* stxr_i */ - 24, /* stxi_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 */ + 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 */ 8, /* jmpi */ 8, /* callr */ - 40, /* calli */ + 40, /* calli */ 0, /* prepare */ 0, /* pushargr_c */ 0, /* pushargi_c */ @@ -765,93 +795,96 @@ 0, /* retval_i */ 0, /* retval_ui */ 0, /* retval_l */ - 44, /* epilog */ + 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 */ - 24, /* movr_f */ - 32, /* movi_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 */ + 0, /* negi_f */ + 12, /* absr_f */ + 0, /* absi_f */ + 12, /* sqrtr_f */ + 0, /* sqrti_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 */ + 24, /* movr_f */ + 32, /* movi_f */ 8, /* ldr_f */ - 32, /* ldi_f */ + 32, /* ldi_f */ 8, /* ldxr_f */ - 28, /* ldxi_f */ + 28, /* ldxi_f */ 8, /* str_f */ - 32, /* sti_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 */ - 52, /* beqi_f */ - 20, /* bger_f */ - 44, /* bgei_f */ - 20, /* bgtr_f */ - 44, /* bgti_f */ - 20, /* bner_f */ - 60, /* 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 */ + 28, /* stxi_f */ + 20, /* bltr_f */ + 44, /* blti_f */ + 20, /* bler_f */ + 44, /* blei_f */ + 28, /* beqr_f */ + 52, /* beqi_f */ + 20, /* bger_f */ + 44, /* bgei_f */ + 20, /* bgtr_f */ + 44, /* bgti_f */ + 20, /* bner_f */ + 60, /* 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 */ @@ -862,162 +895,161 @@ 0, /* putargr_d */ 0, /* putargi_d */ 4, /* addr_d */ - 32, /* addi_d */ + 32, /* addi_d */ 4, /* subr_d */ - 32, /* subi_d */ - 32, /* rsbi_d */ + 32, /* subi_d */ + 32, /* rsbi_d */ 4, /* mulr_d */ - 32, /* muli_d */ + 32, /* muli_d */ 4, /* divr_d */ - 32, /* divi_d */ + 32, /* divi_d */ 4, /* negr_d */ + 0, /* negi_d */ 4, /* absr_d */ + 0, /* absi_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 */ + 0, /* sqrti_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 */ + 32, /* movi_d */ 4, /* ldr_d */ - 28, /* ldi_d */ + 28, /* ldi_d */ 4, /* ldxr_d */ - 24, /* ldxi_d */ + 24, /* ldxi_d */ 4, /* str_d */ - 28, /* sti_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 */ + 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 */ - 12, /* movr_w_f */ + 12, /* movr_w_f */ + 16, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 8, /* movr_w_d */ - 12, /* movr_f_w */ + 24, /* movi_w_d */ + 12, /* movr_f_w */ 4, /* movi_f_w */ 0, /* movr_d_ww */ 0, /* movi_d_ww */ 8, /* movr_d_w */ - 16, /* movi_d_w */ + 16, /* movi_d_w */ 108, /* clor */ - 80, /* clzr */ - 80, /* ctor */ - 52, /* ctzr */ - 76, /* rbitr */ - 72, /* popcntr */ - 20, /* lrotr */ - 12, /* lroti */ - 20, /* rrotr */ - 12, /* rroti */ - 8, /* extr */ - 32, /* extr_u */ - 60, /* depr */ - 20, /* depi */ - 4, /* negi */ - 4, /* comi */ - 4, /* exti_c */ - 4, /* exti_uc */ - 4, /* exti_s */ - 8, /* exti_us */ - 20, /* exti_i */ - 4, /* exti_ui */ - 8, /* bswapi_us */ - 8, /* bswapi_ui */ - 24, /* bswapi_ul */ - 8, /* htoni_us */ - 8, /* htoni_ui */ - 24, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ 4, /* cloi */ + 80, /* clzr */ 4, /* clzi */ + 80, /* ctor */ 4, /* ctoi */ + 52, /* ctzr */ 4, /* ctzi */ - 24, /* rbiti */ + 76, /* rbitr */ + 24, /* rbiti */ + 72, /* popcntr */ 4, /* popcnti */ + 20, /* lrotr */ + 12, /* lroti */ + 20, /* rrotr */ + 12, /* rroti */ + 8, /* extr */ 4, /* exti */ + 32, /* extr_u */ 4, /* exti_u */ - 72, /* qlshr */ + 60, /* depr */ + 20, /* depi */ + 72, /* qlshr */ 8, /* qlshi */ - 72, /* qlshr_u */ + 72, /* qlshr_u */ 8, /* qlshi_u */ - 72, /* qrshr */ + 72, /* qrshr */ 8, /* qrshi */ - 72, /* qrshr_u */ + 72, /* qrshr_u */ 8, /* qrshi_u */ - 324, /* unldr */ - 120, /* unldi */ - 324, /* unldr_u */ - 120, /* unldi_u */ - 188, /* unstr */ - 108, /* unsti */ - 328, /* unldr_x */ - 128, /* unldi_x */ - 196, /* unstr_x */ - 116, /* unsti_x */ - 16, /* movi_w_f */ - 24, /* movi_w_d */ - 0, /* movi_ww_d */ + 76, /* unldr */ + 64, /* unldi */ + 76, /* unldr_u */ + 64, /* unldi_u */ + 228, /* unstr */ + 160, /* unsti */ + 84, /* unldr_x */ + 76, /* unldi_x */ + 240, /* unstr_x */ + 172, /* unsti_x */ + 20, /* fmar_f */ + 0, /* fmai_f */ + 20, /* fmsr_f */ + 0, /* fmsi_f */ + 20, /* fmar_d */ + 0, /* fmai_d */ + 20, /* fmsr_d */ + 0, /* fmsi_d */ + 20, /* fnmar_f */ + 0, /* fnmai_f */ + 20, /* fnmsr_f */ + 0, /* fnmsi_f */ + 20, /* fnmar_d */ + 0, /* fnmai_d */ + 20, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __WORDSIZE */ diff --git a/lib/jit_x86-sz.c b/lib/jit_x86-sz.c index 6d9eebb..a2b608c 100644 --- a/lib/jit_x86-sz.c +++ b/lib/jit_x86-sz.c @@ -88,7 +88,9 @@ 16, /* rshr_u */ 5, /* rshi_u */ 4, /* negr */ + 5, /* negi */ 4, /* comr */ + 5, /* comi */ 15, /* ltr */ 16, /* lti */ 15, /* ltr_u */ @@ -116,17 +118,29 @@ 9, /* casr */ 13, /* casi */ 11, /* extr_c */ + 5, /* exti_c */ 11, /* extr_uc */ + 5, /* exti_uc */ 3, /* extr_s */ + 5, /* exti_s */ 3, /* extr_us */ + 5, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 7, /* bswapr_us */ + 5, /* bswapi_us */ 4, /* bswapr_ui */ + 5, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 7, /* htonr_us */ + 5, /* htoni_us */ 4, /* htonr_ui */ + 5, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 3, /* ldr_c */ 7, /* ldi_c */ 3, /* ldr_uc */ @@ -269,8 +283,11 @@ 12, /* divr_f */ 19, /* divi_f */ 12, /* negr_f */ + 0, /* negi_f */ 12, /* absr_f */ + 0, /* absi_f */ 6, /* sqrtr_f */ + 0, /* sqrti_f */ 13, /* ltr_f */ 27, /* lti_f */ 13, /* ler_f */ @@ -360,8 +377,11 @@ 12, /* divr_d */ 26, /* divi_d */ 18, /* negr_d */ + 0, /* negi_d */ 13, /* absr_d */ + 0, /* absi_d */ 6, /* sqrtr_d */ + 0, /* sqrti_d */ 13, /* ltr_d */ 37, /* lti_d */ 13, /* ler_d */ @@ -438,8 +458,11 @@ 0, /* reti_d */ 10, /* retval_d */ 8, /* movr_w_f */ + 13, /* movi_w_f */ 11, /* movr_ww_d */ + 18, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 10, /* movr_f_w */ 5, /* movi_f_w */ 13, /* movr_d_ww */ @@ -447,47 +470,27 @@ 0, /* movr_d_w */ 0, /* movi_d_w */ 21, /* clor */ + 5, /* cloi */ 17, /* clzr */ + 5, /* clzi */ 15, /* ctor */ + 5, /* ctoi */ 11, /* ctzr */ + 5, /* ctzi */ 61, /* rbitr */ + 5, /* rbiti */ 58, /* popcntr */ + 5, /* popcnti */ 16, /* lrotr */ 5, /* lroti */ 16, /* rrotr */ 5, /* rroti */ 10, /* extr */ + 5, /* exti */ 11, /* extr_u */ + 5, /* exti_u */ 22, /* depr */ 24, /* depi */ - 5, /* negi */ - 5, /* comi */ - 5, /* exti_c */ - 5, /* exti_uc */ - 5, /* exti_s */ - 5, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 5, /* bswapi_us */ - 5, /* bswapi_ui */ - 0, /* bswapi_ul */ - 5, /* htoni_us */ - 5, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 5, /* cloi */ - 5, /* clzi */ - 5, /* ctoi */ - 5, /* ctzi */ - 5, /* rbiti */ - 5, /* popcnti */ - 5, /* exti */ - 5, /* exti_u */ 63, /* qlshr */ 12, /* qlshi */ 60, /* qlshr_u */ @@ -506,9 +509,22 @@ 8, /* unldi_x */ 6, /* unstr_x */ 10, /* unsti_x */ - 13, /* movi_w_f */ - 0, /* movi_w_d */ - 18, /* movi_ww_d */ + 13, /* fmar_f */ + 0, /* fmai_f */ + 13, /* fmsr_f */ + 0, /* fmsi_f */ + 13, /* fmar_d */ + 0, /* fmai_d */ + 13, /* fmsr_d */ + 0, /* fmsi_d */ + 21, /* fnmar_f */ + 0, /* fnmai_f */ + 21, /* fnmsr_f */ + 0, /* fnmsi_f */ + 27, /* fnmar_d */ + 0, /* fnmai_d */ + 27, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __X32 */ #if __X64 @@ -601,7 +617,9 @@ 9, /* rshr_u */ 7, /* rshi_u */ 6, /* negr */ + 7, /* negi */ 6, /* comr */ + 7, /* comi */ 13, /* ltr */ 14, /* lti */ 13, /* ltr_u */ @@ -629,17 +647,29 @@ 11, /* casr */ 16, /* casi */ 7, /* extr_c */ + 7, /* exti_c */ 7, /* extr_uc */ + 5, /* exti_uc */ 4, /* extr_s */ + 7, /* exti_s */ 4, /* extr_us */ + 5, /* exti_us */ 3, /* extr_i */ + 10, /* exti_i */ 3, /* extr_ui */ + 5, /* exti_ui */ 9, /* bswapr_us */ + 5, /* bswapi_us */ 6, /* bswapr_ui */ + 5, /* bswapi_ui */ 6, /* bswapr_ul */ + 10, /* bswapi_ul */ 9, /* htonr_us */ + 5, /* htoni_us */ 6, /* htonr_ui */ + 5, /* htoni_ui */ 6, /* htonr_ul */ + 10, /* htoni_ul */ 4, /* ldr_c */ 9, /* ldi_c */ 4, /* ldr_uc */ @@ -782,8 +812,11 @@ 15, /* divr_f */ 19, /* divi_f */ 14, /* negr_f */ + 0, /* negi_f */ 15, /* absr_f */ + 0, /* absi_f */ 5, /* sqrtr_f */ + 0, /* sqrti_f */ 16, /* ltr_f */ 27, /* lti_f */ 16, /* ler_f */ @@ -873,8 +906,11 @@ 15, /* divr_d */ 25, /* divi_d */ 21, /* negr_d */ + 0, /* negi_d */ 16, /* absr_d */ + 0, /* absi_d */ 5, /* sqrtr_d */ + 0, /* sqrti_d */ 17, /* ltr_d */ 32, /* lti_d */ 17, /* ler_d */ @@ -951,8 +987,11 @@ 0, /* reti_d */ 0, /* retval_d */ 5, /* movr_w_f */ + 10, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 5, /* movr_w_d */ + 15, /* movi_w_d */ 5, /* movr_f_w */ 6, /* movi_f_w */ 0, /* movr_d_ww */ @@ -960,47 +999,27 @@ 5, /* movr_d_w */ 10, /* movi_d_w */ 27, /* clor */ + 5, /* cloi */ 21, /* clzr */ + 5, /* clzi */ 20, /* ctor */ + 5, /* ctoi */ 14, /* ctzr */ + 5, /* ctzi */ 61, /* rbitr */ + 10, /* rbiti */ 57, /* popcntr */ + 5, /* popcnti */ 9, /* lrotr */ 7, /* lroti */ 9, /* rrotr */ 7, /* rroti */ 12, /* extr */ + 7, /* exti */ 20, /* extr_u */ + 5, /* exti_u */ 37, /* depr */ 30, /* depi */ - 7, /* negi */ - 7, /* comi */ - 7, /* exti_c */ - 5, /* exti_uc */ - 7, /* exti_s */ - 5, /* exti_us */ - 10, /* exti_i */ - 5, /* exti_ui */ - 5, /* bswapi_us */ - 5, /* bswapi_ui */ - 10, /* bswapi_ul */ - 5, /* htoni_us */ - 5, /* htoni_ui */ - 10, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 5, /* cloi */ - 5, /* clzi */ - 5, /* ctoi */ - 5, /* ctzi */ - 10, /* rbiti */ - 5, /* popcnti */ - 7, /* exti */ - 5, /* exti_u */ 58, /* qlshr */ 15, /* qlshi */ 54, /* qlshr_u */ @@ -1019,9 +1038,22 @@ 10, /* unldi_x */ 5, /* unstr_x */ 10, /* unsti_x */ - 10, /* movi_w_f */ - 15, /* movi_w_d */ - 0, /* movi_ww_d */ + 12, /* fmar_f */ + 0, /* fmai_f */ + 20, /* fmsr_f */ + 0, /* fmsi_f */ + 12, /* fmar_d */ + 0, /* fmai_d */ + 20, /* fmsr_d */ + 0, /* fmsi_d */ + 28, /* fnmar_f */ + 0, /* fnmai_f */ + 24, /* fnmsr_f */ + 0, /* fnmsi_f */ + 34, /* fnmar_d */ + 0, /* fnmai_d */ + 30, /* fnmsr_d */ + 0, /* fnmsi_d */ #else # if __X64_32 @@ -1113,7 +1145,9 @@ 9, /* rshr_u */ 7, /* rshi_u */ 6, /* negr */ + 5, /* negi */ 6, /* comr */ + 5, /* comi */ 13, /* ltr */ 14, /* lti */ 13, /* ltr_u */ @@ -1141,17 +1175,29 @@ 11, /* casr */ 16, /* casi */ 7, /* extr_c */ + 5, /* exti_c */ 7, /* extr_uc */ + 5, /* exti_uc */ 4, /* extr_s */ + 5, /* exti_s */ 4, /* extr_us */ + 5, /* exti_us */ 0, /* extr_i */ + 0, /* exti_i */ 0, /* extr_ui */ + 0, /* exti_ui */ 9, /* bswapr_us */ + 5, /* bswapi_us */ 6, /* bswapr_ui */ + 5, /* bswapi_ui */ 0, /* bswapr_ul */ + 0, /* bswapi_ul */ 9, /* htonr_us */ + 5, /* htoni_us */ 6, /* htonr_ui */ + 5, /* htoni_ui */ 0, /* htonr_ul */ + 0, /* htoni_ul */ 5, /* ldr_c */ 10, /* ldi_c */ 5, /* ldr_uc */ @@ -1294,8 +1340,11 @@ 15, /* divr_f */ 20, /* divi_f */ 15, /* negr_f */ + 0, /* negi_f */ 15, /* absr_f */ + 0, /* absi_f */ 5, /* sqrtr_f */ + 0, /* sqrti_f */ 15, /* ltr_f */ 26, /* lti_f */ 15, /* ler_f */ @@ -1385,8 +1434,11 @@ 15, /* divr_d */ 29, /* divi_d */ 22, /* negr_d */ + 0, /* negi_d */ 16, /* absr_d */ + 0, /* absi_d */ 5, /* sqrtr_d */ + 0, /* sqrti_d */ 16, /* ltr_d */ 39, /* lti_d */ 16, /* ler_d */ @@ -1463,8 +1515,11 @@ 0, /* reti_d */ 0, /* retval_d */ 5, /* movr_w_f */ + 10, /* movi_w_f */ 14, /* movr_ww_d */ + 19, /* movi_ww_d */ 0, /* movr_w_d */ + 0, /* movi_w_d */ 5, /* movr_f_w */ 6, /* movi_f_w */ 14, /* movr_d_ww */ @@ -1472,47 +1527,27 @@ 0, /* movr_d_w */ 0, /* movi_d_w */ 11, /* clor */ + 5, /* cloi */ 5, /* clzr */ + 5, /* clzi */ 11, /* ctor */ + 5, /* ctoi */ 5, /* ctzr */ + 5, /* ctzi */ 64, /* rbitr */ + 5, /* rbiti */ 5, /* popcntr */ + 5, /* popcnti */ 9, /* lrotr */ 7, /* lroti */ 9, /* rrotr */ 7, /* rroti */ 12, /* extr */ + 5, /* exti */ 11, /* extr_u */ + 5, /* exti_u */ 24, /* depr */ 27, /* depi */ - 5, /* negi */ - 5, /* comi */ - 5, /* exti_c */ - 5, /* exti_uc */ - 5, /* exti_s */ - 5, /* exti_us */ - 0, /* exti_i */ - 0, /* exti_ui */ - 5, /* bswapi_us */ - 5, /* bswapi_ui */ - 0, /* bswapi_ul */ - 5, /* htoni_us */ - 5, /* htoni_ui */ - 0, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 5, /* cloi */ - 5, /* clzi */ - 5, /* ctoi */ - 5, /* ctzi */ - 5, /* rbiti */ - 5, /* popcnti */ - 5, /* exti */ - 5, /* exti_u */ 56, /* qlshr */ 15, /* qlshi */ 52, /* qlshr_u */ @@ -1531,9 +1566,22 @@ 10, /* unldi_x */ 5, /* unstr_x */ 10, /* unsti_x */ - 10, /* movi_w_f */ - 0, /* movi_w_d */ - 19, /* movi_ww_d */ + 15, /* fmar_f */ + 0, /* fmai_f */ + 15, /* fmsr_f */ + 0, /* fmsi_f */ + 15, /* fmar_d */ + 0, /* fmai_d */ + 15, /* fmsr_d */ + 0, /* fmsi_d */ + 24, /* fnmar_f */ + 0, /* fnmai_f */ + 24, /* fnmsr_f */ + 0, /* fnmsi_f */ + 31, /* fnmar_d */ + 0, /* fnmai_d */ + 31, /* fnmsr_d */ + 0, /* fnmsi_d */ #else #define JIT_INSTR_MAX 112 @@ -1624,7 +1672,9 @@ 9, /* rshr_u */ 7, /* rshi_u */ 6, /* negr */ + 7, /* negi */ 6, /* comr */ + 7, /* comi */ 13, /* ltr */ 14, /* lti */ 13, /* ltr_u */ @@ -1652,17 +1702,29 @@ 11, /* casr */ 16, /* casi */ 4, /* extr_c */ + 7, /* exti_c */ 4, /* extr_uc */ + 5, /* exti_uc */ 4, /* extr_s */ + 7, /* exti_s */ 4, /* extr_us */ + 5, /* exti_us */ 3, /* extr_i */ + 10, /* exti_i */ 3, /* extr_ui */ + 5, /* exti_ui */ 9, /* bswapr_us */ + 5, /* bswapi_us */ 6, /* bswapr_ui */ + 5, /* bswapi_ui */ 6, /* bswapr_ul */ + 10, /* bswapi_ul */ 9, /* htonr_us */ + 5, /* htoni_us */ 6, /* htonr_ui */ + 5, /* htoni_ui */ 6, /* htonr_ul */ + 10, /* htoni_ul */ 5, /* ldr_c */ 9, /* ldi_c */ 5, /* ldr_uc */ @@ -1805,8 +1867,11 @@ 15, /* divr_f */ 20, /* divi_f */ 15, /* negr_f */ + 0, /* negi_f */ 15, /* absr_f */ + 0, /* absi_f */ 5, /* sqrtr_f */ + 0, /* sqrti_f */ 11, /* ltr_f */ 23, /* lti_f */ 11, /* ler_f */ @@ -1896,8 +1961,11 @@ 15, /* divr_d */ 25, /* divi_d */ 22, /* negr_d */ + 0, /* negi_d */ 16, /* absr_d */ + 0, /* absi_d */ 5, /* sqrtr_d */ + 0, /* sqrti_d */ 12, /* ltr_d */ 27, /* lti_d */ 12, /* ler_d */ @@ -1974,8 +2042,11 @@ 0, /* reti_d */ 0, /* retval_d */ 5, /* movr_w_f */ + 10, /* movi_w_f */ 0, /* movr_ww_d */ + 0, /* movi_ww_d */ 5, /* movr_w_d */ + 15, /* movi_w_d */ 5, /* movr_f_w */ 6, /* movi_f_w */ 0, /* movr_d_ww */ @@ -1983,47 +2054,27 @@ 5, /* movr_d_w */ 10, /* movi_d_w */ 11, /* clor */ + 5, /* cloi */ 5, /* clzr */ + 5, /* clzi */ 11, /* ctor */ + 5, /* ctoi */ 5, /* ctzr */ + 5, /* ctzi */ 56, /* rbitr */ + 10, /* rbiti */ 5, /* popcntr */ + 5, /* popcnti */ 9, /* lrotr */ 7, /* lroti */ 9, /* rrotr */ 7, /* rroti */ 12, /* extr */ + 7, /* exti */ 15, /* extr_u */ + 5, /* exti_u */ 34, /* depr */ 27, /* depi */ - 7, /* negi */ - 7, /* comi */ - 7, /* exti_c */ - 5, /* exti_uc */ - 7, /* exti_s */ - 5, /* exti_us */ - 10, /* exti_i */ - 5, /* exti_ui */ - 5, /* bswapi_us */ - 5, /* bswapi_ui */ - 10, /* bswapi_ul */ - 5, /* htoni_us */ - 5, /* htoni_ui */ - 10, /* htoni_ul */ - 0, /* negi_f */ - 0, /* absi_f */ - 0, /* sqrti_f */ - 0, /* negi_d */ - 0, /* absi_d */ - 0, /* sqrti_d */ - 5, /* cloi */ - 5, /* clzi */ - 5, /* ctoi */ - 5, /* ctzi */ - 10, /* rbiti */ - 5, /* popcnti */ - 7, /* exti */ - 5, /* exti_u */ 58, /* qlshr */ 15, /* qlshi */ 54, /* qlshr_u */ @@ -2042,9 +2093,22 @@ 10, /* unldi_x */ 5, /* unstr_x */ 10, /* unsti_x */ - 10, /* movi_w_f */ - 15, /* movi_w_d */ - 0, /* movi_ww_d */ + 15, /* fmar_f */ + 0, /* fmai_f */ + 15, /* fmsr_f */ + 0, /* fmsi_f */ + 15, /* fmar_d */ + 0, /* fmai_d */ + 15, /* fmsr_d */ + 0, /* fmsi_d */ + 24, /* fnmar_f */ + 0, /* fnmai_f */ + 24, /* fnmsr_f */ + 0, /* fnmsi_f */ + 31, /* fnmar_d */ + 0, /* fnmai_d */ + 31, /* fnmsr_d */ + 0, /* fnmsi_d */ #endif /* __CYGWIN__ || _WIN32 */ # endif /* __X64_32 */ #endif /* __X64 */ |