Skip to content

Commit 511b64c

Browse files
Add (C_)BGE and C_SW and correct LUI (#1588)
1 parent 4c5e01a commit 511b64c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

plugins/riscv/semantics/riscv.lisp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@
5353
(set$ dst src))
5454

5555
(defun C_LUI (dst imm)
56-
(set$ dst (lshift (cast-signed
57-
(- (word-width) 12)
58-
(cast-low 6 imm))
59-
12)))
56+
(set$ dst (lshift imm 12)))
6057

6158
(defun AUIPC (dst off)
6259
(set$ dst (+ (get-program-counter) off)))
@@ -86,6 +83,9 @@
8683
(defun LW (dst reg off)
8784
(load-word cast-signed 2 dst reg off))
8885

86+
(defun C_LW (dst reg off)
87+
(load-word cast-signed 2 dst reg off))
88+
8989
(defun LH (dst reg off)
9090
(load-word cast-signed 4 dst reg off))
9191

@@ -194,6 +194,9 @@
194194
(defun BNE (rs1 rs2 off)
195195
(conditional-jump (/= rs1 rs2) off))
196196

197+
(defun BGE (rs1 rs2 off)
198+
(conditional-jump (>= rs1 rs2) off))
199+
197200
(defun C_BEQ (rs1 rs2 off)
198201
(conditional-jump (= rs1 rs2) off))
199202

@@ -203,6 +206,9 @@
203206
(defun C_BNE (rs1 rs2 off)
204207
(conditional-jump (/= rs1 rs2) off))
205208

209+
(defun C_BGE (rs1 rs2 off)
210+
(conditional-jump (>= rs1 rs2) off))
211+
206212
(defun BEQZ (rs1 off)
207213
(conditional-jump (is-zero rs1) off))
208214

0 commit comments

Comments
 (0)