aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fvm.c3
-rw-r--r--src/fvm.h2
-rw-r--r--src/main.c5
3 files changed, 10 insertions, 0 deletions
diff --git a/src/fvm.c b/src/fvm.c
index 3f1e3fb..858bd4a 100644
--- a/src/fvm.c
+++ b/src/fvm.c
@@ -409,6 +409,9 @@ int fvm_execute(struct fvm *vm) {
fvm_pushf(vm, (fvm_float_t)x);
vm->pc++;
break;
+ case FVM_OP_EXIT:
+ a = fvm_pop(vm);
+ return a;
default:
fprintf(stderr, "unknown opcode.\n");
break;
diff --git a/src/fvm.h b/src/fvm.h
index 40c71e2..bfa5888 100644
--- a/src/fvm.h
+++ b/src/fvm.h
@@ -90,6 +90,8 @@ enum fvm_op {
FVM_OP_FTI,
FVM_OP_ITF,
+
+ FVM_OP_EXIT,
};
int fvm_init(struct fvm *vm, void *code, int64_t stack_size);
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..62742b5
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,5 @@
+#include "fvm.h"
+
+int main() {
+ return 0;
+}