mode is encoded in XO and is 4 bits
- crrweird: RT, BFA, M, mask.mode
+ crrweird: RT,BFA,M,mask,mode
creg = CR{BFA}
n0 = mask[0] & (mode[0] == creg[0])
mode is encoded in XO and is 4 bits
- mfcrrweird: RT, BFA, mask.mode
+ mfcrrweird: RT,BFA,mask,mode
creg = CR{BFA}
n0 = mask[0] & (mode[0] == creg[0])
mode is encoded in XO and is 4 bits
- mtcrrweird: BF, RA, M, mask.mode
+ mtcrrweird: BF,RA,M,mask,mode
n0 = mask[0] & (mode[0] == RA[63])
n1 = mask[1] & (mode[1] == RA[62])
**mtcrweird**
- mtcrweird: BF, RA, M, mask.mode
+ mtcrweird: BF,RA,M,mask,mode
reg = (RA|0)
lsb = reg[63] # MSB0 numbering
the EQ bit from the source may only go into the EQ bit of the
destination (optionally inverted, set, or cleared).
- mcrfm: BF, BFA, M, mask.mode
+ mcrfm: BF,BFA,M,mask,mode
result = mask & CR{BFA}
if M:
result ^= mode
CR{BF} = result
-Note that when M=1 this operation is a Read-Modify-Write on the CR Field
+When M=1 this operation is a Read-Modify-Write on the CR Field
BF. Masked-out bits of the 4-bit CR Field BF will not be changed when
M=1. Correspondingly when M=0 this operation is an overwrite: no read
of BF is required because the masked-out bits of the BF CR Field are
**crweirder**
- crweirder: BT, BFA, mask.mode
+ crweirder: BT,BFA,mask,mode
creg = CR{BFA}
n0 = mask[0] & (mode[0] == creg[0])
**Example Pseudo-ops:**
- mtcri BF, mode mtcrweird BF, r0, 0, 0b1111.~mode
- mtcrset BF, mask mtcrweird BF, r0, 1, mask.0b0000
- mtcrclr BF, mask mtcrweird BF, r0, 1, mask.0b1111
+ mtcri BF, mode mtcrweird BF, r0, 0, 0b1111,~mode
+ mtcrset BF, mask mtcrweird BF, r0, 1, mask,0b0000
+ mtcrclr BF, mask mtcrweird BF, r0, 1, mask,0b1111
# Vectorised versions involving GPRs