diff options
Diffstat (limited to 'include/ejit/ejit.h')
-rw-r--r-- | include/ejit/ejit.h | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/include/ejit/ejit.h b/include/ejit/ejit.h index 6e42f15..1e2fb3a 100644 --- a/include/ejit/ejit.h +++ b/include/ejit/ejit.h @@ -312,17 +312,22 @@ void ejit_escapei_f(struct ejit_func *s, ejit_escape_f_t f, size_t argc, void ejit_ret(struct ejit_func *s); void ejit_retr(struct ejit_func *s, struct ejit_gpr r0); void ejit_retr_f(struct ejit_func *s, struct ejit_fpr r0); +void ejit_retr_d(struct ejit_func *s, struct ejit_fpr r0); + void ejit_reti(struct ejit_func *s, long i); -void ejit_reti_f(struct ejit_func *s, double f); +void ejit_reti_f(struct ejit_func *s, float f); +void ejit_reti_d(struct ejit_func *s, double f); void ejit_retval(struct ejit_func *s, struct ejit_gpr r0); void ejit_retval_f(struct ejit_func *s, struct ejit_fpr r0); /* move from r1 to r0 */ void ejit_movi(struct ejit_func *s, struct ejit_gpr r0, int64_t i); -void ejit_movi_f(struct ejit_func *s, struct ejit_fpr f0, double i); +void ejit_movi_f(struct ejit_func *s, struct ejit_fpr f0, float i); +void ejit_movi_d(struct ejit_func *s, struct ejit_fpr f0, double i); void ejit_movr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); void ejit_movr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +void ejit_movr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); void ejit_ldi_i8(struct ejit_func *s, struct ejit_gpr r0, void *p); void ejit_ldi_i16(struct ejit_func *s, struct ejit_gpr r0, void *p); @@ -544,11 +549,14 @@ void ejit_addr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, void ejit_addr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_addr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_addi(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, int64_t o); void ejit_absr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +void ejit_absr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); void ejit_subr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -556,6 +564,9 @@ void ejit_subr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, void ejit_subr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_subr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); + void ejit_subi(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, int64_t o); @@ -563,6 +574,8 @@ void ejit_mulr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_mulr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_mulr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_divr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -570,6 +583,8 @@ void ejit_divr_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_divr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_divr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_remr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -608,16 +623,21 @@ void ejit_xorr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, void ejit_comr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); void ejit_negr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); void ejit_negr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +void ejit_negr_d(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); void ejit_eqr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_eqr_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_eqr_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_ner(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_ner_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_ner_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_gtr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -625,6 +645,8 @@ void ejit_gtr_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_gtr_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_gtr_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_ltr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -632,6 +654,8 @@ void ejit_ltr_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_ltr_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_ltr_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_ger(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); @@ -639,11 +663,20 @@ void ejit_ger_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_ger_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_ger_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); void ejit_ler(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2); void ejit_ler_f(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, struct ejit_fpr r2); +void ejit_ler_d(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1, + struct ejit_fpr r2); + +void ejit_truncr_f_32(struct ejit_func *s, struct ejit_gpr r0, + struct ejit_fpr r1); +void ejit_truncr_f_64(struct ejit_func *s, struct ejit_gpr r0, + struct ejit_fpr r1); void ejit_truncr_d_32(struct ejit_func *s, struct ejit_gpr r0, struct ejit_fpr r1); @@ -657,12 +690,16 @@ struct ejit_reloc ejit_bner(struct ejit_func *s, struct ejit_gpr r0, struct ejit_reloc ejit_bnei(struct ejit_func *s, struct ejit_gpr r0, int64_t o); struct ejit_reloc ejit_bner_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +struct ejit_reloc ejit_bner_d(struct ejit_func *s, struct ejit_fpr r0, + struct ejit_fpr r1); struct ejit_reloc ejit_beqr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); struct ejit_reloc ejit_beqi(struct ejit_func *s, struct ejit_gpr r0, int64_t o); struct ejit_reloc ejit_beqr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +struct ejit_reloc ejit_beqr_d(struct ejit_func *s, struct ejit_fpr r0, + struct ejit_fpr r1); struct ejit_reloc ejit_bger(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); @@ -681,6 +718,8 @@ struct ejit_reloc ejit_bler_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); struct ejit_reloc ejit_bler_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +struct ejit_reloc ejit_bler_d(struct ejit_func *s, struct ejit_fpr r0, + struct ejit_fpr r1); struct ejit_reloc ejit_blei(struct ejit_func *s, struct ejit_gpr r0, int64_t o); struct ejit_reloc ejit_blei_u(struct ejit_func *s, struct ejit_gpr r0, @@ -692,6 +731,8 @@ struct ejit_reloc ejit_bgtr_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); struct ejit_reloc ejit_bgtr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +struct ejit_reloc ejit_bgtr_d(struct ejit_func *s, struct ejit_fpr r0, + struct ejit_fpr r1); struct ejit_reloc ejit_bgti(struct ejit_func *s, struct ejit_gpr r0, int64_t o); struct ejit_reloc ejit_bgti_u(struct ejit_func *s, struct ejit_gpr r0, @@ -703,14 +744,13 @@ struct ejit_reloc ejit_bltr_u(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1); struct ejit_reloc ejit_bltr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1); +struct ejit_reloc ejit_bltr_d(struct ejit_func *s, struct ejit_fpr r0, + struct ejit_fpr r1); struct ejit_reloc ejit_blti(struct ejit_func *s, struct ejit_gpr r0, int64_t o); struct ejit_reloc ejit_blti_u(struct ejit_func *s, struct ejit_gpr r0, int64_t o); -struct ejit_reloc ejit_bltgtr_f(struct ejit_func *s, struct ejit_fpr r0, - struct ejit_fpr r1); - struct ejit_reloc ejit_jmp(struct ejit_func *s); struct ejit_reloc ejit_jmpr(struct ejit_func *s, struct ejit_gpr r0); |