Pseudo-code:
- n <- (RB)[59:63]
+ n <- (RB)[XLEN-5:XLEN-1]
r <- ROTL32((RS)[32:63], n)
m <- MASK32(MB, ME)
RA <- r & m
Pseudo-code:
- n <- (RB)[58:63]
+ n <- (RB)[XLEN-5:XLEN-1]
r <- ROTL64((RS), n)
b <- mb[5] || mb[0:4]
- m <- MASK(b, 63)
+ m <- MASK(b, (XLEN-1))
RA <- r & m
Special Registers Altered:
Pseudo-code:
- n <- (RB)[58:63]
+ n <- (RB)[XLEN-5:XLEN-1]
r <- ROTL64((RS), n)
e <- me[5] || me[0:4]
m <- MASK(0, e)
Pseudo-code:
- n <- (RB)[59:63]
- r <- ROTL32((RS)[32:63], n)
- if (RB)[58] = 0 then
- m <- MASK32(0, 31-n)
- else m <- [0]*64
+ n <- (RB)[XLEN-5:XLEN-1]
+ r <- ROTL32((RS)[XLEN/2:XLEN-1], n)
+ if (RB)[XLEN-6] = 0 then
+ m <- MASK32(0, ((XLEN/2)-1-n))
+ else m <- [0]*XLEN
RA <- r & m
Special Registers Altered:
Pseudo-code:
- n <- (RB)[59:63]
- r <- ROTL32((RS)[32:63], 64-n)
- if (RB)[58] = 0 then
- m <- MASK32(n, 31)
- else m <- [0]*64
+ n <- (RB)[XLEN-5:XLEN-1]
+ r <- ROTL32((RS)[XLEN/2:XLEN-1], XLEN-n)
+ if (RB)[XLEN-6] = 0 then
+ m <- MASK32(n, ((XLEN/2)-1))
+ else m <- [0]*XLEN
RA <- r & m
Special Registers Altered:
Pseudo-code:
- n <- (RB)[59:63]
- r <- ROTL32((RS)[32:63], 64-n)
- if (RB)[58] = 0 then
- m <- MASK32(n, 31)
- else m <- [0]*64
- s <- (RS)[32]
- RA <- r&m | ([s]*64)& ¬m
- carry <- s & ((r&¬m)[32:63] != 0)
+ n <- (RB)[XLEN-5:XLEN-1]
+ r <- ROTL32((RS)[XLEN/2:XLEN-1], XLEN-n)
+ if (RB)[XLEN-6] = 0 then
+ m <- MASK32(n, ((XLEN/2)-1))
+ else m <- [0]*XLEN
+ s <- (RS)[XLEN/2]
+ RA <- r&m | ([s]*XLEN)& ¬m
+ carry <- s & ((r&¬m)[XLEN/2:XLEN-1] != 0)
CA <- carry
CA32 <- carry
Pseudo-code:
- n <- (RB)[58:63]
+ n <- (RB)[XLEN-6:XLEN-1]
r <- ROTL64((RS), n)
- if (RB)[57] = 0 then
- m <- MASK(0, 63-n)
- else m <- [0]*64
+ if (RB)[XLEN-7] = 0 then
+ m <- MASK(0, XLEN-1-n)
+ else m <- [0]*XLEN
RA <- r & m
Special Registers Altered:
Pseudo-code:
- n <- (RB)[58:63]
- r <- ROTL64((RS), 64-n)
- if (RB)[57] = 0 then
- m <- MASK(n, 63)
- else m <- [0]*64
+ n <- (RB)[XLEN-6:XLEN-1]
+ r <- ROTL64((RS), XLEN-n)
+ if (RB)[XLEN-7] = 0 then
+ m <- MASK(n, (XLEN-1))
+ else m <- [0]*XLEN
RA <- r & m
Special Registers Altered:
Pseudo-code:
- n <- (RB)[58:63]
- r <- ROTL64((RS), 64-n)
- if (RB)[57] = 0 then
- m <- MASK(n, 63)
- else m <- [0]*64
+ n <- (RB)[XLEN-6:XLEN-1]
+ r <- ROTL64((RS), XLEN-n)
+ if (RB)[XLEN-7] = 0 then
+ m <- MASK(n, (XLEN-1))
+ else m <- [0]*XLEN
s <- (RS)[0]
- RA <- r&m | ([s]*64)& ¬m
+ RA <- r&m | ([s]*XLEN)& ¬m
carry <- s & ((r&¬m) != 0)
CA <- carry
CA32 <- carry