aboutsummaryrefslogtreecommitdiff
path: root/bcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'bcode.h')
-rw-r--r--bcode.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/bcode.h b/bcode.h
new file mode 100644
index 0000000..6683686
--- /dev/null
+++ b/bcode.h
@@ -0,0 +1,32 @@
+#ifndef BCGEN_BCODE_H
+#define BCGEN_BCODE_H
+
+#include <stddef.h>
+
+typedef unsigned long gbreg_t;
+typedef double fbreg_t;
+typedef size_t breloc_t;
+
+typedef union {
+ gbreg_t g;
+ fbreg_t f;
+} breg_t;
+
+struct run_state {
+ void* (*op);
+ breg_t *imm;
+};
+
+struct compile_state {
+ struct run_state s;
+ void* (*labels);
+ size_t pc;
+};
+
+#include "gen/select.h"
+
+void run(struct compile_state *cs);
+void init(struct compile_state *cs);
+void destroy(struct compile_state *cs);
+
+#endif /* BCGEN_BCODE_H */