use crate::prelude::*; pub enum Field { Simm, Uimm, Offset, PsOffset, BO, BI, BH, BD, LI, SH, MB, ME, RS, RD, RA, RA_Nz, RB, RC, Sr, Spr, FrS, FrD, FrA, FrB, FrC, CrbD, CrbA, CrbB, CrfD, CrfS, Crm, PsI, PsIX, PsW, PsWX, NB, Tbr, MtfsfFM, MtfsfIMM, SprSPRG, SprBAT, TO, L, } pub const fn apply_field(code: u32, field: Field, value: i32) -> u32 { match field { Field::Simm => code | (value as u32 & 0xffff), Field::Uimm => code | (value as u32 & 0xffff), Field::Offset => code | (value as u32 & 0xffff), Field::PsOffset => code | (value as u32 & 0xfff), Field::BO => code | ((value as u32 & 0x1f) << 21u8), Field::BI => code | ((value as u32 & 0x1f) << 16u8), Field::BH => code | ((value as u32 & 0x3) << 11u8), Field::BD => code | (((value as u32 >> 2u8) & 0x3fff) << 2u8), Field::LI => code | (((value as u32 >> 2u8) & 0xffffff) << 2u8), Field::SH => code | ((value as u32 & 0x1f) << 11u8), Field::MB => code | ((value as u32 & 0x1f) << 6u8), Field::ME => code | ((value as u32 & 0x1f) << 1u8), Field::RS => code | ((value as u32 & 0x1f) << 21u8), Field::RD => code | ((value as u32 & 0x1f) << 21u8), Field::RA => code | ((value as u32 & 0x1f) << 16u8), Field::RA_Nz => code | ((value as u32 & 0x1f) << 16u8), Field::RB => code | ((value as u32 & 0x1f) << 11u8), Field::RC => code | ((value as u32 & 0x1f) << 6u8), Field::Sr => code | ((value as u32 & 0xf) << 16u8), Field::Spr => { code | (((((value as u32 & 0b11111_00000u32) >> 5u32) | ((value as u32 & 0b00000_11111u32) << 5u32)) as u32 & 0x3ff) << 11u8) } Field::FrS => code | ((value as u32 & 0x1f) << 21u8), Field::FrD => code | ((value as u32 & 0x1f) << 21u8), Field::FrA => code | ((value as u32 & 0x1f) << 16u8), Field::FrB => code | ((value as u32 & 0x1f) << 11u8), Field::FrC => code | ((value as u32 & 0x1f) << 6u8), Field::CrbD => code | ((value as u32 & 0x1f) << 21u8), Field::CrbA => code | ((value as u32 & 0x1f) << 16u8), Field::CrbB => code | ((value as u32 & 0x1f) << 11u8), Field::CrfD => code | ((value as u32 & 0x7) << 23u8), Field::CrfS => code | ((value as u32 & 0x7) << 18u8), Field::Crm => code | ((value as u32 & 0xff) << 12u8), Field::PsI => code | ((value as u32 & 0x7) << 12u8), Field::PsIX => code | ((value as u32 & 0x7) << 7u8), Field::PsW => code | ((value as u32 & 0x1) << 15u8), Field::PsWX => code | ((value as u32 & 0x1) << 10u8), Field::NB => code | ((value as u32 & 0x1f) << 11u8), Field::Tbr => { code | (((((value as u32 & 0b11111_00000u32) >> 5u32) | ((value as u32 & 0b00000_11111u32) << 5u32)) as u32 & 0x3ff) << 11u8) } Field::MtfsfFM => code | ((value as u32 & 0xff) << 17u8), Field::MtfsfIMM => code | ((value as u32 & 0xf) << 12u8), Field::SprSPRG => code | ((value as u32 & 0x3) << 16u8), Field::SprBAT => code | ((value as u32 & 0x3) << 17u8), Field::TO => code | ((value as u32 & 0x1f) << 21u8), Field::L => code | ((value as u32 & 0x1) << 21u8), } } struct OpcodeInfo { code: u32, args: &'static [Field], } static OPCODES: phf::Map<&'static str, &'static [Option]> = ::phf::Map { key: 12913932095322966823, disps: &[ (0, 10), (1, 31), (0, 3), (0, 91), (0, 71), (0, 151), (0, 1), (1, 0), (0, 3), (1, 410), (0, 41), (0, 22), (0, 10), (0, 35), (0, 1), (0, 392), (0, 436), (0, 258), (0, 3), (0, 538), (0, 55), (0, 0), (0, 3), (0, 25), (0, 129), (0, 9), (0, 24), (0, 317), (0, 14), (0, 1), (0, 8), (0, 254), (0, 0), (0, 55), (0, 78), (0, 3), (1, 112), (0, 8), (0, 184), (0, 88), (0, 0), (0, 21), (0, 327), (0, 0), (0, 3), (0, 42), (0, 3), (0, 114), (0, 2), (0, 8), (0, 2), (0, 7), (0, 102), (10, 498), (2, 149), (0, 64), (0, 136), (0, 7), (0, 164), (0, 568), (2, 203), (0, 11), (2, 485), (0, 0), (0, 77), (0, 192), (0, 59), (0, 352), (2, 413), (0, 28), (0, 189), (1, 1), (0, 500), (0, 48), (1, 217), (0, 78), (3, 371), (0, 39), (0, 143), (0, 12), (1, 432), (0, 26), (0, 492), (0, 276), (0, 7), (0, 5), (0, 451), (0, 26), (0, 14), (3, 21), (1, 209), (0, 60), (7, 589), (0, 598), (16, 484), (0, 347), (2, 187), (7, 113), (2, 72), (3, 268), (0, 173), (0, 55), (0, 490), (0, 20), (0, 385), (2, 418), (0, 107), (9, 167), (5, 547), (0, 7), (1, 127), (0, 1), (0, 20), (0, 0), (0, 7), (27, 422), (0, 191), (0, 11), (0, 237), (0, 19), (42, 620), (0, 0), (0, 296), (12, 509), (1, 142), (0, 2), (1, 206), (0, 5), (0, 125), (36, 311), (0, 23), (0, 222), (0, 47), (0, 171), ], entries: &[ ("beqa-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("nop", &[Some(OpcodeInfo { code: 0x60000000, args: &[] })]), ("bnsa+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgtlr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("andi.", &[ None, None, None, Some(OpcodeInfo { code: 0x70000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("bge", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("addeo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000114, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fadd.", &[ None, None, None, Some(OpcodeInfo { code: 0xfc00002a, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("clrlslwi", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB, Field::SH], }), ]), ("fmsub.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc000038, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bdnzfla-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("fmuls", &[ None, None, None, Some(OpcodeInfo { code: 0xec000032, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("ps_nmadd", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000003e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("stfdu", &[ None, None, None, Some(OpcodeInfo { code: 0xdc000000, args: &[Field::FrS, Field::Offset, Field::RA] }), ]), ("bdnztl-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("mfdar", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("bdnzla", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bsola+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdzflr+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("icbi", &[ None, None, Some(OpcodeInfo { code: 0x7c0007ac, args: &[Field::RA, Field::RB] }), ]), ("mtxer", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("fres", &[ None, None, Some(OpcodeInfo { code: 0xec000030, args: &[Field::FrD, Field::FrB] }), ]), ("ble-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("stwux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00016e, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("lhaux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0002ee, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdzla-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bnela+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdz-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bgt-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("frsp.", &[ None, None, Some(OpcodeInfo { code: 0xfc000018, args: &[Field::FrD, Field::FrB] }), ]), ("cmpw", &[ None, None, Some(OpcodeInfo { code: 0x7c000000, args: &[Field::RA, Field::RB] }), Some(OpcodeInfo { code: 0x7c000000, args: &[Field::CrfD, Field::RA, Field::RB] }), ]), ("cmpld", &[ None, None, Some(OpcodeInfo { code: 0x7c000040, args: &[Field::RA, Field::RB] }), Some(OpcodeInfo { code: 0x7c000040, args: &[Field::CrfD, Field::RA, Field::RB] }), ]), ("bctrl", &[Some(OpcodeInfo { code: 0x4c000420, args: &[] })]), ("sraw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000630, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bclrl", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("cntlzw.", &[ None, None, Some(OpcodeInfo { code: 0x7c000034, args: &[Field::RA, Field::RS] }), ]), ("bdnz", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bgectr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("lhzx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00022e, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("andc.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000078, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("fsel.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00002e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("stfd", &[ None, None, None, Some(OpcodeInfo { code: 0xd8000000, args: &[Field::FrS, Field::Offset, Field::RA] }), ]), ("bsoctr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("xor", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000278, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("subfc", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000010, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("oris", &[ None, None, None, Some(OpcodeInfo { code: 0x64000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("tlbie", &[None, Some(OpcodeInfo { code: 0x7c000264, args: &[Field::RB] })]), ("cmpldi", &[ None, None, Some(OpcodeInfo { code: 0x28000000, args: &[Field::RA, Field::Uimm] }), Some(OpcodeInfo { code: 0x28000000, args: &[Field::CrfD, Field::RA, Field::Uimm] }), ]), ("dcbf", &[ None, None, Some(OpcodeInfo { code: 0x7c0000ac, args: &[Field::RA, Field::RB] }), ]), ("ps_merge11", &[ None, None, None, Some(OpcodeInfo { code: 0x100004e0, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bcctrl", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000420, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("dcbst", &[ None, None, Some(OpcodeInfo { code: 0x7c00006c, args: &[Field::RA, Field::RB] }), ]), ("addmeo", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d4, args: &[Field::RD, Field::RA] }), ]), ("crnand", &[ None, None, None, Some(OpcodeInfo { code: 0x4c0001c2, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("bdnzta+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("addco.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000014, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bgel-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnel+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("divwo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdnzfl-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("stb", &[ None, None, None, Some(OpcodeInfo { code: 0x98000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("bdzt-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("and", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000038, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bsoctr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bclrl+", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("subfo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000050, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdnzl+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("mfsrr0", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("mtlr", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("lwzux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00006e, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("blel+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lwzx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00002e, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdnzta-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnzflrl+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("stmw", &[ None, None, None, Some(OpcodeInfo { code: 0xbc000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("bdnzla-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bnsctr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("fmr.", &[ None, None, Some(OpcodeInfo { code: 0xfc000090, args: &[Field::FrD, Field::FrB] }), ]), ("mtdsisr", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("cntlzw", &[ None, None, Some(OpcodeInfo { code: 0x7c000034, args: &[Field::RA, Field::RS] }), ]), ("adde", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000114, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdztl+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("subfmeo", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d0, args: &[Field::RD, Field::RA] }), ]), ("bnsl-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnza", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("addi", &[ None, None, None, Some(OpcodeInfo { code: 0x38000000, args: &[Field::RD, Field::RA, Field::Simm] }), ]), ("stbux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001ee, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("bca", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bltctr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("extrwi.", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB, Field::SH], }), ]), ("bgela+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("cmpd", &[ None, None, Some(OpcodeInfo { code: 0x7c000000, args: &[Field::RA, Field::RB] }), Some(OpcodeInfo { code: 0x7c000000, args: &[Field::CrfD, Field::RA, Field::RB] }), ]), ("blrl", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("rlwimi", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x50000000, args: &[Field::RA, Field::RS, Field::SH, Field::MB, Field::ME], }), ]), ("bdnztla-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bgel+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgtctrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("extsb", &[ None, None, Some(OpcodeInfo { code: 0x7c000774, args: &[Field::RA, Field::RS] }), ]), ("mtfsfi", &[ None, None, Some(OpcodeInfo { code: 0xfc00010c, args: &[Field::CrfD, Field::MtfsfIMM] }), ]), ("ps_sel", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000002e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("crclr", &[None, Some(OpcodeInfo { code: 0x4c000182, args: &[Field::CrbD] })]), ("bgt", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bne", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bca-", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("srwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB] }), ]), ("srw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000430, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bdnzt-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bnsa-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("nand.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003b8, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("rfi", &[Some(OpcodeInfo { code: 0x4c000000, args: &[] })]), ("ps_cmpo0", &[ None, None, None, Some(OpcodeInfo { code: 0x10000040, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("xori", &[ None, None, None, Some(OpcodeInfo { code: 0x68000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("bdzta+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("divwu.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000396, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fnabs", &[ None, None, Some(OpcodeInfo { code: 0xfc000110, args: &[Field::FrD, Field::FrB] }), ]), ("bdzlr+", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("crxor", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000182, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("bnela-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("cmpdi", &[ None, None, Some(OpcodeInfo { code: 0x2c000000, args: &[Field::RA, Field::Simm] }), Some(OpcodeInfo { code: 0x2c000000, args: &[Field::CrfD, Field::RA, Field::Simm] }), ]), ("lfdux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0004ee, args: &[Field::FrD, Field::RA, Field::RB] }), ]), ("lwbrx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00042c, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fdiv", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000024, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("fnmsub", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bgtctr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bge+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("ble+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("addco", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000014, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("subf", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000050, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("addo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000214, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("lis", &[ None, None, Some(OpcodeInfo { code: 0x3c000000, args: &[Field::RD, Field::Uimm] }), ]), ("bgectr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bc", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("blt-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("stwcx.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00012d, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("subfc.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000010, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("isync", &[Some(OpcodeInfo { code: 0x4c00012c, args: &[] })]), ("bdnztlr", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("fmsubs", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec000038, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("mtsprg", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::SprSPRG, Field::RS] }), ]), ("andis.", &[ None, None, None, Some(OpcodeInfo { code: 0x74000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("tlbsync", &[Some(OpcodeInfo { code: 0x7c00046c, args: &[] })]), ("bdzf", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("subfco.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000010, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("addzeo.", &[ None, None, Some(OpcodeInfo { code: 0x7c000194, args: &[Field::RD, Field::RA] }), ]), ("bdza-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("divw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdzfa+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdza", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("ps_div", &[ None, None, None, Some(OpcodeInfo { code: 0x10000024, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bsola-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beqlrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("srw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000430, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("frsqrte.", &[ None, None, Some(OpcodeInfo { code: 0xfc000034, args: &[Field::FrD, Field::FrB] }), ]), ("blta+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnzfl", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bltlr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("rlwimi.", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x50000000, args: &[Field::RA, Field::RS, Field::SH, Field::MB, Field::ME], }), ]), ("mtfsb0.", &[None, Some(OpcodeInfo { code: 0xfc00008c, args: &[Field::CrbD] })]), ("dcbt", &[ None, None, Some(OpcodeInfo { code: 0x7c00022c, args: &[Field::RA, Field::RB] }), ]), ("fdiv.", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000024, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bdnzl", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("mfctr", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("lhbrx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00062c, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bnslrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("mfdsisr", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("bdztl", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bltla", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bcl", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bdzfla-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("lhax", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0002ae, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bgtl-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("fctiw.", &[ None, None, Some(OpcodeInfo { code: 0xfc00001c, args: &[Field::FrD, Field::FrB] }), ]), ("blea", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("ps_mul", &[ None, None, None, Some(OpcodeInfo { code: 0x10000032, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("crnor", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000042, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("beqctr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bdnzf-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("clrrwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::ME] }), ]), ("bdztla", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bsola", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lha", &[ None, None, None, Some(OpcodeInfo { code: 0xa8000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("extrwi", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB, Field::SH], }), ]), ("ps_madd", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000003a, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bdnztl", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bgela-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("fmuls.", &[ None, None, None, Some(OpcodeInfo { code: 0xec000032, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("bgtla+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mullw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fsub", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000028, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bltlr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("mfcr", &[None, Some(OpcodeInfo { code: 0x7c000026, args: &[Field::RD] })]), ("bdnz+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("cror", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000382, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("twgti", &[ None, None, Some(OpcodeInfo { code: 0xc0000000, args: &[Field::RA, Field::Simm] }), ]), ("crset", &[None, Some(OpcodeInfo { code: 0x4c000242, args: &[Field::CrbD] })]), ("bgectrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bnectrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bgtl", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("subfme", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d0, args: &[Field::RD, Field::RA] }), ]), ("stw", &[ None, None, None, Some(OpcodeInfo { code: 0x90000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("bnea-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beqctrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("fnmadd.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("mfdbatu", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::SprBAT] }), ]), ("bdzla+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bc+", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bdzlrl+", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("bdztlrl+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("bns", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mtear", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("ps_abs", &[ None, None, Some(OpcodeInfo { code: 0x10000210, args: &[Field::FrD, Field::FrB] }), ]), ("ps_neg", &[ None, None, Some(OpcodeInfo { code: 0x10000050, args: &[Field::FrD, Field::FrB] }), ]), ("bdnzlr", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("fmsub", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc000038, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bns+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnsl+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beqctr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bgectrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bgelr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("lwzu", &[ None, None, None, Some(OpcodeInfo { code: 0x84000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("srawi", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000670, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("ecowx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00036c, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("blelr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("mtdar", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("divwo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("orc.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000338, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bdnztla+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("mtcrf", &[ None, None, Some(OpcodeInfo { code: 0x7c000120, args: &[Field::Crm, Field::RS] }), ]), ("subfmeo.", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d0, args: &[Field::RD, Field::RA] }), ]), ("addis", &[ None, None, None, Some(OpcodeInfo { code: 0x3c000000, args: &[Field::RD, Field::RA, Field::Uimm] }), ]), ("bgea+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mtspr", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::Spr, Field::RS] }), ]), ("lswi", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0004aa, args: &[Field::RD, Field::RA, Field::NB] }), ]), ("frsqrte", &[ None, None, Some(OpcodeInfo { code: 0xfc000034, args: &[Field::FrD, Field::FrB] }), ]), ("bdzflrl+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("subfze", &[ None, None, Some(OpcodeInfo { code: 0x7c000190, args: &[Field::RD, Field::RA] }), ]), ("beql", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("cmpl", &[ None, None, None, None, Some(OpcodeInfo { code: 0x7c000040, args: &[Field::CrfD, Field::L, Field::RA, Field::RB], }), ]), ("frsp", &[ None, None, Some(OpcodeInfo { code: 0xfc000018, args: &[Field::FrD, Field::FrB] }), ]), ("bnelr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("xor.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000278, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bltl+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blectr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bsol", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnzf+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnzf", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnzt", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("ps_msub", &[ None, None, None, None, Some(OpcodeInfo { code: 0x10000038, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("fnabs.", &[ None, None, Some(OpcodeInfo { code: 0xfc000110, args: &[Field::FrD, Field::FrB] }), ]), ("bdza+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("ps_rsqrte", &[ None, None, Some(OpcodeInfo { code: 0x10000034, args: &[Field::FrD, Field::FrB] }), ]), ("bgtla", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mcrf", &[ None, None, Some(OpcodeInfo { code: 0x4c000000, args: &[Field::CrfD, Field::CrfS] }), ]), ("andc", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000078, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bnectr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("ps_cmpu1", &[ None, None, None, Some(OpcodeInfo { code: 0x10000080, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("bclr", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("bgelrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bltlrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bgelr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("blel", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("eciwx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00026c, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bgta", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blt+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("extsb.", &[ None, None, Some(OpcodeInfo { code: 0x7c000774, args: &[Field::RA, Field::RS] }), ]), ("psq_lx", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x1000000c, args: &[Field::FrD, Field::RA, Field::RB, Field::PsWX, Field::PsIX], }), ]), ("clrlwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB] }), ]), ("ps_muls0", &[ None, None, None, Some(OpcodeInfo { code: 0x10000018, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("dcbi", &[ None, None, Some(OpcodeInfo { code: 0x7c0003ac, args: &[Field::RA, Field::RB] }), ]), ("stwu", &[ None, None, None, Some(OpcodeInfo { code: 0x94000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("orc", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000338, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("fmadds", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003a, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("nor", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0000f8, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("mr", &[None, None, Some(OpcodeInfo { code: 0x7c000378, args: &[Field::RA, Field::RS] })]), ("nego", &[ None, None, Some(OpcodeInfo { code: 0x7c0000d0, args: &[Field::RD, Field::RA] }), ]), ("fmadd.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003a, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("beq", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnzlrl", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("blela", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("twllei", &[ None, None, Some(OpcodeInfo { code: 0xc0000000, args: &[Field::RA, Field::Simm] }), ]), ("mtsr", &[ None, None, Some(OpcodeInfo { code: 0x7c0001a4, args: &[Field::Sr, Field::RS] }), ]), ("bdzl-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bne+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnsctr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("stfs", &[ None, None, None, Some(OpcodeInfo { code: 0xd0000000, args: &[Field::FrS, Field::Offset, Field::RA] }), ]), ("fctiwz", &[ None, None, Some(OpcodeInfo { code: 0xfc00001e, args: &[Field::FrD, Field::FrB] }), ]), ("fnmsubs", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("fmsubs.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec000038, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bsolrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("lfdu", &[ None, None, None, Some(OpcodeInfo { code: 0xcc000000, args: &[Field::FrD, Field::Offset, Field::RA] }), ]), ("lmw", &[ None, None, None, Some(OpcodeInfo { code: 0xb8000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("beql-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mfear", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("fcmpu", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000000, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("bdnzta", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnza+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("fdivs.", &[ None, None, None, Some(OpcodeInfo { code: 0xec000024, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bdzta", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("mulhwu.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000016, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("mfibatu", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::SprBAT] }), ]), ("beqla+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdzl+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bdnzfla", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("ps_cmpu0", &[ None, None, None, Some(OpcodeInfo { code: 0x10000000, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("ps_merge01", &[ None, None, None, Some(OpcodeInfo { code: 0x10000460, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("beqa+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("ps_sum0", &[ None, None, None, None, Some(OpcodeInfo { code: 0x10000014, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("beqlr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("fsub.", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000028, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bdzfla", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("mtdec", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("bdnzt+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("subfme.", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d0, args: &[Field::RD, Field::RA] }), ]), ("cmplwi", &[ None, None, Some(OpcodeInfo { code: 0x28000000, args: &[Field::RA, Field::Uimm] }), Some(OpcodeInfo { code: 0x28000000, args: &[Field::CrfD, Field::RA, Field::Uimm] }), ]), ("neg.", &[ None, None, Some(OpcodeInfo { code: 0x7c0000d0, args: &[Field::RD, Field::RA] }), ]), ("mfsdr1", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("bdzta-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("clrlwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB] }), ]), ("beqla", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mulhwu", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000016, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdnzflr", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("stbu", &[ None, None, None, Some(OpcodeInfo { code: 0x9c000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("bsoctrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("bge-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("rotlwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("fsel", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00002e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("mcrxr", &[None, Some(OpcodeInfo { code: 0x7c000400, args: &[Field::CrfD] })]), ("stswi", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0005aa, args: &[Field::RS, Field::RA, Field::NB] }), ]), ("srwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB] }), ]), ("cmpi", &[ None, None, None, None, Some(OpcodeInfo { code: 0x2c000000, args: &[Field::CrfD, Field::L, Field::RA, Field::Simm], }), ]), ("ps_merge10", &[ None, None, None, Some(OpcodeInfo { code: 0x100004a0, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("ps_add", &[ None, None, None, Some(OpcodeInfo { code: 0x1000002a, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bsolr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("psq_stx", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x1000000e, args: &[Field::FrS, Field::RA, Field::RB, Field::PsWX, Field::PsIX], }), ]), ("bso+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("crmove", &[ None, None, Some(OpcodeInfo { code: 0x4c000382, args: &[Field::CrbD, Field::CrbA] }), ]), ("nor.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0000f8, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("subfeo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000110, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bltla+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mulhw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000096, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("rlwnm", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x5c000000, args: &[Field::RA, Field::RS, Field::RB, Field::MB, Field::ME], }), ]), ("fmr", &[ None, None, Some(OpcodeInfo { code: 0xfc000090, args: &[Field::FrD, Field::FrB] }), ]), ("subfeo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000110, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fadds.", &[ None, None, None, Some(OpcodeInfo { code: 0xec00002a, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("and.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000038, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("add.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000214, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("subfic", &[ None, None, None, Some(OpcodeInfo { code: 0x20000000, args: &[Field::RD, Field::RA, Field::Simm] }), ]), ("fmadd", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003a, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("stswx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00052a, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("mtsdr1", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("cmplw", &[ None, None, Some(OpcodeInfo { code: 0x7c000040, args: &[Field::RA, Field::RB] }), Some(OpcodeInfo { code: 0x7c000040, args: &[Field::CrfD, Field::RA, Field::RB] }), ]), ("bdnztlrl", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("blta", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("rotlw.", &[ None, None, None, Some(OpcodeInfo { code: 0x5c000000, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bnelr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("subfe.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000110, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("mullw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bnel", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("sth", &[ None, None, None, Some(OpcodeInfo { code: 0xb0000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("bdnzlrl+", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("crnot", &[ None, None, Some(OpcodeInfo { code: 0x4c000042, args: &[Field::CrbD, Field::CrbA] }), ]), ("bnsla", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgtctr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("srawi.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000670, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("cmp", &[ None, None, None, None, Some(OpcodeInfo { code: 0x7c000000, args: &[Field::CrfD, Field::L, Field::RA, Field::RB], }), ]), ("divw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bnel-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("divwuo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000396, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("subfe", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000110, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bcctrl+", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000420, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("fadds", &[ None, None, None, Some(OpcodeInfo { code: 0xec00002a, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("ps_nabs", &[ None, None, Some(OpcodeInfo { code: 0x10000110, args: &[Field::FrD, Field::FrB] }), ]), ("icbi.", &[ None, None, Some(OpcodeInfo { code: 0x7c0007ac, args: &[Field::RA, Field::RB] }), ]), ("bdztlr+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("rlwinm", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH, Field::MB, Field::ME], }), ]), ("mfdbatl", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::SprBAT] }), ]), ("mfsprg", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::SprSPRG] }), ]), ("blt", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdztlrl", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("stfsux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00056e, args: &[Field::FrS, Field::RA, Field::RB] }), ]), ("or", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000378, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bdnzflr+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("mulli", &[ None, None, None, Some(OpcodeInfo { code: 0x1c000000, args: &[Field::RD, Field::RA, Field::Simm] }), ]), ("bdzflr", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("crand", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000202, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("crandc", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000102, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("clrrwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::ME] }), ]), ("mtfsb0", &[None, Some(OpcodeInfo { code: 0xfc00008c, args: &[Field::CrbD] })]), ("addo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000214, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("lhzu", &[ None, None, None, Some(OpcodeInfo { code: 0xa4000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("lbz", &[ None, None, None, Some(OpcodeInfo { code: 0x88000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("addmeo.", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d4, args: &[Field::RD, Field::RA] }), ]), ("bdzf-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdzlrl", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("bdztl-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdz+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bnea+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnela", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lfsx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00042e, args: &[Field::FrD, Field::RA, Field::RB] }), ]), ("mfibatl", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::SprBAT] }), ]), ("bgtctrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("fneg.", &[ None, None, Some(OpcodeInfo { code: 0xfc000050, args: &[Field::FrD, Field::FrB] }), ]), ("bdzfl", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnza-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("dcbz", &[ None, None, Some(OpcodeInfo { code: 0x7c0007ec, args: &[Field::RA, Field::RB] }), ]), ("bnsla+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mfsr", &[ None, None, Some(OpcodeInfo { code: 0x7c0004a6, args: &[Field::RD, Field::Sr] }), ]), ("mtctr", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("twi", &[ None, None, None, Some(OpcodeInfo { code: 0xc0000000, args: &[Field::TO, Field::RA, Field::Simm] }), ]), ("blelrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("blelr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bnelrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bdzl", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bdnztl+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("rotlw", &[ None, None, None, Some(OpcodeInfo { code: 0x5c000000, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bnectr", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("eqv", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000238, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("slwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("addze.", &[ None, None, Some(OpcodeInfo { code: 0x7c000194, args: &[Field::RD, Field::RA] }), ]), ("bdzla", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("mr.", &[ None, None, Some(OpcodeInfo { code: 0x7c000378, args: &[Field::RA, Field::RS] }), ]), ("bdzfl-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdztla-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnzl-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("clrlslwi.", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::MB, Field::SH], }), ]), ("addic.", &[ None, None, None, Some(OpcodeInfo { code: 0x34000000, args: &[Field::RD, Field::RA, Field::Simm] }), ]), ("bdnzfa-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("fadd", &[ None, None, None, Some(OpcodeInfo { code: 0xfc00002a, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bltl", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beqctrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("tw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000008, args: &[Field::TO, Field::RA, Field::RB] }), ]), ("beqla-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bla", &[None, Some(OpcodeInfo { code: 0x48000000, args: &[Field::LI] })]), ("lbzu", &[ None, None, None, Some(OpcodeInfo { code: 0x8c000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("ps_nmsub", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000003c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("addc.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000014, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("psq_lu", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0xe4000000, args: &[Field::FrD, Field::PsOffset, Field::RA, Field::PsW, Field::PsI], }), ]), ("bgela", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgtlr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bnsla-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blela-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("creqv", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000242, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("ori", &[ None, None, None, Some(OpcodeInfo { code: 0x60000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("ps_sum1", &[ None, None, None, None, Some(OpcodeInfo { code: 0x10000016, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("lbzx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0000ae, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bgta+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blr", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("rotrwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("fneg", &[ None, None, Some(OpcodeInfo { code: 0xfc000050, args: &[Field::FrD, Field::FrB] }), ]), ("add", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000214, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("mttbu", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("mfxer", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("mullwo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("psq_stux", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x1000004e, args: &[Field::FrS, Field::RA, Field::RB, Field::PsWX, Field::PsIX], }), ]), ("fabs.", &[ None, None, Some(OpcodeInfo { code: 0xfc000210, args: &[Field::FrD, Field::FrB] }), ]), ("bltla-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lfsux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00046e, args: &[Field::FrD, Field::RA, Field::RB] }), ]), ("bcctr", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000420, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("mtfsf.", &[ None, None, Some(OpcodeInfo { code: 0xfc00058e, args: &[Field::MtfsfFM, Field::FrB] }), ]), ("stfsu", &[ None, None, None, Some(OpcodeInfo { code: 0xd4000000, args: &[Field::FrS, Field::Offset, Field::RA] }), ]), ("bdztlr", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("subfco", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000010, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("b", &[None, Some(OpcodeInfo { code: 0x48000000, args: &[Field::LI] })]), ("stfiwx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0007ae, args: &[Field::FrS, Field::RA, Field::RB] }), ]), ("mtfsb1.", &[None, Some(OpcodeInfo { code: 0xfc00004c, args: &[Field::CrbD] })]), ("mcrfs", &[ None, None, Some(OpcodeInfo { code: 0xfc000080, args: &[Field::CrfD, Field::CrfS] }), ]), ("ps_muls1", &[ None, None, None, Some(OpcodeInfo { code: 0x1000001a, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("bcctr+", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000420, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("ps_merge00", &[ None, None, None, Some(OpcodeInfo { code: 0x10000420, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bso-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lhz", &[ None, None, None, Some(OpcodeInfo { code: 0xa0000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("lhau", &[ None, None, None, Some(OpcodeInfo { code: 0xac000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("blelrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("subfzeo.", &[ None, None, Some(OpcodeInfo { code: 0x7c000190, args: &[Field::RD, Field::RA] }), ]), ("bdz", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("blel-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("crorc", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000342, args: &[Field::CrbD, Field::CrbA, Field::CrbB] }), ]), ("fctiwz.", &[ None, None, Some(OpcodeInfo { code: 0xfc00001e, args: &[Field::FrD, Field::FrB] }), ]), ("bgel", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("twui", &[ None, None, Some(OpcodeInfo { code: 0xc0000000, args: &[Field::RA, Field::Simm] }), ]), ("bnea", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("sraw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000630, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("bdnzla+", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("ps_madds1", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000001e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bgelrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("stwx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00012e, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("blea-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mfsrr1", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("bltctrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("blea+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgta-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mflr", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("blectrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("mtmsr", &[None, Some(OpcodeInfo { code: 0x7c000124, args: &[Field::RS] })]), ("eqv.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000238, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("addze", &[ None, None, Some(OpcodeInfo { code: 0x7c000194, args: &[Field::RD, Field::RA] }), ]), ("ps_madds0", &[ None, None, None, None, Some(OpcodeInfo { code: 0x1000001c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("rotlwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("bdnztlr+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("addeo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000114, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("dcbtst", &[ None, None, Some(OpcodeInfo { code: 0x7c0001ec, args: &[Field::RA, Field::RB] }), ]), ("bgea-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blta-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("slw", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000030, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("mttbl", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("lwz", &[ None, None, None, Some(OpcodeInfo { code: 0x80000000, args: &[Field::RD, Field::Offset, Field::RA] }), ]), ("beqlrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("sthx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00032e, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("bsoa+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mfdec", &[None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD] })]), ("extlwi", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::ME, Field::SH], }), ]), ("lfd", &[ None, None, None, Some(OpcodeInfo { code: 0xc8000000, args: &[Field::FrD, Field::Offset, Field::RA] }), ]), ("lfsu", &[ None, None, None, Some(OpcodeInfo { code: 0xc4000000, args: &[Field::FrD, Field::Offset, Field::RA] }), ]), ("divwu", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000396, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fnmsubs.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("mullwo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001d6, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("mtsrin", &[ None, None, Some(OpcodeInfo { code: 0x7c0001e4, args: &[Field::RS, Field::RB] }), ]), ("stfdux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0005ee, args: &[Field::FrS, Field::RA, Field::RB] }), ]), ("extsh.", &[ None, None, Some(OpcodeInfo { code: 0x7c000734, args: &[Field::RA, Field::RS] }), ]), ("bgtla-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bctr", &[Some(OpcodeInfo { code: 0x4c000420, args: &[] })]), ("bcl-", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("fmul.", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000032, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("bltl-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("blectrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("stwbrx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00052c, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("bltctrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("addzeo", &[ None, None, Some(OpcodeInfo { code: 0x7c000194, args: &[Field::RD, Field::RA] }), ]), ("bnslrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("mtibatl", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::SprBAT, Field::RS] }), ]), ("or.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000378, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("fnmsub.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003c, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("lfs", &[ None, None, None, Some(OpcodeInfo { code: 0xc0000000, args: &[Field::FrD, Field::Offset, Field::RA] }), ]), ("bnsa", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bgtl+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bcla", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bsol+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mtfsf", &[ None, None, Some(OpcodeInfo { code: 0xfc00058e, args: &[Field::MtfsfFM, Field::FrB] }), ]), ("fsubs", &[ None, None, None, Some(OpcodeInfo { code: 0xec000028, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("fnmadd", &[ None, None, None, None, Some(OpcodeInfo { code: 0xfc00003e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("blela+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("lswx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00042a, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("fnmadds.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("sync", &[Some(OpcodeInfo { code: 0x7c0004ac, args: &[] })]), ("bc-", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("mfsrin", &[ None, None, Some(OpcodeInfo { code: 0x7c000526, args: &[Field::RD, Field::RB] }), ]), ("mtdbatu", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::SprBAT, Field::RS] }), ]), ("mtsrr0", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("bdnzfa+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("ps_res", &[ None, None, Some(OpcodeInfo { code: 0x10000030, args: &[Field::FrD, Field::FrB] }), ]), ("bdnzfa", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("lbzux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0000ee, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bsoa-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnzflrl", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("psq_stu", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0xf4000000, args: &[Field::FrS, Field::PsOffset, Field::RA, Field::PsW, Field::PsI], }), ]), ("slw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000030, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("sc", &[Some(OpcodeInfo { code: 0x44000002, args: &[] })]), ("bnslr+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bdzfla+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("mtdbatl", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::SprBAT, Field::RS] }), ]), ("bdnztlrl+", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("slwi", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("xoris", &[ None, None, None, Some(OpcodeInfo { code: 0x6c000000, args: &[Field::RA, Field::RS, Field::Uimm] }), ]), ("bsolr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("fmul", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000032, args: &[Field::FrD, Field::FrA, Field::FrC] }), ]), ("fabs", &[ None, None, Some(OpcodeInfo { code: 0xfc000210, args: &[Field::FrD, Field::FrB] }), ]), ("beq-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("dcbz_l", &[ None, None, Some(OpcodeInfo { code: 0x100007ec, args: &[Field::RA, Field::RB] }), ]), ("fdivs", &[ None, None, None, Some(OpcodeInfo { code: 0xec000024, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("stbx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0001ae, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("bso", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdnzfl+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnztla", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("sthu", &[ None, None, None, Some(OpcodeInfo { code: 0xb4000000, args: &[Field::RS, Field::Offset, Field::RA] }), ]), ("ble", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mffs", &[None, Some(OpcodeInfo { code: 0xfc00048e, args: &[Field::FrD] })]), ("ps_sub", &[ None, None, None, Some(OpcodeInfo { code: 0x10000028, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("bdzfa", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("addme", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d4, args: &[Field::RD, Field::RA] }), ]), ("bnectrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("beq+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beqlr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("adde.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000114, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("lhzux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00026e, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("cmpwi", &[ None, None, Some(OpcodeInfo { code: 0x2c000000, args: &[Field::RA, Field::Simm] }), Some(OpcodeInfo { code: 0x2c000000, args: &[Field::CrfD, Field::RA, Field::Simm] }), ]), ("eieio", &[Some(OpcodeInfo { code: 0x7c0006ac, args: &[] })]), ("ba", &[None, Some(OpcodeInfo { code: 0x48000000, args: &[Field::LI] })]), ("bns-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("beql+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bdzt+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bdnz-", &[None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] })]), ("bdzflrl", &[None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BI] })]), ("sthbrx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00072c, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("extlwi.", &[ None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::ME, Field::SH], }), ]), ("bgt+", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnsl", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bl", &[None, Some(OpcodeInfo { code: 0x48000000, args: &[Field::LI] })]), ("bcla+", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("fsubs.", &[ None, None, None, Some(OpcodeInfo { code: 0xec000028, args: &[Field::FrD, Field::FrA, Field::FrB] }), ]), ("subf.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000050, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bca+", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bdztla+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bnelrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("cmpli", &[ None, None, None, None, Some(OpcodeInfo { code: 0x28000000, args: &[Field::CrfD, Field::L, Field::RA, Field::Uimm], }), ]), ("fctiw", &[ None, None, Some(OpcodeInfo { code: 0xfc00001c, args: &[Field::FrD, Field::FrB] }), ]), ("mtibatu", &[ None, None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::SprBAT, Field::RS] }), ]), ("bgtlrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bclr+", &[ None, None, None, Some(OpcodeInfo { code: 0x4c000020, args: &[Field::BO, Field::BI, Field::BH] }), ]), ("subfze.", &[ None, None, Some(OpcodeInfo { code: 0x7c000190, args: &[Field::RD, Field::RA] }), ]), ("lfdx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0004ae, args: &[Field::FrD, Field::RA, Field::RB] }), ]), ("ps_mr", &[ None, None, Some(OpcodeInfo { code: 0x10000090, args: &[Field::FrD, Field::FrB] }), ]), ("bdzfa-", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("bnsctrl+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("mfmsr", &[None, Some(OpcodeInfo { code: 0x7c0000a6, args: &[Field::RD] })]), ("bcla-", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("bdnzlr+", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("bdzfl+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("addc", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000014, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bdzlr", &[Some(OpcodeInfo { code: 0x4c000020, args: &[] })]), ("li", &[ None, None, Some(OpcodeInfo { code: 0x38000000, args: &[Field::RD, Field::Simm] }), ]), ("bsol-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bnsctrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("beqa", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("mtsrr1", &[None, Some(OpcodeInfo { code: 0x7c0003a6, args: &[Field::RS] })]), ("fnmadds", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003e, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bne-", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("bcl+", &[ None, None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BO, Field::BI, Field::BD] }), ]), ("extsh", &[ None, None, Some(OpcodeInfo { code: 0x7c000734, args: &[Field::RA, Field::RS] }), ]), ("nand", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0003b8, args: &[Field::RA, Field::RS, Field::RB] }), ]), ("psq_lux", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x1000004c, args: &[Field::FrD, Field::RA, Field::RB, Field::PsWX, Field::PsIX], }), ]), ("mftb", &[ None, None, Some(OpcodeInfo { code: 0x7c0002e6, args: &[Field::RD, Field::Tbr] }), ]), ("fcmpo", &[ None, None, None, Some(OpcodeInfo { code: 0xfc000040, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("bgtlrl", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bsoa", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("fmadds.", &[ None, None, None, None, Some(OpcodeInfo { code: 0xec00003a, args: &[Field::FrD, Field::FrA, Field::FrC, Field::FrB], }), ]), ("bgea", &[ None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BD] }), Some(OpcodeInfo { code: 0x40000000, args: &[Field::CrfS, Field::BD] }), ]), ("psq_st", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0xf0000000, args: &[Field::FrS, Field::PsOffset, Field::RA, Field::PsW, Field::PsI], }), ]), ("addic", &[ None, None, None, Some(OpcodeInfo { code: 0x30000000, args: &[Field::RD, Field::RA, Field::Simm] }), ]), ("mtfsb1", &[None, Some(OpcodeInfo { code: 0xfc00004c, args: &[Field::CrbD] })]), ("rlwnm.", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x5c000000, args: &[Field::RA, Field::RS, Field::RB, Field::MB, Field::ME], }), ]), ("mulhw.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000096, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("mfspr", &[ None, None, Some(OpcodeInfo { code: 0x7c0002a6, args: &[Field::RD, Field::Spr] }), ]), ("rlwinm.", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH, Field::MB, Field::ME], }), ]), ("rotrwi.", &[ None, None, None, Some(OpcodeInfo { code: 0x54000000, args: &[Field::RA, Field::RS, Field::SH] }), ]), ("blectr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("ps_cmpo1", &[ None, None, None, Some(OpcodeInfo { code: 0x100000c0, args: &[Field::CrfD, Field::FrA, Field::FrB] }), ]), ("stfsx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00052e, args: &[Field::FrS, Field::RA, Field::RB] }), ]), ("neg", &[ None, None, Some(OpcodeInfo { code: 0x7c0000d0, args: &[Field::RD, Field::RA] }), ]), ("bdnzfla+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("psq_l", &[ None, None, None, None, None, Some(OpcodeInfo { code: 0xe0000000, args: &[Field::FrD, Field::PsOffset, Field::RA, Field::PsW, Field::PsI], }), ]), ("addme.", &[ None, None, Some(OpcodeInfo { code: 0x7c0001d4, args: &[Field::RD, Field::RA] }), ]), ("bsolrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bdzt", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("fres.", &[ None, None, Some(OpcodeInfo { code: 0xec000030, args: &[Field::FrD, Field::FrB] }), ]), ("bdzf+", &[ None, None, Some(OpcodeInfo { code: 0x40000000, args: &[Field::BI, Field::BD] }), ]), ("subfo.", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000050, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bltlrl+", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("stfdx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c0005ae, args: &[Field::FrS, Field::RA, Field::RB] }), ]), ("nego.", &[ None, None, Some(OpcodeInfo { code: 0x7c0000d0, args: &[Field::RD, Field::RA] }), ]), ("bnslr", &[ Some(OpcodeInfo { code: 0x4c000020, args: &[] }), Some(OpcodeInfo { code: 0x4c000020, args: &[Field::CrfS] }), ]), ("bsoctrl", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("mtfsfi.", &[ None, None, Some(OpcodeInfo { code: 0xfc00010c, args: &[Field::CrfD, Field::MtfsfIMM] }), ]), ("sthux", &[ None, None, None, Some(OpcodeInfo { code: 0x7c00036e, args: &[Field::RS, Field::RA, Field::RB] }), ]), ("lwarx", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000028, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("bltctr+", &[ Some(OpcodeInfo { code: 0x4c000420, args: &[] }), Some(OpcodeInfo { code: 0x4c000420, args: &[Field::CrfS] }), ]), ("divwuo", &[ None, None, None, Some(OpcodeInfo { code: 0x7c000396, args: &[Field::RD, Field::RA, Field::RB] }), ]), ("subfzeo", &[ None, None, Some(OpcodeInfo { code: 0x7c000190, args: &[Field::RD, Field::RA] }), ]), ], }; fn opcode_from_str(str: &str) -> Option<&'static [Option]> { OPCODES.get(str).map(|x| *x) }