aboutsummaryrefslogtreecommitdiffstats
path: root/asm/creole.py
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2023-02-11 21:24:48 +0000
committerGravatar Peter McGoron 2023-02-11 21:24:48 +0000
commitb425e26ea3ff2df3f6b98b475ae870900efaf2e6 (patch)
treed134435547ee287f23b237b4be0c14bd353d87a7 /asm/creole.py
parentrename idiv to sdiv (diff)
jump tests
Diffstat (limited to '')
-rw-r--r--asm/creole.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/asm/creole.py b/asm/creole.py
index 1d98051..4cb4b8c 100644
--- a/asm/creole.py
+++ b/asm/creole.py
@@ -92,9 +92,14 @@ class Instruction(Enum):
MUL = 4, ArgType.REG, ArgType.VAL, ArgType.VAL
DIV = 5, ArgType.REG, ArgType.VAL, ArgType.VAL
SDIV = 6, ArgType.REG, ArgType.VAL, ArgType.VAL
- JL = 7, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ SYS = 7, ArgType.VAL
CLB = 8, ArgType.LAB
- SYS = 9, ArgType.VAL
+ JL = 9, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ JLE = 10, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ JG = 11, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ JGE = 12, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ JE = 13, ArgType.LAB, ArgType.VAL, ArgType.VAL
+ JNE = 13, ArgType.LAB, ArgType.VAL, ArgType.VAL
def __init__(self, opcode, *args):
if opcode > 0x7F or opcode < 0:
@@ -214,6 +219,10 @@ class Program:
args_w_type = ins.typecheck(line[1:])
self.asm_push_line(ins.opcode, args_w_type)
+ def parse_lines(self, lines):
+ for l in lines:
+ self.parse_asm_line(l)
+
def __call__(self):
b = bytes()
for line in self.asm: