# Add/sub addic: unit: U_ADD rA: RA_RA rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 invertIn: N carryIn: CA_0 carryOut: Y addic_dot: unit: U_ADD rA: RA_RA rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_1 invertIn: N carryIn: CA_0 carryOut: Y addi: unit: U_ADD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 invertIn: N carryIn: CA_0 carryOut: N addis: unit: U_ADD rA: RA_RA_OR_ZERO rB: RB_CONST_SI_HI rOut: ROUT_RT compare: CMP_RC_0 invertIn: N carryIn: CA_0 carryOut: N subfic: unit: U_ADD rA: RA_RA rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 invertIn: Y carryIn: CA_1 carryOut: Y add: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: N carryIn: CA_0 carryOut: N addc: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: N carryIn: CA_0 carryOut: Y adde: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: N carryIn: CA_CA carryOut: Y addme: unit: U_ADD rA: RA_RA rB: RB_CONST_M1 rOut: ROUT_RT compare: CMP_RC_RC invertIn: N carryIn: CA_CA carryOut: Y addze: unit: U_ADD rA: RA_RA rB: RB_CONST_ZERO rOut: ROUT_RT compare: CMP_RC_RC invertIn: N carryIn: CA_CA carryOut: Y subf: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y carryIn: CA_1 carryOut: N subfc: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y carryIn: CA_1 carryOut: Y subfe: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y carryIn: CA_CA carryOut: Y subfme: unit: U_ADD rA: RA_RA rB: RB_CONST_M1 rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y carryIn: CA_CA carryOut: Y subfze: unit: U_ADD rA: RA_RA rB: RB_CONST_ZERO rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y carryIn: CA_CA carryOut: Y neg: unit: U_ADD rA: RA_RA rB: RB_CONST_ZERO rOut: ROUT_RT compare: CMP_RC_RC invertIn: Y invertOut: N carryIn: CA_1 carryOut: N andi_dot: unit: U_LOG internalOp: LOG_AND rB: RB_CONST_UI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_1 invertIn: N invertOut: N andis_dot: unit: U_LOG internalOp: LOG_AND rB: RB_CONST_UI_HI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_1 invertIn: N invertOut: N # Logical and: unit: U_LOG internalOp: LOG_AND rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N andc: unit: U_LOG internalOp: LOG_AND rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: Y invertOut: N nand: unit: U_LOG internalOp: LOG_AND rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: Y ori: unit: U_LOG internalOp: LOG_OR rB: RB_CONST_UI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 invertIn: N invertOut: N oris: unit: U_LOG internalOp: LOG_OR rB: RB_CONST_UI_HI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 invertIn: N invertOut: N nor: unit: U_LOG internalOp: LOG_OR rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: Y or: unit: U_LOG internalOp: LOG_OR rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N orc: unit: U_LOG internalOp: LOG_OR rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: Y invertOut: N xori: unit: U_LOG internalOp: LOG_XOR rB: RB_CONST_UI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 invertIn: N invertOut: N xoris: unit: U_LOG internalOp: LOG_XOR rB: RB_CONST_UI_HI rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 invertIn: N invertOut: N eqv: unit: U_LOG internalOp: LOG_XOR rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: Y xor: unit: U_LOG internalOp: LOG_XOR rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N extsb: unit: U_LOG internalOp: LOG_EXTS rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N length: LEN_1B extsh: unit: U_LOG internalOp: LOG_EXTS rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N length: LEN_2B extsw: unit: U_LOG internalOp: LOG_EXTS rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC invertIn: N invertOut: N length: LEN_4B # Shift/rotate rlwimi: unit: U_ROT rA: RA_RA rB: RB_CONST_SH32 rS: RS_RS rOut: ROUT_RA compare: RC is32bit: Y signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rlwimi: unit: U_ROT rA: RA_RA rB: RB_CONST_SH32 rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rlwinm: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH32 rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rlwnm: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rldic: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rldicl: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: Y clearRight: N carryOut: N rldicr: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: N clearRight: Y carryOut: N rldimi: unit: U_ROT rA: RA_RA rB: RB_CONST_SH rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: Y clearRight: Y carryOut: N rldcl: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: Y clearRight: N carryOut: N rldcr: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: N clearRight: Y carryOut: N sld: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: N clearLeft: N clearRight: N carryOut: N slw: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: N rightShift: N clearLeft: N clearRight: N carryOut: N srad: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: Y rightShift: Y clearLeft: N clearRight: N carryOut: Y sradi: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: Y rightShift: Y clearLeft: N clearRight: N carryOut: Y sraw: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: Y rightShift: Y clearLeft: N clearRight: N carryOut: Y srawi: unit: U_ROT rA: RA_ZERO rB: RB_CONST_SH32 rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: Y rightShift: Y clearLeft: N clearRight: N carryOut: Y srd: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N signed: N rightShift: Y clearLeft: N clearRight: N carryOut: N srw: unit: U_ROT rA: RA_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y signed: N rightShift: Y clearLeft: N clearRight: N carryOut: N # Load/store lbz: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: N lbzu: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lha: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: Y byteReverse: N update: N reservation: N lhau: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: Y byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lhz: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: N lhzu: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lwa: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_DS rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: Y byteReverse: N update: N reservation: N lwz: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: N lwzu: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 ld: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_DS rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: N ldu: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_CONST_DS rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lbarx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: Y lbzx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: N lbzux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lharx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: Y lhax: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: Y byteReverse: N update: N reservation: N lhaux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: Y byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lhbrx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: Y update: N reservation: N lhzx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: N lhzux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lwarx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: Y lwax: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: Y byteReverse: N update: N reservation: N lwaux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: Y byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 lwbrx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: Y update: N reservation: N lwzx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: N lwzux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 ldarx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: Y ldbrx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: Y update: N reservation: N ldx: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: N ldux: unit: U_LDST internalOp: LDST_LOAD rA: RA_RA_OR_ZERO rB: RB_RB rOut: ROUT_RT compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 stb: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: N stbu: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 sth: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: N sthu: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 stw: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: N stwu: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_SI rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 std: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_DS rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: N stdu: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_CONST_DS rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 stbcx_dot: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: Y stbx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: N reservation: N stbux: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_1B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 sthbrx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: Y update: N reservation: N sthcx_dot: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: Y sthx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: N reservation: N sthux: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_2B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 stwbrx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: Y update: N reservation: N stwcx_dot: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: Y stwx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: N reservation: N stwux: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_4B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 stdbrx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: Y update: N reservation: N stdcx_dot: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: Y stdx: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: N reservation: N stdux: unit: U_LDST internalOp: LDST_STORE rA: RA_RA_OR_ZERO rB: RB_RB rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 length: LEN_8B signed: N byteReverse: N update: Y reservation: N invertIn: N carryIn: CA_0 # Multiply mulli: unit: U_MUL rA: RA_RA rB: RB_CONST_SI rOut: ROUT_RT compare: CMP_RC_0 is32bit: N signed: Y high: N mulhd: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: Y high: Y mulhdu: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: N high: Y mulhw: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: Y high: Y mulhwu: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: N high: Y mulld: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: Y high: N mullw: unit: U_MUL rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: Y high: N # Divide divdeu: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: N extended: Y divweu: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: N extended: Y divde: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: Y extended: Y divwe: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: Y extended: Y divdu: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: N extended: N divwu: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: N extended: N divd: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: Y extended: N divw: unit: U_DIV internalOp: DIV_DIV rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: Y extended: N modud: unit: U_DIV internalOp: DIV_MOD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: N extended: N moduw: unit: U_DIV internalOp: DIV_MOD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: N extended: N modsd: unit: U_DIV internalOp: DIV_MOD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: N signed: Y extended: N modsw: unit: U_DIV internalOp: DIV_MOD rA: RA_RA rB: RB_RB rOut: ROUT_RT compare: CMP_RC_RC is32bit: Y signed: Y extended: N # cache control sync: unit: U_NONE compare: CMP_RC_0 isync: unit: U_NONE compare: CMP_RC_0 dcbf: unit: U_NONE compare: CMP_RC_0 dcbst: unit: U_NONE compare: CMP_RC_0 dcbt: unit: U_NONE compare: CMP_RC_0 dcbtst: unit: U_NONE compare: CMP_RC_0 icbi: unit: U_NONE compare: CMP_RC_0 icbt: unit: U_NONE compare: CMP_RC_0 # Count leading/trailing zeroes cntlzd: unit: U_ZER rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N countRight: N cntlzw: unit: U_ZER rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y countRight: N cnttzd: unit: U_ZER rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: N countRight: Y cnttzw: unit: U_ZER rS: RS_RS rOut: ROUT_RA compare: CMP_RC_RC is32bit: Y countRight: Y popcntb: unit: U_POP rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 length: LEN_1B popcntw: unit: U_POP rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 length: LEN_4B popcntd: unit: U_POP rS: RS_RS rOut: ROUT_RA compare: CMP_RC_0 length: LEN_8B cmpdi: unit: U_ADD rA: RA_RA rB: RB_CONST_SI rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: N signed: Y compare: CMP_CMP cmpwi: unit: U_ADD rA: RA_RA rB: RB_CONST_SI rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: Y signed: Y compare: CMP_CMP cmpd: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: N signed: Y compare: CMP_CMP cmpw: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: Y signed: Y compare: CMP_CMP cmpldi: unit: U_ADD rA: RA_RA rB: RB_CONST_UI rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: N signed: N compare: CMP_CMP cmplwi: unit: U_ADD rA: RA_RA rB: RB_CONST_UI rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: Y signed: N compare: CMP_CMP cmpld: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: N signed: N compare: CMP_CMP cmplw: unit: U_ADD rA: RA_RA rB: RB_RB rOut: ROUT_NONE invertIn: Y carryIn: CA_1 crOut: Y is32bit: Y signed: N compare: CMP_CMP mfspr: unit: U_SPR internalOp: SPR_MF rOut: ROUT_RT compare: CMP_RC_0 mtspr: unit: U_SPR internalOp: SPR_MT rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 mfcr: unit: U_CR internalOp: CR_MF rOut: ROUT_RT compare: CMP_RC_0 fxm: FXM_FF mfocrf: unit: U_CR internalOp: CR_MF rOut: ROUT_RT compare: CMP_RC_0 fxm: FXM_ONEHOT mtcrf: unit: U_CR internalOp: CR_MT rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 fxm: FXM mtocrf: unit: U_CR internalOp: CR_MT rS: RS_RS rOut: ROUT_NONE compare: CMP_RC_0 fxm: FXM_ONEHOT b: unit: U_BR internalOp: BR_UNCOND brTarget: BR_TARGET_NONE bc: unit: U_BR internalOp: BR_COND brTarget: BR_TARGET_NONE bclr: unit: U_BR internalOp: BR_COND brTarget: BR_TARGET_LR bcctr: unit: U_BR internalOp: BR_COND brTarget: BR_TARGET_CTR # Just to get our test cases going for now tdi: unit: U_NONE