Pseudo-code:
n <- (RB)[XLEN-5:XLEN-1]
- r <- ROTL32((RS)[32:63], n)
+ r <- ROTL32((RS)[XLEN/2:XLEN-1], n)
m <- MASK32(MB, ME)
RA <- r & m
MD-Form
-* rldicl RA,RS,SH,MB (Rc=0)
-* rldicl. RA,RS,SH,MB (Rc=1)
+* rldicl RA,RS,sh,mb (Rc=0)
+* rldicl. RA,RS,sh,mb (Rc=1)
Pseudo-code:
MD-Form
-* rldicr RA,RS,SH,ME (Rc=0)
-* rldicr. RA,RS,SH,ME (Rc=1)
+* rldicr RA,RS,sh,me (Rc=0)
+* rldicr. RA,RS,sh,me (Rc=1)
Pseudo-code:
MD-Form
-* rldic RA,RS,SH,MB (Rc=0)
-* rldic. RA,RS,SH,MB (Rc=1)
+* rldic RA,RS,sh,mb (Rc=0)
+* rldic. RA,RS,sh,mb (Rc=1)
Pseudo-code:
MDS-Form
-* rldcl RA,RS,RB,MB (Rc=0)
-* rldcl. RA,RS,RB,MB (Rc=1)
+* rldcl RA,RS,RB,mb (Rc=0)
+* rldcl. RA,RS,RB,mb (Rc=1)
Pseudo-code:
MDS-Form
-* rldcr RA,RS,RB,ME (Rc=0)
-* rldcr. RA,RS,RB,ME (Rc=1)
+* rldcr RA,RS,RB,me (Rc=0)
+* rldcr. RA,RS,RB,me (Rc=1)
Pseudo-code:
MD-Form
-* rldimi RA,RS,SH,MB (Rc=0)
-* rldimi. RA,RS,SH,MB (Rc=1)
+* rldimi RA,RS,sh,mb (Rc=0)
+* rldimi. RA,RS,sh,mb (Rc=1)
Pseudo-code:
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:
XS-Form
-* sradi RA,RS,SH (Rc=0)
-* sradi. RA,RS,SH (Rc=1)
+* sradi RA,RS,sh (Rc=0)
+* sradi. RA,RS,sh (Rc=1)
Pseudo-code:
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
XS-Form
-* extswsli RA,RS,SH (Rc=0)
-* extswsli. RA,RS,SH (Rc=1)
+* extswsli RA,RS,sh (Rc=0)
+* extswsli. RA,RS,sh (Rc=1)
Pseudo-code: