* andi. RA,RS,UI
+Pseudo-code:
+
RA <- (RS) & ([0]*48 || UI)
Special Registers Altered:
* ori RA,RS,UI
+Pseudo-code:
+
RA <- (RS) | ([0]*48 || UI)
Special Registers Altered:
* andis. RA,RS,UI
+Pseudo-code:
+
RA <- (RS) & ([0]*32 || UI || [0]*16)
Special Registers Altered:
* oris RA,RS,UI
+Pseudo-code:
+
RA <- (RS) | ([0]*32 || UI || [0]*16)
Special Registers Altered:
* xoris RA,RS,UI
+Pseudo-code:
+
RA <- (RS) ^ ([0]*32 || UI || [0]*16)
Special Registers Altered:
* xori RA,RS,UI
+Pseudo-code:
+
RA <- (RS) ^ ([0]*48 || UI)
Special Registers Altered:
* and RA,RS,RB (Rc=0)
* and. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- (RS) & (RB)
Special Registers Altered:
* or RA,RS,RB (Rc=0)
* or. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- (RS) | (RB)
Special Registers Altered:
* xor RA,RS,RB (Rc=0)
* xor. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- (RS) ^ (RB)
Special Registers Altered:
* nand RA,RS,RB (Rc=0)
* nand. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- ¬((RS) & (RB))
Special Registers Altered:
* nor RA,RS,RB (Rc=0)
* nor. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- ¬((RS) | (RB))
Special Registers Altered:
* eqv RA,RS,RB (Rc=0)
* eqv. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- ¬((RS) ^ (RB))
Special Registers Altered:
* andc RA,RS,RB (Rc=0)
* andc. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- (RS) & ¬(RB)
Special Registers Altered:
* orc RA,RS,RB (Rc=0)
* orc. RA,RS,RB (Rc=1)
+Pseudo-code:
+
RA <- (RS) | ¬(RB)
Special Registers Altered:
* extsb RA,RS (Rc=0)
* extsb. RA,RS (Rc=1)
+Pseudo-code:
+
s <- (RS)[56]
RA[56:63] <- (RS)[56:63]
RA[0:55] <- [s]*56
* extsh RA,RS (Rc=0)
* extsh. RA,RS (Rc=1)
+Pseudo-code:
+
s <- (RS)[48]
RA[48:63] <- (RS)[48:63]
RA[0:47] <- [s]*48
* cntlzw RA,RS (Rc=0)
* cntlzw. RA,RS (Rc=1)
+Pseudo-code:
+
n <- 32
do while n < 64
if (RS)[n] = 1 then
* cnttzw RA,RS (Rc=0)
* cnttzw. RA,RS (Rc=1)
+Pseudo-code:
+
n <- 0
do while n < 32
- if (RS)[63-n=] = 0b1 then
+ if (RS)[63-n] = 0b1 then
leave
n <- n + 1
RA <- EXTZ64(n)
* cmpb RA,RS,RB
+Pseudo-code:
+
do n = 0 to 7
if RS[8*n:8* n+7] = (RB)[8*n:8*n+7] then
RA[8*n:8* n+7] <- [1]*8
* popcntb RA, RS
+Pseudo-code:
+
do i = 0 to 7
n <- 0
do j = 0 to 7
* popcntw RA, RS
+Pseudo-code:
+
do i = 0 to 1
n <- 0
do j = 0 to 31
* prtyd RA,RS
+Pseudo-code:
+
s <- 0
do i = 0 to 7
- s <- s / (RS)[i%8+7]
+ s <- s ^ (RS)[i*8+7]
RA <- [0] * 63 || s
Special Registers Altered:
* prtyw RA,RS
+Pseudo-code:
+
s <- 0
t <- 0
do i = 0 to 3
- s <- s / (RS)i%8+7
+ s <- s ^ (RS)[i*8+7]
do i = 4 to 7
- t <- t / (RS)i%8+7
+ t <- t ^ (RS)[i*8+7]
RA[0:31] <- [0]*31 || s
RA[32:63] <- [0]*31 || t
* extsw RA,RS (Rc=0)
* extsw. RA,RS (Rc=1)
+Pseudo-code:
+
s <- (RS)[32]
RA[32:63] <- (RS)[32:63]
RA[0:31] <- [s]*32
* popcntd RA, RS
+Pseudo-code:
+
n <- 0
do i = 0 to 63
if (RS)[i] = 1 then
* cntlzd RA,RS (Rc=0)
* cntlzd. RA,RS (Rc=1)
+Pseudo-code:
+
n <- 0
do while n < 64
if (RS)[n] = 1 then
* cnttzd RA,RS (Rc=0)
* cnttzd. RA,RS (Rc=1)
+Pseudo-code:
+
n <- 0
do while n < 64
if (RS)[63-n] = 0b1 then
* bpermd RA,RS,RB]
+Pseudo-code:
+
perm <- [0] * 8
- For i = 0 to 7
+ for i = 0 to 7
index <- (RS)[8*i:8*i+7]
if index < 64 then
perm[i] <- (RB)[index]