summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--input/add-loop.asm1
-rw-r--r--src/parse.lisp2
-rw-r--r--t/parse.lisp2
3 files changed, 3 insertions, 2 deletions
diff --git a/input/add-loop.asm b/input/add-loop.asm
index f8d97a1..53520f3 100644
--- a/input/add-loop.asm
+++ b/input/add-loop.asm
@@ -1,3 +1,4 @@
+.data
.text
addi $2 $0 0x200
addi $5 $0 0x1
diff --git a/src/parse.lisp b/src/parse.lisp
index d971444..6b0d31d 100644
--- a/src/parse.lisp
+++ b/src/parse.lisp
@@ -107,7 +107,7 @@ DESTRUCTURE-PATTERN is the list of non-terminals on the right side of the gramma
(defrule-instr r-type-1 'emit::r (1 2 0) register register)
(defrule-instr r-type-2 'emit::r (0 1 2) register register)
(defrule-instr r-type-3 'emit::r (1 2 0) register register register)
-(defrule-instr i-type-3 'emit::i (0 1 2) register register immediate)
+(defrule-instr i-type-3 'emit::i (1 0 2) register register immediate)
(defrule-instr j-type-3 'emit::j (1 0) label)
(esrap:defrule i-type-1 (and i-type-1-m space register space (or dereference var))
diff --git a/t/parse.lisp b/t/parse.lisp
index 3c29dbc..8f636e5 100644
--- a/t/parse.lisp
+++ b/t/parse.lisp
@@ -34,7 +34,7 @@
(emit::x
(emit::i "LOADV" (emit::rr 8) (emit::rr 9) (emit::imm 1))
(emit::i "STORE" (emit::rr 3) (emit::rr 5) (emit::imm 3))
- (emit::i "ADDI" (emit::rr 5) (emit::rr 4) (emit::imm 2))))
+ (emit::i "ADDI" (emit::rr 4) (emit::rr 5) (emit::imm 2))))
(esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tLOADV $8 1($9)
~tSTORE $5 3($3)~%~tADDI $5 $4 2~%")))))