summaryrefslogtreecommitdiff
path: root/t/parse.lisp
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-11 16:39:21 -0400
committerbd <bdunahu@operationnull.com>2025-04-11 16:39:21 -0400
commit639098b1ea82be82bd18a4af415458fcbaf5e20b (patch)
treecaecdd1499d2e391cd5bd2dcde3aebfade002a09 /t/parse.lisp
parent5c9ac514d0556d875a12b2c7d3c4aedf23b9575b (diff)
Add RET and NOP j-type instructions
Diffstat (limited to 't/parse.lisp')
-rw-r--r--t/parse.lisp11
1 files changed, 6 insertions, 5 deletions
diff --git a/t/parse.lisp b/t/parse.lisp
index 7c084aa..2612f45 100644
--- a/t/parse.lisp
+++ b/t/parse.lisp
@@ -45,9 +45,10 @@
(emit::x
(emit::j "JMP" (emit::rr 3) 3)
(emit::j "JRL" (emit::rr 0) (emit::l "FOO" 8))
+ (emit::j "RET" (emit::rr 0) 0)
(emit::j "PUSH" (emit::rr 5) 0)))
(esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tJMP 3($3)
-~tJRL FOO~%~tPUSH $5~%")))))
+~tJRL FOO~%~tRET~%~tPUSH $5~%")))))
(test esrap-instr-type-i-negative
(is (equal
@@ -73,7 +74,7 @@
(emit::d)
(emit::x
(emit::j "JMP" (emit::rr 3) 3)
- (emit::j "JRL" (emit::rr 0) (emit::l "FOO" 14))
+ (emit::j "JRL" (emit::rr 0) (emit::l "FOO" 15))
(emit::j "PUSH" (emit::rr 5) 0)))
(esrap:parse 'parse:str->ast (format nil ".DATA~%~%.TEXT~t~%JMP 3($3)~t
JRL FOO~t~%PUSH $5~%")))))
@@ -84,7 +85,7 @@ JRL FOO~t~%PUSH $5~%")))))
(emit::d)
(emit::x
(emit::j "JMP" (emit::rr 3) 3)
- (emit::j "JRL" (emit::rr 0) (emit::l "FOO" 17))
+ (emit::j "JRL" (emit::rr 0) (emit::l "FOO" 18))
(emit::j "PUSH" (emit::rr 5) 0)))
(esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT;; dot dot dot
~tJMP 3($3) ;; this does things
@@ -143,11 +144,11 @@ H 3 5~%.TEXT~%")))))
(emit::i "ADDI" (emit::rr 0) (emit::rr 5) (emit::var "S"))
(emit::i "ADDI" (emit::rr 0) (emit::rr 10) (emit::var "ARR"))
(emit::i "ADDI" (emit::rr 0) (emit::rr 6) (emit::var "I"))
- (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 23))
+ (emit::j "JRL" (emit::rr 0) (emit::l "CMP" 24))
(emit::r "ADD" (emit::rr 10) (emit::rr 6) (emit::rr 9))
(emit::i "ADDI" (emit::rr 6) (emit::rr 6) 1)
(emit::r "CMP" (emit::rr 6) (emit::rr 5) (emit::rr 0))
- (emit::j "BGT" (emit::rr 0) (emit::l "L" 27))))
+ (emit::j "BGT" (emit::rr 0) (emit::l "L" 28))))
(esrap:parse 'parse:str->ast (format nil "
.DATA
ARR 1 2 3 4