3619 lines
117 KiB
Rust
3619 lines
117 KiB
Rust
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<OpcodeInfo>]> = ::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<OpcodeInfo>]> {
|
|
OPCODES.get(str).map(|x| *x)
|
|
}
|