4 changed files with 6 additions and 22 deletions
@ -1,3 +1,2 @@ |
|||
if (SHAMT >= xlen) |
|||
throw trap_illegal_instruction(); |
|||
require(SHAMT < xlen); |
|||
WRITE_RD(sext_xlen(RS1 << SHAMT)); |
|||
|
|||
@ -1,8 +1,2 @@ |
|||
if (xlen == 64) |
|||
WRITE_RD(sreg_t(RS1) >> SHAMT); |
|||
else |
|||
{ |
|||
if(SHAMT & 0x20) |
|||
throw trap_illegal_instruction(); |
|||
WRITE_RD(sext32(int32_t(RS1) >> SHAMT)); |
|||
} |
|||
require(SHAMT < xlen); |
|||
WRITE_RD(sext_xlen(sext_xlen(RS1) >> SHAMT)); |
|||
|
|||
@ -1,4 +1 @@ |
|||
if (xlen == 64) |
|||
WRITE_RD(RS1 >> (RS2 & 0x3F)); |
|||
else |
|||
WRITE_RD(sext32((uint32_t)RS1 >> (RS2 & 0x1F))); |
|||
WRITE_RD(sext_xlen(zext_xlen(RS1) >> (RS2 & (xlen-1)))); |
|||
|
|||
@ -1,8 +1,2 @@ |
|||
if (xlen == 64) |
|||
WRITE_RD(RS1 >> SHAMT); |
|||
else |
|||
{ |
|||
if(SHAMT & 0x20) |
|||
throw trap_illegal_instruction(); |
|||
WRITE_RD(sext32((uint32_t)RS1 >> SHAMT)); |
|||
} |
|||
require(SHAMT < xlen); |
|||
WRITE_RD(sext_xlen(zext_xlen(RS1) >> SHAMT)); |
|||
|
|||
Loading…
Reference in new issue