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