Skip to content

Commit

Permalink
Fix backwards incompatibility introduced by RV128 opcodes in #112
Browse files Browse the repository at this point in the history
Adding RV128 shift opcodes changed what metadata we emit for SLLI, SRLI,
and SRAI.  Thus, downstream tooling that relies on these to connote the
RV64 variants of these instructions is semantically affected.

Fix by reverting SLLI etc. to being the RV64 variants.
  • Loading branch information
aswaterman committed Jan 12, 2023
1 parent e961083 commit 37a0ce0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
6 changes: 3 additions & 3 deletions rv32_i
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
$pseudo_op rv128_i::slli slli rd rs1 shamtw 31..25=0 14..12=1 6..2=0x04 1..0=3
$pseudo_op rv128_i::srli srli rd rs1 shamtw 31..25=0 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv128_i::srai srai rd rs1 shamtw 31..25=32 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv128_i::slli slli_rv32 rd rs1 shamtw 31..25=0 14..12=1 6..2=0x04 1..0=3
$pseudo_op rv128_i::srli srli_rv32 rd rs1 shamtw 31..25=0 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv128_i::srai srai_rv32 rd rs1 shamtw 31..25=32 14..12=5 6..2=0x04 1..0=3
6 changes: 3 additions & 3 deletions rv64_i
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ lwu rd rs1 imm12 14..12=6 6..2=0x00 1..0=3
ld rd rs1 imm12 14..12=3 6..2=0x00 1..0=3
sd imm12hi rs1 rs2 imm12lo 14..12=3 6..2=0x08 1..0=3

$pseudo_op rv128_i::slli slli rd rs1 31..26=0 shamtd 14..12=1 6..2=0x04 1..0=3
$pseudo_op rv128_i::srli srli rd rs1 31..26=0 shamtd 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv128_i::srai srai rd rs1 31..26=16 shamtd 14..12=5 6..2=0x04 1..0=3
slli rd rs1 31..26=0 shamtd 14..12=1 6..2=0x04 1..0=3
srli rd rs1 31..26=0 shamtd 14..12=5 6..2=0x04 1..0=3
srai rd rs1 31..26=16 shamtd 14..12=5 6..2=0x04 1..0=3

addiw rd rs1 imm12 14..12=0 6..2=0x06 1..0=3
slliw rd rs1 31..25=0 shamtw 14..12=1 6..2=0x06 1..0=3
Expand Down
7 changes: 3 additions & 4 deletions unratified/rv128_i
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ ldu rd rs1 imm12 14..12=7 6..2=0x00 1..0=3

sq imm12hi rs1 rs2 imm12lo 14..12=4 6..2=0x08 1..0=3

# RV32 and RV64 versions of these are in opcodes-pseudo
slli rd rs1 31..27=0 shamtq 14..12=1 6..2=0x04 1..0=3
srli rd rs1 31..27=0 shamtq 14..12=5 6..2=0x04 1..0=3
srai rd rs1 31..27=8 shamtq 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv64_i::slli slli_rv128 rd rs1 31..27=0 shamtq 14..12=1 6..2=0x04 1..0=3
$pseudo_op rv64_i::srli srli_rv128 rd rs1 31..27=0 shamtq 14..12=5 6..2=0x04 1..0=3
$pseudo_op rv64_i::srai srai_rv128 rd rs1 31..27=8 shamtq 14..12=5 6..2=0x04 1..0=3

0 comments on commit 37a0ce0

Please sign in to comment.