aboutsummaryrefslogtreecommitdiff
path: root/extensions/rv_i
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/rv_i')
-rw-r--r--extensions/rv_i76
1 files changed, 76 insertions, 0 deletions
diff --git a/extensions/rv_i b/extensions/rv_i
new file mode 100644
index 0000000..6d1fd38
--- /dev/null
+++ b/extensions/rv_i
@@ -0,0 +1,76 @@
+# rv_i
+
+lui rd imm20 6..2=0x0D 1..0=3
+auipc rd imm20 6..2=0x05 1..0=3
+jal rd jimm20 6..2=0x1b 1..0=3
+jalr rd rs1 imm12 14..12=0 6..2=0x19 1..0=3
+beq bimm12hi rs1 rs2 bimm12lo 14..12=0 6..2=0x18 1..0=3
+bne bimm12hi rs1 rs2 bimm12lo 14..12=1 6..2=0x18 1..0=3
+blt bimm12hi rs1 rs2 bimm12lo 14..12=4 6..2=0x18 1..0=3
+bge bimm12hi rs1 rs2 bimm12lo 14..12=5 6..2=0x18 1..0=3
+bltu bimm12hi rs1 rs2 bimm12lo 14..12=6 6..2=0x18 1..0=3
+bgeu bimm12hi rs1 rs2 bimm12lo 14..12=7 6..2=0x18 1..0=3
+lb rd rs1 imm12 14..12=0 6..2=0x00 1..0=3
+lh rd rs1 imm12 14..12=1 6..2=0x00 1..0=3
+lw rd rs1 imm12 14..12=2 6..2=0x00 1..0=3
+lbu rd rs1 imm12 14..12=4 6..2=0x00 1..0=3
+lhu rd rs1 imm12 14..12=5 6..2=0x00 1..0=3
+sb imm12hi rs1 rs2 imm12lo 14..12=0 6..2=0x08 1..0=3
+sh imm12hi rs1 rs2 imm12lo 14..12=1 6..2=0x08 1..0=3
+sw imm12hi rs1 rs2 imm12lo 14..12=2 6..2=0x08 1..0=3
+addi rd rs1 imm12 14..12=0 6..2=0x04 1..0=3
+slti rd rs1 imm12 14..12=2 6..2=0x04 1..0=3
+sltiu rd rs1 imm12 14..12=3 6..2=0x04 1..0=3
+xori rd rs1 imm12 14..12=4 6..2=0x04 1..0=3
+ori rd rs1 imm12 14..12=6 6..2=0x04 1..0=3
+andi rd rs1 imm12 14..12=7 6..2=0x04 1..0=3
+add rd rs1 rs2 31..25=0 14..12=0 6..2=0x0C 1..0=3
+sub rd rs1 rs2 31..25=32 14..12=0 6..2=0x0C 1..0=3
+sll rd rs1 rs2 31..25=0 14..12=1 6..2=0x0C 1..0=3
+slt rd rs1 rs2 31..25=0 14..12=2 6..2=0x0C 1..0=3
+sltu rd rs1 rs2 31..25=0 14..12=3 6..2=0x0C 1..0=3
+xor rd rs1 rs2 31..25=0 14..12=4 6..2=0x0C 1..0=3
+srl rd rs1 rs2 31..25=0 14..12=5 6..2=0x0C 1..0=3
+sra rd rs1 rs2 31..25=32 14..12=5 6..2=0x0C 1..0=3
+or rd rs1 rs2 31..25=0 14..12=6 6..2=0x0C 1..0=3
+and rd rs1 rs2 31..25=0 14..12=7 6..2=0x0C 1..0=3
+fence fm pred succ rs1 14..12=0 rd 6..2=0x03 1..0=3
+#specialized fences
+$pseudo_op rv_i::fence fence.tso 31..28=8 27..24=3 23..20=3 rs1 14..12=0 rd 6..2=0x03 1..0=3
+$pseudo_op rv_i::fence pause 31..28=0 27..24=1 23..20=0 19..15=0 14..12=0 11..7=0 6..2=0x03 1..0=3
+ecall 31..20=0x000 19..7=0 6..2=0x1C 1..0=3
+ebreak 31..20=0x001 19..7=0 6..2=0x1C 1..0=3
+
+#Old names for ecall/ebreak
+$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=0xff 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
+
+$pseudo_op rv_i::jalr jalr rs1 31..20=0 14..12=0 11..7=0x01 6..2=0x19 1..0=3
+$pseudo_op rv_i::jalr jr rs1 31..20=0 14..12=0 11..7=0x0 6..2=0x19 1..0=3
+$pseudo_op rv_i::jal jal jimm20 11..7=0x01 6..2=0x1b 1..0=3
+$pseudo_op rv_i::jal j jimm20 11..7=0x0 6..2=0x1b 1..0=3