slli high bit correction

This commit is contained in:
Olof Astrand
2020-12-04 17:32:07 +01:00
parent c39a1d5076
commit 98356cbd10

View File

@ -1106,11 +1106,12 @@ macro extract_bit(val, bit, result) {
}
# SLLI - Shift Left Logical Immediate, pg. 525.
:slli ar, as, u5_4.7_20 is u3_21.23 = 0 & u5_4.7_20 & op1 = 0b0001 & ar & as & op0 = 0 {
local sa:1 = 32 - u5_4.7_20;
:slli ar, as, u5_4.7_20 is u3_21.23 = 0 & u1_20 & u5_4.7_20 & op1 = 0b0001 & ar & as & op0 = 0 {
local sa:1 = 32 - 16 * u1_20 - u5_4.7_20;
ar = as << sa;
}
# SRA - Shift Right Arithmetic, pg. 526.
:sra ar, at is op2 = 0b1011 & op1 = 0b0001 & ar & as = 0 & at & op0 = 0 {
ar = at s>> sar;