diff options
-rw-r--r-- | input/add-loop.asm | 1 | ||||
-rw-r--r-- | src/parse.lisp | 2 | ||||
-rw-r--r-- | t/parse.lisp | 2 |
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~%"))))) |