summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--input/adjacent-adder-vector.asm6
-rw-r--r--input/over_or_under.asm6
-rw-r--r--input/vector_fun.asm1
-rw-r--r--src/parse.lisp4
-rw-r--r--src/util.lisp2
-rw-r--r--t/parse.lisp16
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