aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAfonso Oliveira <Afonso.Oliveira@synopsys.com>2024-08-23 16:09:52 +0100
committerAfonso Oliveira <Afonso.Oliveira@synopsys.com>2024-08-23 16:09:52 +0100
commit62842a38e7d69e69db5b0285be187c57eac51114 (patch)
treeb2fb6c17d4871ba760b89c7f24d6e9956c04f6e7
parent41c6b4dd2177554e6476ad51f9d0cff8423bf356 (diff)
downloadriscv-opcodes-62842a38e7d69e69db5b0285be187c57eac51114.zip
riscv-opcodes-62842a38e7d69e69db5b0285be187c57eac51114.tar.gz
riscv-opcodes-62842a38e7d69e69db5b0285be187c57eac51114.tar.bz2
Added some Pseudo Instructions from the ISA and ASM manual
Co-authored by: Afonso Oliveira <Afonso.Oliveira@synopsys.com> Co-authored by: Alfredo Rodrigues <Alfredo.Rodrigues@synopsys.com> Signed-off-by: Afonso Oliveira <Afonso.Oliveira@synopsys.com>
-rw-r--r--rv64_i2
-rw-r--r--rv_i25
2 files changed, 27 insertions, 0 deletions
diff --git a/rv64_i b/rv64_i
index 3fad043..74a93af 100644
--- a/rv64_i
+++ b/rv64_i
@@ -18,3 +18,5 @@ subw rd rs1 rs2 31..25=32 14..12=0 6..2=0x0E 1..0=3
sllw rd rs1 rs2 31..25=0 14..12=1 6..2=0x0E 1..0=3
srlw rd rs1 rs2 31..25=0 14..12=5 6..2=0x0E 1..0=3
sraw rd rs1 rs2 31..25=32 14..12=5 6..2=0x0E 1..0=3
+
+$pseudo_op rv64_i::addiw sext.w rd rs1 31..20=0 14..12=0 6..2=0x06 1..0=3 \ No newline at end of file
diff --git a/rv_i b/rv_i
index 1cf8b58..5422394 100644
--- a/rv_i
+++ b/rv_i
@@ -45,3 +45,28 @@ ebreak 31..20=0x001 19..7=0 6..2=0x1C 1..0=3
$pseudo_op rv_i::ecall scall 11..7=0 19..15=0 31..20=0x000 14..12=0 6..2=0x1C 1..0=3
$pseudo_op rv_i::ebreak sbreak 11..7=0 19..15=0 31..20=0x001 14..12=0 6..2=0x1C 1..0=3
+
+#pseudoinstructions from asm manual
+$pseudo_op rv_i::addi mv rd rs1 31..20=0 14..12=0 6..2=0x04 1..0=3
+$pseudo_op rv_i::sub neg rd rs1 31..25=32 24..20=0x0 14..12=0 6..2=0x0C 1..0=3
+$pseudo_op rv_i::addi nop 31..20=0 19..15=0 14..12=0 11..7=0 6..2=0x04 1..0=3
+$pseudo_op rv_i::andi zext.b rd rs1 31..20=0 14..12=7 6..2=0x04 1..0=3
+
+$pseudo_op rv_i::jalr ret 31..20=0 19..15=0x01 14..12=0 11..7=0 6..2=0x19 1..0=3
+
+$pseudo_op rv_i::bgeu bleu bimm12hi rs2 rs1 bimm12lo 14..12=7 6..2=0x18 1..0=3
+$pseudo_op rv_i::bltu bgtu bimm12hi rs2 rs1 bimm12lo 14..12=6 6..2=0x18 1..0=3
+$pseudo_op rv_i::bge ble bimm12hi rs2 rs1 bimm12lo 14..12=5 6..2=0x18 1..0=3
+$pseudo_op rv_i::bge bgez bimm12hi rs1 bimm12lo 24..20=0x0 14..12=5 6..2=0x18 1..0=3
+$pseudo_op rv_i::bge blez bimm12hi rs2 bimm12lo 19..15=0x0 14..12=5 6..2=0x18 1..0=3
+$pseudo_op rv_i::blt bgt bimm12hi rs2 rs1 bimm12lo 14..12=4 6..2=0x18 1..0=3
+$pseudo_op rv_i::blt bgtz bimm12hi rs2 bimm12lo 19..15=0x0 14..12=4 6..2=0x18 1..0=3
+$pseudo_op rv_i::blt bltz bimm12hi rs1 bimm12lo 24..20=0x0 14..12=4 6..2=0x18 1..0=3
+$pseudo_op rv_i::bne bnez bimm12hi rs1 bimm12lo 24..20=0x0 14..12=1 6..2=0x18 1..0=3
+$pseudo_op rv_i::beq beqz bimm12hi rs1 bimm12lo 24..20=0x0 14..12=0 6..2=0x18 1..0=3
+
+$pseudo_op rv_i::sltiu seqz rd rs1 31..20=1 14..12=3 6..2=0x04 1..0=3
+$pseudo_op rv_i::sltu snez rd rs2 31..25=0 19..15=0x0 14..12=3 6..2=0x0C 1..0=3
+$pseudo_op rv_i::slt sltz rd rs1 31..25=0 24..20=0x0 14..12=2 6..2=0x0C 1..0=3
+$pseudo_op rv_i::slt sgtz rd rs2 31..25=0 19..15=0x0 14..12=2 6..2=0x0C 1..0=3
+