aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-07-14 14:46:40 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-07-14 14:46:40 +0300
commitdcca95ebeef7ad047b437c7e65bcd2d33784cae4 (patch)
tree39a3f9834df0dc7c27d080efef15c22889730dc5 /include
parent215ac4569f897b10215248c4caa3191919a555df (diff)
downloadejit-dcca95ebeef7ad047b437c7e65bcd2d33784cae4.tar.gz
ejit-dcca95ebeef7ad047b437c7e65bcd2d33784cae4.zip
add float + double instead of just double
Diffstat (limited to 'include')
-rw-r--r--include/ejit/ejit.h50
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);