aboutsummaryrefslogtreecommitdiff
path: root/executor/executor.h
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2019-08-24 23:31:14 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-25 14:36:46 +0200
commitd9f652919961a2947452ad3c4af4659f3d2fb330 (patch)
tree2db541db311a9b5a83d3f2c9b199f6d5c3341555 /executor/executor.h
parent40652d7dbf701eda83fa8323b42a6b5bf0ca6bdd (diff)
Add if/else/elseif/while, including the final assembly
Diffstat (limited to 'executor/executor.h')
-rw-r--r--executor/executor.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/executor/executor.h b/executor/executor.h
index df6c0d8..a0be5c9 100644
--- a/executor/executor.h
+++ b/executor/executor.h
@@ -43,10 +43,11 @@ CHECK_RESULT int amal_exec_call(amal_executor *self, u16 func_index, u8 num_args
/*CHECK_RESULT int amal_exec_callr(i8 dst_reg, BufferView data);*/
CHECK_RESULT int amal_exec_calle(amal_executor *self, void *func, u8 num_args, i8 dst_reg);
CHECK_RESULT int amal_exec_cmp(amal_executor *self, i8 dst_reg, i8 src_reg1, i8 src_reg2);
-CHECK_RESULT int amal_exec_jz(amal_executor *self, i8 dst_reg, i16 offset);
-CHECK_RESULT int amal_exec_jmp(amal_executor *self, i16 offset);
+CHECK_RESULT int amal_exec_jz(amal_executor *self, i8 reg, u16 target_label);
+CHECK_RESULT int amal_exec_jmp(amal_executor *self, u16 target_label);
CHECK_RESULT int amal_exec_ret(amal_executor *self, i8 reg);
CHECK_RESULT int amal_exec_func_start(amal_executor *self, u16 num_regs);
CHECK_RESULT int amal_exec_func_end(amal_executor *self);
+CHECK_RESULT int amal_exec_label(amal_executor *self);
#endif