diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-10-05 21:24:01 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-10-05 21:24:01 -0700 |
commit | b0f3ed6e3bc78f11371864a0587d918c547b8022 (patch) | |
tree | 099ef5a8fa6eec84fcdb5eac73c428c0294d5c93 /riscv/insns | |
parent | 3fddbcc0a5b2fc6a446967405e58a92be5db9f5f (diff) | |
download | spike-b0f3ed6e3bc78f11371864a0587d918c547b8022.zip spike-b0f3ed6e3bc78f11371864a0587d918c547b8022.tar.gz spike-b0f3ed6e3bc78f11371864a0587d918c547b8022.tar.bz2 |
more work towards RVC 1.8
Diffstat (limited to 'riscv/insns')
-rw-r--r-- | riscv/insns/c_addi16sp.h | 3 | ||||
-rw-r--r-- | riscv/insns/c_lbu.h | 2 | ||||
-rw-r--r-- | riscv/insns/c_lui.h | 9 |
3 files changed, 7 insertions, 7 deletions
diff --git a/riscv/insns/c_addi16sp.h b/riscv/insns/c_addi16sp.h deleted file mode 100644 index 3bc88a4..0000000 --- a/riscv/insns/c_addi16sp.h +++ /dev/null @@ -1,3 +0,0 @@ -require_extension('C'); -require(insn.rvc_addi16sp_imm() != 0); -WRITE_REG(X_SP, sext_xlen(RVC_SP + insn.rvc_addi16sp_imm())); diff --git a/riscv/insns/c_lbu.h b/riscv/insns/c_lbu.h deleted file mode 100644 index 74a03b9..0000000 --- a/riscv/insns/c_lbu.h +++ /dev/null @@ -1,2 +0,0 @@ -require_extension('C'); -WRITE_RVC_RS2S(MMU.load_uint8(RVC_RS1S + insn.rvc_lb_imm())); diff --git a/riscv/insns/c_lui.h b/riscv/insns/c_lui.h index e5060a3..130aaed 100644 --- a/riscv/insns/c_lui.h +++ b/riscv/insns/c_lui.h @@ -1,3 +1,8 @@ require_extension('C'); -require(insn.rvc_rd() != 0); -WRITE_RD(insn.rvc_imm() << 12); +if (insn.rvc_rd() == 2) { // c.addi16sp + require(insn.rvc_addi16sp_imm() != 0); + WRITE_REG(X_SP, sext_xlen(RVC_SP + insn.rvc_addi16sp_imm())); +} else { + require(insn.rvc_rd() != 0); + WRITE_RD(insn.rvc_imm() << 12); +} |