diff options
Diffstat (limited to 'riscv/insns/slli.h')
-rw-r--r-- | riscv/insns/slli.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/riscv/insns/slli.h b/riscv/insns/slli.h index f7ba310..bfaf430 100644 --- a/riscv/insns/slli.h +++ b/riscv/insns/slli.h @@ -1,2 +1,8 @@ -require64; -RD = RS1 << SHAMT; +if(xpr64) + RD = RS1 << SHAMT; +else +{ + if(SHAMT & 0x20) + throw trap_illegal_instruction; + RD = sext32(RS1 << SHAMT); +} |