Finish compiler refactoring

This commit is contained in:
Jan-Niclas Loosen
2025-12-11 01:09:28 +01:00
parent b3e20a52eb
commit 5ce2c5a281
4 changed files with 137 additions and 113 deletions

View File

@@ -0,0 +1,18 @@
CONST 1
CONST 0
GT
IFZERO L3
CONST 1
GOTO L4
L3: NOP
CONST 1
CONST 0
EQ
L4: NOP
IFZERO L1
CONST 1
GOTO L2
L1: NOP
CONST 0
L2: NOP
HALT

View File

@@ -1,47 +1,47 @@
GOTO L1
L2: NOP
GOTO L13
L14: NOP
LOAD 0 0
CONST 0
EQ
IFZERO L4
GOTO L6
L7: NOP
IFZERO L16
GOTO L18
L19: NOP
LOAD 0 0
LOAD 1 1
MUL
LOAD 1 0
ADD
RETURN
L6: NOP
L18: NOP
CONST 2
LOAD 1 0
MUL
LOAD 0 0
INVOKE 2 L7 0
GOTO L5
L4: NOP
INVOKE 2 L19 0
GOTO L17
L16: NOP
LOAD 0 0
CONST 1
ADD
L5: NOP
L17: NOP
RETURN
L3: NOP
L15: NOP
LOAD 1 0
CONST 0
GT
IFZERO L9
GOTO L11
L8: NOP
IFZERO L22
GOTO L23
L20: NOP
LOAD 1 0
CONST 0
GT
IFZERO L10
IFZERO L21
POP
L11: NOP
L23: NOP
LOAD 0 0
LOAD 0 0
LOAD 1 0
INVOKE 2 L2 1
INVOKE 2 L14 1
MUL
STORE 0 0
LOAD 0 0
@@ -51,21 +51,21 @@ L11: NOP
SUB
STORE 1 0
LOAD 1 0
GOTO L8
L9: NOP
GOTO L20
L22: NOP
CONST None
L10: NOP
L21: NOP
POP
LOAD 0 0
CONST 42
ADD
RETURN
L1: NOP
L13: NOP
CONST 1
CONST 2
INVOKE 2 L2 0
INVOKE 2 L14 0
POP
CONST 3
CONST 3
INVOKE 2 L3 0
INVOKE 2 L15 0
HALT