  | B k
    { `Pb (DontSetAA,DontSetLK,$2) }
  | BA k
    { `Pb (SetAA,DontSetLK,$2) }
  | BL k
    { `Pb (DontSetAA,SetLK,$2) }
  | BLA k
    { `Pb (SetAA,SetLK,$2) }
  | BC k COMMA k COMMA k
    { `Pbc (DontSetAA,DontSetLK,$2,$4,$6) }
  | BCA k COMMA k COMMA k
    { `Pbc (SetAA,DontSetLK,$2,$4,$6) }
  | BCL k COMMA k COMMA k
    { `Pbc (DontSetAA,SetLK,$2,$4,$6) }
  | BCLA k COMMA k COMMA k
    { `Pbc (SetAA,SetLK,$2,$4,$6) }
  | BCLR k COMMA k COMMA k
    { `Pbclr (DontSetLK,$2,$4,$6) }
  | BCLRL k COMMA k COMMA k
    { `Pbclr (SetLK,$2,$4,$6) }
  | BCCTR k COMMA k COMMA k
    { `Pbcctr (DontSetLK,$2,$4,$6) }
  | BCCTRL k COMMA k COMMA k
    { `Pbcctr (SetLK,$2,$4,$6) }
  | CRAND k COMMA k COMMA k
    { `Pcrand ($2,$4,$6) }
  | CRNAND k COMMA k COMMA k
    { `Pcrnand ($2,$4,$6) }
  | CROR k COMMA k COMMA k
    { `Pcror ($2,$4,$6) }
  | CRXOR k COMMA k COMMA k
    { `Pcrxor ($2,$4,$6) }
  | CRNOR k COMMA k COMMA k
    { `Pcrnor ($2,$4,$6) }
  | CREQV k COMMA k COMMA k
    { `Pcreqv ($2,$4,$6) }
  | CRANDC k COMMA k COMMA k
    { `Pcrandc ($2,$4,$6) }
  | CRORC k COMMA k COMMA k
    { `Pcrorc ($2,$4,$6) }
  | MCRF crindex COMMA k
    { `Pmcrf ($2,$4) }
  | SC k
    { `Psc ($2) }
  | SCV k
    { `Pscv ($2) }
  | LBZ reg COMMA k LPAR reg RPAR
    { `Plbz ($2,$4,$6) }
  | LBZX reg COMMA reg COMMA reg
    { `Plbzx ($2,$4,$6) }
  | LBZU reg COMMA k LPAR reg RPAR
    { `Plbzu ($2,$4,$6) }
  | LBZUX reg COMMA reg COMMA reg
    { `Plbzux ($2,$4,$6) }
  | LHZ reg COMMA k LPAR reg RPAR
    { `Plhz ($2,$4,$6) }
  | LHZX reg COMMA reg COMMA reg
    { `Plhzx ($2,$4,$6) }
  | LHZU reg COMMA k LPAR reg RPAR
    { `Plhzu ($2,$4,$6) }
  | LHZUX reg COMMA reg COMMA reg
    { `Plhzux ($2,$4,$6) }
  | LHA reg COMMA k LPAR reg RPAR
    { `Plha ($2,$4,$6) }
  | LHAX reg COMMA reg COMMA reg
    { `Plhax ($2,$4,$6) }
  | LHAU reg COMMA k LPAR reg RPAR
    { `Plhau ($2,$4,$6) }
  | LHAUX reg COMMA reg COMMA reg
    { `Plhaux ($2,$4,$6) }
  | LWZ reg COMMA k LPAR reg RPAR
    { `Plwz ($2,$4,$6) }
  | LWZX reg COMMA reg COMMA reg
    { `Plwzx ($2,$4,$6) }
  | LWZU reg COMMA k LPAR reg RPAR
    { `Plwzu ($2,$4,$6) }
  | LWZUX reg COMMA reg COMMA reg
    { `Plwzux ($2,$4,$6) }
  | LWA reg COMMA ds LPAR reg RPAR
    { `Plwa ($2,$4,$6) }
  | LWAX reg COMMA reg COMMA reg
    { `Plwax ($2,$4,$6) }
  | LWAUX reg COMMA reg COMMA reg
    { `Plwaux ($2,$4,$6) }
  | LD reg COMMA ds LPAR reg RPAR
    { `Pld ($2,$4,$6) }
  | LDX reg COMMA reg COMMA reg
    { `Pldx ($2,$4,$6) }
  | LDU reg COMMA ds LPAR reg RPAR
    { `Pldu ($2,$4,$6) }
  | LDUX reg COMMA reg COMMA reg
    { `Pldux ($2,$4,$6) }
  | STB reg COMMA k LPAR reg RPAR
    { `Pstb ($2,$4,$6) }
  | STBX reg COMMA reg COMMA reg
    { `Pstbx ($2,$4,$6) }
  | STBU reg COMMA k LPAR reg RPAR
    { `Pstbu ($2,$4,$6) }
  | STBUX reg COMMA reg COMMA reg
    { `Pstbux ($2,$4,$6) }
  | STH reg COMMA k LPAR reg RPAR
    { `Psth ($2,$4,$6) }
  | STHX reg COMMA reg COMMA reg
    { `Psthx ($2,$4,$6) }
  | STHU reg COMMA k LPAR reg RPAR
    { `Psthu ($2,$4,$6) }
  | STHUX reg COMMA reg COMMA reg
    { `Psthux ($2,$4,$6) }
  | STW reg COMMA k LPAR reg RPAR
    { `Pstw ($2,$4,$6) }
  | STWX reg COMMA reg COMMA reg
    { `Pstwx ($2,$4,$6) }
  | STWU reg COMMA k LPAR reg RPAR
    { `Pstwu ($2,$4,$6) }
  | STWUX reg COMMA reg COMMA reg
    { `Pstwux ($2,$4,$6) }
  | STD reg COMMA ds LPAR reg RPAR
    { `Pstd ($2,$4,$6) }
  | STDX reg COMMA reg COMMA reg
    { `Pstdx ($2,$4,$6) }
  | STDU reg COMMA ds LPAR reg RPAR
    { `Pstdu ($2,$4,$6) }
  | STDUX reg COMMA reg COMMA reg
    { `Pstdux ($2,$4,$6) }
  | LQ k COMMA k LPAR reg RPAR COMMA k
    { `Plq ($2,$4,$6,$9) }
  | STQ k COMMA ds LPAR reg RPAR
    { `Pstq ($2,$4,$6) }
  | LHBRX reg COMMA reg COMMA reg
    { `Plhbrx ($2,$4,$6) }
  | STHBRX reg COMMA reg COMMA reg
    { `Psthbrx ($2,$4,$6) }
  | LWBRX reg COMMA reg COMMA reg
    { `Plwbrx ($2,$4,$6) }
  | STWBRX reg COMMA reg COMMA reg
    { `Pstwbrx ($2,$4,$6) }
  | LDBRX reg COMMA reg COMMA reg
    { `Pldbrx ($2,$4,$6) }
  | STDBRX reg COMMA reg COMMA reg
    { `Pstdbrx ($2,$4,$6) }
  | LMW reg COMMA k LPAR reg RPAR
    { `Plmw ($2,$4,$6) }
  | STMW reg COMMA k LPAR reg RPAR
    { `Pstmw ($2,$4,$6) }
  | LSWI k COMMA reg COMMA k
    { `Plswi ($2,$4,$6) }
  | LSWX reg COMMA reg COMMA reg
    { `Plswx ($2,$4,$6) }
  | STSWI k COMMA reg COMMA k
    { `Pstswi ($2,$4,$6) }
  | STSWX k COMMA reg COMMA reg
    { `Pstswx ($2,$4,$6) }
  | ADDI reg COMMA reg COMMA k
    { `Paddi ($2,$4,$6) }
  | ADDIS reg COMMA reg COMMA k
    { `Paddis ($2,$4,$6) }
  | ADD reg COMMA reg COMMA reg
    { `Padd (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDDOT reg COMMA reg COMMA reg
    { `Padd (DontSetSOOV,SetCR0,$2,$4,$6) }
  | ADDO reg COMMA reg COMMA reg
    { `Padd (SetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDODOT reg COMMA reg COMMA reg
    { `Padd (SetSOOV,SetCR0,$2,$4,$6) }
  | SUBF reg COMMA reg COMMA reg
    { `Psubf (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFDOT reg COMMA reg COMMA reg
    { `Psubf (DontSetSOOV,SetCR0,$2,$4,$6) }
  | SUBFO reg COMMA reg COMMA reg
    { `Psubf (SetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFODOT reg COMMA reg COMMA reg
    { `Psubf (SetSOOV,SetCR0,$2,$4,$6) }
  | ADDIC reg COMMA reg COMMA k
    { `Paddic ($2,$4,$6) }
  | ADDICDOT reg COMMA reg COMMA k
    { `Paddicdot ($2,$4,$6) }
  | SUBFIC reg COMMA reg COMMA k
    { `Psubfic ($2,$4,$6) }
  | ADDC reg COMMA reg COMMA reg
    { `Paddc (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDCDOT reg COMMA reg COMMA reg
    { `Paddc (DontSetSOOV,SetCR0,$2,$4,$6) }
  | ADDCO reg COMMA reg COMMA reg
    { `Paddc (SetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDCODOT reg COMMA reg COMMA reg
    { `Paddc (SetSOOV,SetCR0,$2,$4,$6) }
  | SUBFC reg COMMA reg COMMA reg
    { `Psubfc (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFCDOT reg COMMA reg COMMA reg
    { `Psubfc (DontSetSOOV,SetCR0,$2,$4,$6) }
  | SUBFCO reg COMMA reg COMMA reg
    { `Psubfc (SetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFCODOT reg COMMA reg COMMA reg
    { `Psubfc (SetSOOV,SetCR0,$2,$4,$6) }
  | ADDE reg COMMA reg COMMA reg
    { `Padde (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDEDOT reg COMMA reg COMMA reg
    { `Padde (DontSetSOOV,SetCR0,$2,$4,$6) }
  | ADDEO reg COMMA reg COMMA reg
    { `Padde (SetSOOV,DontSetCR0,$2,$4,$6) }
  | ADDEODOT reg COMMA reg COMMA reg
    { `Padde (SetSOOV,SetCR0,$2,$4,$6) }
  | SUBFE reg COMMA reg COMMA reg
    { `Psubfe (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFEDOT reg COMMA reg COMMA reg
    { `Psubfe (DontSetSOOV,SetCR0,$2,$4,$6) }
  | SUBFEO reg COMMA reg COMMA reg
    { `Psubfe (SetSOOV,DontSetCR0,$2,$4,$6) }
  | SUBFEODOT reg COMMA reg COMMA reg
    { `Psubfe (SetSOOV,SetCR0,$2,$4,$6) }
  | ADDME reg COMMA reg
    { `Paddme (DontSetSOOV,DontSetCR0,$2,$4) }
  | ADDMEDOT reg COMMA reg
    { `Paddme (DontSetSOOV,SetCR0,$2,$4) }
  | ADDMEO reg COMMA reg
    { `Paddme (SetSOOV,DontSetCR0,$2,$4) }
  | ADDMEODOT reg COMMA reg
    { `Paddme (SetSOOV,SetCR0,$2,$4) }
  | SUBFME reg COMMA reg
    { `Psubfme (DontSetSOOV,DontSetCR0,$2,$4) }
  | SUBFMEDOT reg COMMA reg
    { `Psubfme (DontSetSOOV,SetCR0,$2,$4) }
  | SUBFMEO reg COMMA reg
    { `Psubfme (SetSOOV,DontSetCR0,$2,$4) }
  | SUBFMEODOT reg COMMA reg
    { `Psubfme (SetSOOV,SetCR0,$2,$4) }
  | ADDZE reg COMMA reg
    { `Paddze (DontSetSOOV,DontSetCR0,$2,$4) }
  | ADDZEDOT reg COMMA reg
    { `Paddze (DontSetSOOV,SetCR0,$2,$4) }
  | ADDZEO reg COMMA reg
    { `Paddze (SetSOOV,DontSetCR0,$2,$4) }
  | ADDZEODOT reg COMMA reg
    { `Paddze (SetSOOV,SetCR0,$2,$4) }
  | SUBFZE reg COMMA reg
    { `Psubfze (DontSetSOOV,DontSetCR0,$2,$4) }
  | SUBFZEDOT reg COMMA reg
    { `Psubfze (DontSetSOOV,SetCR0,$2,$4) }
  | SUBFZEO reg COMMA reg
    { `Psubfze (SetSOOV,DontSetCR0,$2,$4) }
  | SUBFZEODOT reg COMMA reg
    { `Psubfze (SetSOOV,SetCR0,$2,$4) }
  | NEG reg COMMA reg
    { `Pneg (DontSetSOOV,DontSetCR0,$2,$4) }
  | NEGDOT reg COMMA reg
    { `Pneg (DontSetSOOV,SetCR0,$2,$4) }
  | NEGO reg COMMA reg
    { `Pneg (SetSOOV,DontSetCR0,$2,$4) }
  | NEGODOT reg COMMA reg
    { `Pneg (SetSOOV,SetCR0,$2,$4) }
  | MULLI reg COMMA reg COMMA k
    { `Pmulli ($2,$4,$6) }
  | MULLW reg COMMA reg COMMA reg
    { `Pmullw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MULLWDOT reg COMMA reg COMMA reg
    { `Pmullw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MULLWO reg COMMA reg COMMA reg
    { `Pmullw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MULLWODOT reg COMMA reg COMMA reg
    { `Pmullw (SetSOOV,SetCR0,$2,$4,$6) }
  | MULHW reg COMMA reg COMMA reg
    { `Pmulhw (DontSetCR0,$2,$4,$6) }
  | MULHWDOT reg COMMA reg COMMA reg
    { `Pmulhw (SetCR0,$2,$4,$6) }
  | MULHWU reg COMMA reg COMMA reg
    { `Pmulhwu (DontSetCR0,$2,$4,$6) }
  | MULHWUDOT reg COMMA reg COMMA reg
    { `Pmulhwu (SetCR0,$2,$4,$6) }
  | DIVW reg COMMA reg COMMA reg
    { `Pdivw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWDOT reg COMMA reg COMMA reg
    { `Pdivw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVWO reg COMMA reg COMMA reg
    { `Pdivw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWODOT reg COMMA reg COMMA reg
    { `Pdivw (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVWU reg COMMA reg COMMA reg
    { `Pdivwu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWUDOT reg COMMA reg COMMA reg
    { `Pdivwu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVWUO reg COMMA reg COMMA reg
    { `Pdivwu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWUODOT reg COMMA reg COMMA reg
    { `Pdivwu (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVWE reg COMMA reg COMMA reg
    { `Pdivwe (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWEDOT reg COMMA reg COMMA reg
    { `Pdivwe (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVWEO reg COMMA reg COMMA reg
    { `Pdivwe (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWEODOT reg COMMA reg COMMA reg
    { `Pdivwe (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVWEU reg COMMA reg COMMA reg
    { `Pdivweu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWEUDOT reg COMMA reg COMMA reg
    { `Pdivweu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVWEUO reg COMMA reg COMMA reg
    { `Pdivweu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVWEUODOT reg COMMA reg COMMA reg
    { `Pdivweu (SetSOOV,SetCR0,$2,$4,$6) }
  | MULLD reg COMMA reg COMMA reg
    { `Pmulld (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MULLDDOT reg COMMA reg COMMA reg
    { `Pmulld (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MULLDO reg COMMA reg COMMA reg
    { `Pmulld (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MULLDODOT reg COMMA reg COMMA reg
    { `Pmulld (SetSOOV,SetCR0,$2,$4,$6) }
  | MULHD reg COMMA reg COMMA reg
    { `Pmulhd (DontSetCR0,$2,$4,$6) }
  | MULHDDOT reg COMMA reg COMMA reg
    { `Pmulhd (SetCR0,$2,$4,$6) }
  | MULHDU reg COMMA reg COMMA reg
    { `Pmulhdu (DontSetCR0,$2,$4,$6) }
  | MULHDUDOT reg COMMA reg COMMA reg
    { `Pmulhdu (SetCR0,$2,$4,$6) }
  | DIVD reg COMMA reg COMMA reg
    { `Pdivd (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDDOT reg COMMA reg COMMA reg
    { `Pdivd (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVDO reg COMMA reg COMMA reg
    { `Pdivd (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDODOT reg COMMA reg COMMA reg
    { `Pdivd (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVDU reg COMMA reg COMMA reg
    { `Pdivdu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDUDOT reg COMMA reg COMMA reg
    { `Pdivdu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVDUO reg COMMA reg COMMA reg
    { `Pdivdu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDUODOT reg COMMA reg COMMA reg
    { `Pdivdu (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVDE reg COMMA reg COMMA reg
    { `Pdivde (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDEDOT reg COMMA reg COMMA reg
    { `Pdivde (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVDEO reg COMMA reg COMMA reg
    { `Pdivde (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDEODOT reg COMMA reg COMMA reg
    { `Pdivde (SetSOOV,SetCR0,$2,$4,$6) }
  | DIVDEU reg COMMA reg COMMA reg
    { `Pdivdeu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDEUDOT reg COMMA reg COMMA reg
    { `Pdivdeu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | DIVDEUO reg COMMA reg COMMA reg
    { `Pdivdeu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | DIVDEUODOT reg COMMA reg COMMA reg
    { `Pdivdeu (SetSOOV,SetCR0,$2,$4,$6) }
  | CMPI crindex COMMA k COMMA reg COMMA k
    { `Pcmpi ($2,$4,$6,$8) }
  | CMP crindex COMMA k COMMA reg COMMA reg
    { `Pcmp ($2,$4,$6,$8) }
  | CMPLI crindex COMMA k COMMA reg COMMA k
    { `Pcmpli ($2,$4,$6,$8) }
  | CMPL crindex COMMA k COMMA reg COMMA reg
    { `Pcmpl ($2,$4,$6,$8) }
  | ISEL reg COMMA reg COMMA reg COMMA k
    { `Pisel ($2,$4,$6,$8) }
  | ANDIDOT reg COMMA reg COMMA k
    { `Pandi ($2,$4,$6) }
  | ANDISDOT reg COMMA reg COMMA k
    { `Pandis ($2,$4,$6) }
  | ORI reg COMMA reg COMMA k
    { `Pori ($2,$4,$6) }
  | ORIS reg COMMA reg COMMA k
    { `Poris ($2,$4,$6) }
  | XORI reg COMMA reg COMMA k
    { `Pxori ($2,$4,$6) }
  | XORIS reg COMMA reg COMMA k
    { `Pxoris ($2,$4,$6) }
  | AND reg COMMA reg COMMA reg
    { `Pand (DontSetCR0,$2,$4,$6) }
  | ANDDOT reg COMMA reg COMMA reg
    { `Pand (SetCR0,$2,$4,$6) }
  | XOR reg COMMA reg COMMA reg
    { `Pxor (DontSetCR0,$2,$4,$6) }
  | XORDOT reg COMMA reg COMMA reg
    { `Pxor (SetCR0,$2,$4,$6) }
  | NAND reg COMMA reg COMMA reg
    { `Pnand (DontSetCR0,$2,$4,$6) }
  | NANDDOT reg COMMA reg COMMA reg
    { `Pnand (SetCR0,$2,$4,$6) }
  | OR reg COMMA reg COMMA reg
    { `Por (DontSetCR0,$2,$4,$6) }
  | ORDOT reg COMMA reg COMMA reg
    { `Por (SetCR0,$2,$4,$6) }
  | NOR reg COMMA reg COMMA reg
    { `Pnor (DontSetCR0,$2,$4,$6) }
  | NORDOT reg COMMA reg COMMA reg
    { `Pnor (SetCR0,$2,$4,$6) }
  | EQV reg COMMA reg COMMA reg
    { `Peqv (DontSetCR0,$2,$4,$6) }
  | EQVDOT reg COMMA reg COMMA reg
    { `Peqv (SetCR0,$2,$4,$6) }
  | ANDC reg COMMA reg COMMA reg
    { `Pandc (DontSetCR0,$2,$4,$6) }
  | ANDCDOT reg COMMA reg COMMA reg
    { `Pandc (SetCR0,$2,$4,$6) }
  | ORC reg COMMA reg COMMA reg
    { `Porc (DontSetCR0,$2,$4,$6) }
  | ORCDOT reg COMMA reg COMMA reg
    { `Porc (SetCR0,$2,$4,$6) }
  | EXTSB reg COMMA reg
    { `Pextsb (DontSetCR0,$2,$4) }
  | EXTSBDOT reg COMMA reg
    { `Pextsb (SetCR0,$2,$4) }
  | EXTSH reg COMMA reg
    { `Pextsh (DontSetCR0,$2,$4) }
  | EXTSHDOT reg COMMA reg
    { `Pextsh (SetCR0,$2,$4) }
  | CNTLZW reg COMMA reg
    { `Pcntlzw (DontSetCR0,$2,$4) }
  | CNTLZWDOT reg COMMA reg
    { `Pcntlzw (SetCR0,$2,$4) }
  | CMPB reg COMMA k COMMA reg
    { `Pcmpb ($2,$4,$6) }
  | POPCNTB reg COMMA reg
    { `Ppopcntb ($2,$4) }
  | POPCNTW reg COMMA reg
    { `Ppopcntw ($2,$4) }
  | PRTYD reg COMMA reg
    { `Pprtyd ($2,$4) }
  | PRTYW reg COMMA reg
    { `Pprtyw ($2,$4) }
  | EXTSW reg COMMA reg
    { `Pextsw (DontSetCR0,$2,$4) }
  | EXTSWDOT reg COMMA reg
    { `Pextsw (SetCR0,$2,$4) }
  | CNTLZD reg COMMA reg
    { `Pcntlzd (DontSetCR0,$2,$4) }
  | CNTLZDDOT reg COMMA reg
    { `Pcntlzd (SetCR0,$2,$4) }
  | POPCNTD reg COMMA reg
    { `Ppopcntd ($2,$4) }
  | BPERMD reg COMMA reg COMMA reg
    { `Pbpermd ($2,$4,$6) }
  | RLWINM reg COMMA reg COMMA k COMMA k COMMA k
    { `Prlwinm (DontSetCR0,$2,$4,$6,$8,$10) }
  | RLWINMDOT reg COMMA reg COMMA k COMMA k COMMA k
    { `Prlwinm (SetCR0,$2,$4,$6,$8,$10) }
  | RLWNM reg COMMA reg COMMA reg COMMA k COMMA k
    { `Prlwnm (DontSetCR0,$2,$4,$6,$8,$10) }
  | RLWNMDOT reg COMMA reg COMMA reg COMMA k COMMA k
    { `Prlwnm (SetCR0,$2,$4,$6,$8,$10) }
  | RLWIMI reg COMMA reg COMMA k COMMA k COMMA k
    { `Prlwimi (DontSetCR0,$2,$4,$6,$8,$10) }
  | RLWIMIDOT reg COMMA reg COMMA k COMMA k COMMA k
    { `Prlwimi (SetCR0,$2,$4,$6,$8,$10) }
  | RLDICL reg COMMA reg COMMA k COMMA k
    { `Prldicl (DontSetCR0,$2,$4,$6,$8) }
  | RLDICLDOT reg COMMA reg COMMA k COMMA k
    { `Prldicl (SetCR0,$2,$4,$6,$8) }
  | RLDICR reg COMMA reg COMMA k COMMA k
    { `Prldicr (DontSetCR0,$2,$4,$6,$8) }
  | RLDICRDOT reg COMMA reg COMMA k COMMA k
    { `Prldicr (SetCR0,$2,$4,$6,$8) }
  | RLDIC reg COMMA reg COMMA k COMMA k
    { `Prldic (DontSetCR0,$2,$4,$6,$8) }
  | RLDICDOT reg COMMA reg COMMA k COMMA k
    { `Prldic (SetCR0,$2,$4,$6,$8) }
  | RLDCL reg COMMA reg COMMA reg COMMA k
    { `Prldcl (DontSetCR0,$2,$4,$6,$8) }
  | RLDCLDOT reg COMMA reg COMMA reg COMMA k
    { `Prldcl (SetCR0,$2,$4,$6,$8) }
  | RLDCR reg COMMA reg COMMA reg COMMA k
    { `Prldcr (DontSetCR0,$2,$4,$6,$8) }
  | RLDCRDOT reg COMMA reg COMMA reg COMMA k
    { `Prldcr (SetCR0,$2,$4,$6,$8) }
  | RLDIMI reg COMMA reg COMMA k COMMA k
    { `Prldimi (DontSetCR0,$2,$4,$6,$8) }
  | RLDIMIDOT reg COMMA reg COMMA k COMMA k
    { `Prldimi (SetCR0,$2,$4,$6,$8) }
  | SLW reg COMMA reg COMMA reg
    { `Pslw (DontSetCR0,$2,$4,$6) }
  | SLWDOT reg COMMA reg COMMA reg
    { `Pslw (SetCR0,$2,$4,$6) }
  | SRW reg COMMA reg COMMA reg
    { `Psrw (DontSetCR0,$2,$4,$6) }
  | SRWDOT reg COMMA reg COMMA reg
    { `Psrw (SetCR0,$2,$4,$6) }
  | SRAWI reg COMMA reg COMMA k
    { `Psrawi (DontSetCR0,$2,$4,$6) }
  | SRAWIDOT reg COMMA reg COMMA k
    { `Psrawi (SetCR0,$2,$4,$6) }
  | SRAW reg COMMA reg COMMA reg
    { `Psraw (DontSetCR0,$2,$4,$6) }
  | SRAWDOT reg COMMA reg COMMA reg
    { `Psraw (SetCR0,$2,$4,$6) }
  | SLD reg COMMA reg COMMA reg
    { `Psld (DontSetCR0,$2,$4,$6) }
  | SLDDOT reg COMMA reg COMMA reg
    { `Psld (SetCR0,$2,$4,$6) }
  | SRD reg COMMA reg COMMA reg
    { `Psrd (DontSetCR0,$2,$4,$6) }
  | SRDDOT reg COMMA reg COMMA reg
    { `Psrd (SetCR0,$2,$4,$6) }
  | SRADI reg COMMA reg COMMA k
    { `Psradi (DontSetCR0,$2,$4,$6) }
  | SRADIDOT reg COMMA reg COMMA k
    { `Psradi (SetCR0,$2,$4,$6) }
  | SRAD reg COMMA reg COMMA reg
    { `Psrad (DontSetCR0,$2,$4,$6) }
  | SRADDOT reg COMMA reg COMMA reg
    { `Psrad (SetCR0,$2,$4,$6) }
  | CDTBCD reg COMMA reg
    { `Pcdtbcd ($2,$4) }
  | CBCDTD reg COMMA reg
    { `Pcbcdtd ($2,$4) }
  | ADDG6S reg COMMA reg COMMA reg
    { `Paddg6s ($2,$4,$6) }
  | MTSPR k COMMA reg
    { `Pmtspr ($2,$4) }
  | MFSPR reg COMMA k
    { `Pmfspr ($2,$4) }
  | MTCRF crmask COMMA reg
    { `Pmtcrf ($2,$4) }
  | MFCR reg
    { `Pmfcr ($2) }
  | MTOCRF crmask COMMA reg
    { `Pmtocrf ($2,$4) }
  | MFOCRF reg COMMA crmask
    { `Pmfocrf ($2,$4) }
  | MCRXR crindex
    { `Pmcrxr ($2) }
  | DLMZB reg COMMA reg COMMA reg
    { `Pdlmzb (DontSetCR0,$2,$4,$6) }
  | DLMZBDOT reg COMMA reg COMMA reg
    { `Pdlmzb (SetCR0,$2,$4,$6) }
  | MACCHW reg COMMA reg COMMA reg
    { `Pmacchw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWDOT reg COMMA reg COMMA reg
    { `Pmacchw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWO reg COMMA reg COMMA reg
    { `Pmacchw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWODOT reg COMMA reg COMMA reg
    { `Pmacchw (SetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWS reg COMMA reg COMMA reg
    { `Pmacchws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWSDOT reg COMMA reg COMMA reg
    { `Pmacchws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWSO reg COMMA reg COMMA reg
    { `Pmacchws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWSODOT reg COMMA reg COMMA reg
    { `Pmacchws (SetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWU reg COMMA reg COMMA reg
    { `Pmacchwu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWUDOT reg COMMA reg COMMA reg
    { `Pmacchwu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWUO reg COMMA reg COMMA reg
    { `Pmacchwu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWUODOT reg COMMA reg COMMA reg
    { `Pmacchwu (SetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWSU reg COMMA reg COMMA reg
    { `Pmacchwsu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWSUDOT reg COMMA reg COMMA reg
    { `Pmacchwsu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACCHWSUO reg COMMA reg COMMA reg
    { `Pmacchwsu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACCHWSUODOT reg COMMA reg COMMA reg
    { `Pmacchwsu (SetSOOV,SetCR0,$2,$4,$6) }
  | MACHHW reg COMMA reg COMMA reg
    { `Pmachhw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWDOT reg COMMA reg COMMA reg
    { `Pmachhw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWO reg COMMA reg COMMA reg
    { `Pmachhw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWODOT reg COMMA reg COMMA reg
    { `Pmachhw (SetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWS reg COMMA reg COMMA reg
    { `Pmachhws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWSDOT reg COMMA reg COMMA reg
    { `Pmachhws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWSO reg COMMA reg COMMA reg
    { `Pmachhws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWSODOT reg COMMA reg COMMA reg
    { `Pmachhws (SetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWU reg COMMA reg COMMA reg
    { `Pmachhwu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWUDOT reg COMMA reg COMMA reg
    { `Pmachhwu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWUO reg COMMA reg COMMA reg
    { `Pmachhwu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWUODOT reg COMMA reg COMMA reg
    { `Pmachhwu (SetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWSU reg COMMA reg COMMA reg
    { `Pmachhwsu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWSUDOT reg COMMA reg COMMA reg
    { `Pmachhwsu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACHHWSUO reg COMMA reg COMMA reg
    { `Pmachhwsu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACHHWSUODOT reg COMMA reg COMMA reg
    { `Pmachhwsu (SetSOOV,SetCR0,$2,$4,$6) }
  | MACLHW reg COMMA reg COMMA reg
    { `Pmaclhw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWDOT reg COMMA reg COMMA reg
    { `Pmaclhw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWO reg COMMA reg COMMA reg
    { `Pmaclhw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWODOT reg COMMA reg COMMA reg
    { `Pmaclhw (SetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWS reg COMMA reg COMMA reg
    { `Pmaclhws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWSDOT reg COMMA reg COMMA reg
    { `Pmaclhws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWSO reg COMMA reg COMMA reg
    { `Pmaclhws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWSODOT reg COMMA reg COMMA reg
    { `Pmaclhws (SetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWU reg COMMA reg COMMA reg
    { `Pmaclhwu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWUDOT reg COMMA reg COMMA reg
    { `Pmaclhwu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWUO reg COMMA reg COMMA reg
    { `Pmaclhwu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWUODOT reg COMMA reg COMMA reg
    { `Pmaclhwu (SetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWSU reg COMMA reg COMMA reg
    { `Pmaclhwsu (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWSUDOT reg COMMA reg COMMA reg
    { `Pmaclhwsu (DontSetSOOV,SetCR0,$2,$4,$6) }
  | MACLHWSUO reg COMMA reg COMMA reg
    { `Pmaclhwsu (SetSOOV,DontSetCR0,$2,$4,$6) }
  | MACLHWSUODOT reg COMMA reg COMMA reg
    { `Pmaclhwsu (SetSOOV,SetCR0,$2,$4,$6) }
  | MULCHW reg COMMA reg COMMA reg
    { `Pmulchw (DontSetCR0,$2,$4,$6) }
  | MULCHWDOT reg COMMA reg COMMA reg
    { `Pmulchw (SetCR0,$2,$4,$6) }
  | MULCHWU reg COMMA reg COMMA reg
    { `Pmulchwu (DontSetCR0,$2,$4,$6) }
  | MULCHWUDOT reg COMMA reg COMMA reg
    { `Pmulchwu (SetCR0,$2,$4,$6) }
  | MULHHW reg COMMA reg COMMA reg
    { `Pmulhhw (DontSetCR0,$2,$4,$6) }
  | MULHHWDOT reg COMMA reg COMMA reg
    { `Pmulhhw (SetCR0,$2,$4,$6) }
  | MULHHWU reg COMMA reg COMMA reg
    { `Pmulhhwu (DontSetCR0,$2,$4,$6) }
  | MULHHWUDOT reg COMMA reg COMMA reg
    { `Pmulhhwu (SetCR0,$2,$4,$6) }
  | MULLHW reg COMMA reg COMMA reg
    { `Pmullhw (DontSetCR0,$2,$4,$6) }
  | MULLHWDOT reg COMMA reg COMMA reg
    { `Pmullhw (SetCR0,$2,$4,$6) }
  | MULLHWU reg COMMA reg COMMA reg
    { `Pmullhwu (DontSetCR0,$2,$4,$6) }
  | MULLHWUDOT reg COMMA reg COMMA reg
    { `Pmullhwu (SetCR0,$2,$4,$6) }
  | NMACCHW reg COMMA reg COMMA reg
    { `Pnmacchw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACCHWDOT reg COMMA reg COMMA reg
    { `Pnmacchw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACCHWO reg COMMA reg COMMA reg
    { `Pnmacchw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACCHWODOT reg COMMA reg COMMA reg
    { `Pnmacchw (SetSOOV,SetCR0,$2,$4,$6) }
  | NMACCHWS reg COMMA reg COMMA reg
    { `Pnmacchws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACCHWSDOT reg COMMA reg COMMA reg
    { `Pnmacchws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACCHWSO reg COMMA reg COMMA reg
    { `Pnmacchws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACCHWSODOT reg COMMA reg COMMA reg
    { `Pnmacchws (SetSOOV,SetCR0,$2,$4,$6) }
  | NMACHHW reg COMMA reg COMMA reg
    { `Pnmachhw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACHHWDOT reg COMMA reg COMMA reg
    { `Pnmachhw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACHHWO reg COMMA reg COMMA reg
    { `Pnmachhw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACHHWODOT reg COMMA reg COMMA reg
    { `Pnmachhw (SetSOOV,SetCR0,$2,$4,$6) }
  | NMACHHWS reg COMMA reg COMMA reg
    { `Pnmachhws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACHHWSDOT reg COMMA reg COMMA reg
    { `Pnmachhws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACHHWSO reg COMMA reg COMMA reg
    { `Pnmachhws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACHHWSODOT reg COMMA reg COMMA reg
    { `Pnmachhws (SetSOOV,SetCR0,$2,$4,$6) }
  | NMACLHW reg COMMA reg COMMA reg
    { `Pnmaclhw (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACLHWDOT reg COMMA reg COMMA reg
    { `Pnmaclhw (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACLHWO reg COMMA reg COMMA reg
    { `Pnmaclhw (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACLHWODOT reg COMMA reg COMMA reg
    { `Pnmaclhw (SetSOOV,SetCR0,$2,$4,$6) }
  | NMACLHWS reg COMMA reg COMMA reg
    { `Pnmaclhws (DontSetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACLHWSDOT reg COMMA reg COMMA reg
    { `Pnmaclhws (DontSetSOOV,SetCR0,$2,$4,$6) }
  | NMACLHWSO reg COMMA reg COMMA reg
    { `Pnmaclhws (SetSOOV,DontSetCR0,$2,$4,$6) }
  | NMACLHWSODOT reg COMMA reg COMMA reg
    { `Pnmaclhws (SetSOOV,SetCR0,$2,$4,$6) }
  | ICBI reg COMMA reg
    { `Picbi ($2,$4) }
  | ICBT k COMMA reg COMMA reg
    { `Picbt ($2,$4,$6) }
  | DCBA reg COMMA reg
    { `Pdcba ($2,$4) }
  | DCBT reg COMMA reg COMMA k
    { `Pdcbt ($2,$4,$6) }
  | DCBTST reg COMMA reg COMMA k
    { `Pdcbtst ($2,$4,$6) }
  | DCBZ reg COMMA reg
    { `Pdcbz ($2,$4) }
  | DCBST reg COMMA reg
    { `Pdcbst ($2,$4) }
  | DCBF reg COMMA reg COMMA k
    { `Pdcbf ($2,$4,$6) }
  | ISYNC
    { `Pisync }
  | LBARX reg COMMA reg COMMA reg COMMA k
    { `Plbarx ($2,$4,$6,$8) }
  | LHARX reg COMMA reg COMMA reg COMMA k
    { `Plharx ($2,$4,$6,$8) }
  | LWARX reg COMMA reg COMMA reg COMMA k
    { `Plwarx ($2,$4,$6,$8) }
  | STBCXDOT reg COMMA reg COMMA reg
    { `Pstbcx ($2,$4,$6) }
  | STHCXDOT reg COMMA reg COMMA reg
    { `Psthcx ($2,$4,$6) }
  | STWCXDOT reg COMMA reg COMMA reg
    { `Pstwcx ($2,$4,$6) }
  | LDARX reg COMMA reg COMMA reg COMMA k
    { `Pldarx ($2,$4,$6,$8) }
  | STDCXDOT reg COMMA reg COMMA reg
    { `Pstdcx ($2,$4,$6) }
  | SYNC k
    { `Psync ($2) }
  | EIEIO
    { `Peieio }
  | WAIT k
    { `Pwait ($2) }
