aboutsummaryrefslogtreecommitdiff
path: root/Sjit/Compile.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'Sjit/Compile.dcl')
-rw-r--r--Sjit/Compile.dcl17
1 files changed, 12 insertions, 5 deletions
diff --git a/Sjit/Compile.dcl b/Sjit/Compile.dcl
index d373e42..e630178 100644
--- a/Sjit/Compile.dcl
+++ b/Sjit/Compile.dcl
@@ -13,17 +13,24 @@ from Sjit.Syntax import :: Function
| Call !Int
| Jmp !Int
- | JmpTrue !Int
+ | JmpCond !Cond !Int
| Ret
| Halt
- | IAdd
- | IMul
- | ISub
- | IDiv
+ | Op !Op
| PlaceHolder !Int !Int // only used during compilation
+:: Op
+ = OAdd | OMul
+ | OSub | ODiv
+
+:: Cond
+ = CEq | CNe
+ | CLt | CLe
+ | CGt | CGe
+ | CTrue
+
:: Program :== {!Instr}
:: CompileState =