diff options
-rw-r--r-- | input/adjacent-adder-vector.asm | 6 | ||||
-rw-r--r-- | input/over_or_under.asm | 6 | ||||
-rw-r--r-- | input/vector_fun.asm | 1 | ||||
-rw-r--r-- | src/parse.lisp | 4 | ||||
-rw-r--r-- | src/util.lisp | 2 | ||||
-rw-r--r-- | t/parse.lisp | 16 |
6 files changed, 17 insertions, 18 deletions
diff --git a/input/adjacent-adder-vector.asm b/input/adjacent-adder-vector.asm index 80bc8a3..a8fc55d 100644 --- a/input/adjacent-adder-vector.asm +++ b/input/adjacent-adder-vector.asm @@ -8,11 +8,11 @@ .text load $4 s($0) ; set the vector-length register addi $5 $0 arr - loadv $16 0($5) + srdl $16 0($5) addi $5 $5 0x1 - loadv $17 0($6) + srdl $17 0($6) addv $16 $16 $17 - storev $16 arr($0) + srds $16 arr($0) nop nop nop diff --git a/input/over_or_under.asm b/input/over_or_under.asm index 4be18ab..9ca0f05 100644 --- a/input/over_or_under.asm +++ b/input/over_or_under.asm @@ -13,9 +13,9 @@ load $4 vSiz($0) load $5 max($0) load $6 min($0) - loadv $17 max($0) - loadv $18 min($0) - loadv $19 n1($0) + srdl $17 max($0) + srdl $18 min($0) + srdl $19 n1($0) addi $7 $0 1 addi $8 $0 -1 jrl ADDROVER diff --git a/input/vector_fun.asm b/input/vector_fun.asm index eed38ce..f91b4a0 100644 --- a/input/vector_fun.asm +++ b/input/vector_fun.asm @@ -5,7 +5,6 @@ s 4 .text load $4 s($0) ; set the vector length register - LOOP: cev $17 $16 beq END diff --git a/src/parse.lisp b/src/parse.lisp index 56c23f4..e40487f 100644 --- a/src/parse.lisp +++ b/src/parse.lisp @@ -106,8 +106,8 @@ (generate-mnemonic 'r-type-3-m type-3)) (let* ((lst (reverse util:i-type)) - (type-1 '("LOADV" "LOAD")) - (type-2 '("STOREV" "STORE")) + (type-1 '("SRDL" "LOAD")) + (type-2 '("SRDS" "STORE")) (type-3 (remove-if (lambda (x) (member x (append type-1 type-2))) lst))) (generate-mnemonic 'i-type-1-m type-1) (generate-mnemonic 'i-type-2-m type-2) diff --git a/src/util.lisp b/src/util.lisp index 4af50e0..85076d1 100644 --- a/src/util.lisp +++ b/src/util.lisp @@ -88,7 +88,7 @@ of the elements from both lists. Returns nil if the lists are not equal size." "R-type instructions.") (defvar i-type - '("LOAD" "LOADV" "ADDI" "SUBI" "SFTRI" "SFTLI" "ANDI" "ORI" "XORI" "STORE" "STOREV") + '("LOAD" "SRDL" "ADDI" "SUBI" "SFTRI" "SFTLI" "ANDI" "ORI" "XORI" "STORE" "SRDS") "I-type instructions.") (defvar j-type diff --git a/t/parse.lisp b/t/parse.lisp index 2cb5b42..c69389e 100644 --- a/t/parse.lisp +++ b/t/parse.lisp @@ -41,10 +41,10 @@ '(emit::p (emit::d) (emit::x - (emit::i "LOADV" (emit::rr 8) (emit::rr 9) 1) + (emit::i "SRDL" (emit::rr 8) (emit::rr 9) 1) (emit::i "STORE" (emit::rr 3) (emit::rr 5) 3) (emit::i "ADDI" (emit::rr 4) (emit::rr 5) 2))) - (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tLOADV $8 1($9) + (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tSRDL $8 1($9) ~tSTORE $5 3($3)~%~tADDI $5 $4 2~%"))))) (test esrap-instr-type-all-type-j @@ -64,17 +64,17 @@ '(emit::p (emit::d) (emit::x - (emit::i "LOADV" (emit::rr 8) (emit::rr 3) -3))) - (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tLOADV $8 -3($3)~%"))))) + (emit::i "SRDL" (emit::rr 8) (emit::rr 3) -3))) + (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tSRDL $8 -3($3)~%"))))) (test esrap-instr-type-i-vars (is (equal '(emit::p (emit::d) (emit::x - (emit::i "LOADV" (emit::rr 8) (emit::rr 4) 2) + (emit::i "SRDL" (emit::rr 8) (emit::rr 4) 2) (emit::i "STORE" (emit::rr 1) (emit::rr 5) 2))) - (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tLOADV $8 2($4) + (esrap:parse 'parse:str->ast (format nil ".DATA~%.TEXT~%~tSRDL $8 2($4) ~tSTORE $5 2($1)~%"))))) (test esrap-instr-type-all-lazy-spaces @@ -144,8 +144,8 @@ H 3 5~%.TEXT~%"))))) (emit::d -1) (emit::x - (emit::i "LOADV" (emit::rr -8) (emit::rr -3) -3))) - (esrap:parse 'parse:str->ast (format nil ".DATA~%~tm -1~%.TEXT~%~tLOADV $-8 -3($-3)~%"))))) + (emit::i "SRDL" (emit::rr -8) (emit::rr -3) -3))) + (esrap:parse 'parse:str->ast (format nil ".DATA~%~tm -1~%.TEXT~%~tSRDL $-8 -3($-3)~%"))))) (test esrap-data-full (is (equal |