aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-06-29 20:11:34 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-06-29 20:11:34 +0300
commit9fe8ccf4ae09018fdde01a9d83f9db10ad354221 (patch)
tree664f802240a2810b5db3e783400351f1eb51c1a0 /include
parent322c7fba3d2f4c9b5b0d78b44feefd38ae44d017 (diff)
downloadejit-9fe8ccf4ae09018fdde01a9d83f9db10ad354221.tar.gz
ejit-9fe8ccf4ae09018fdde01a9d83f9db10ad354221.zip
work through branching instructions
Diffstat (limited to 'include')
-rw-r--r--include/ejit/ejit.h67
1 files changed, 65 insertions, 2 deletions
diff --git a/include/ejit/ejit.h b/include/ejit/ejit.h
index 1869be9..a910366 100644
--- a/include/ejit/ejit.h
+++ b/include/ejit/ejit.h
@@ -427,7 +427,8 @@ void ejit_divr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1,
void ejit_divr_f(struct ejit_func *s, struct ejit_fpr r0, struct ejit_fpr r1,
struct ejit_fpr r2);
-void ejit_andr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1, struct ejit_gpr r2);
+void ejit_andr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1,
+ struct ejit_gpr r2);
void ejit_andi(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1,
int64_t o);
@@ -440,12 +441,74 @@ void ejit_ltr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1,
struct ejit_reloc ejit_bltr(struct ejit_func *s, struct ejit_gpr r0,
struct ejit_gpr r1);
+struct ejit_reloc ejit_bner(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
struct ejit_reloc ejit_bnei(struct ejit_func *s, struct ejit_gpr r0, int64_t o);
-struct ejit_reloc ejit_beqr(struct ejit_func *s, struct ejit_gpr r0, struct ejit_gpr r1);
+struct ejit_reloc ejit_bner_f(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_bger(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+struct ejit_reloc ejit_bger_u(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+struct ejit_reloc ejit_bger_f(struct ejit_func *s, struct ejit_fpr r0,
+ struct ejit_fpr r1);
+
+struct ejit_reloc ejit_bgei(struct ejit_func *s, struct ejit_gpr r0, int64_t o);
+struct ejit_reloc ejit_bgei_u(struct ejit_func *s, struct ejit_gpr r0,
+ int64_t o);
+
+struct ejit_reloc ejit_bler(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+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_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,
+ int64_t o);
+
+struct ejit_reloc ejit_bgtr(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+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_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,
+ int64_t o);
+
+struct ejit_reloc ejit_bltr(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+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_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_bmci(struct ejit_func *s, struct ejit_gpr r0, int64_t o);
+struct ejit_reloc ejit_bmcr(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+struct ejit_reloc ejit_bmsi(struct ejit_func *s, struct ejit_gpr r0, int64_t o);
+struct ejit_reloc ejit_bmsr(struct ejit_func *s, struct ejit_gpr r0,
+ struct ejit_gpr r1);
+
void ejit_patch(struct ejit_func *s, struct ejit_reloc r, struct ejit_label l);
#endif /* EJIT_H */