mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
398 lines
14 KiB
398 lines
14 KiB
/* #ifdef _MOTO_EXTENSIONS */
|
|
/* PowerPC instruction set from IBM PowerPC User Instruction Set Architecture
|
|
Book 1, Version 1.04 May 4,1993 */
|
|
|
|
/* These are the instruction format types. Keep them in the same order as the
|
|
eopFormat array below. */
|
|
enum { I=0, B, SC, Dform, DSform, X, XL, XFX, XFL, XS, XO, A, M, MD, MDS };
|
|
|
|
/* The values in this array are used to isolate the extended opcodes.
|
|
The first is the mask, the second is the amount to shift.
|
|
Keep them in the same order as the enum'ed instruction format types above. */
|
|
|
|
static int eopFormat[15][2] = {
|
|
0, 1, /* I */
|
|
0, 1, /* B */
|
|
0x1, 1, /* SC */
|
|
0, 1, /* Dform */
|
|
0x3, 0, /* DSform */
|
|
0x3ff, 1, /* X */
|
|
0x3ff, 1, /* XL */
|
|
0x3ff, 1, /* XFX */
|
|
0x3ff, 1, /* XFL */
|
|
0x1ff, 2, /* XS */
|
|
0x1ff, 1, /* XO */
|
|
0x1f, 1, /* A */
|
|
0, 1, /* M */
|
|
0x7, 2, /* MD */
|
|
0xf, 1 /* MDS */
|
|
};
|
|
|
|
/* Information about each instruction */
|
|
|
|
typedef struct ppc_instruction {
|
|
char *mnemonic; /* instruction mnemonic */
|
|
char *mne_ext; /* instruction mnemonic extension */
|
|
int ext_opcode; /* extended opcode */
|
|
char operand_fmt[6]; /* operand formats */
|
|
} INSTRUCTION;
|
|
|
|
/* These are the operand formats. */
|
|
enum { BA=1,
|
|
BB,
|
|
BD,
|
|
BF,
|
|
BFA,
|
|
BI,
|
|
BO,
|
|
BT,
|
|
D,
|
|
DS,
|
|
FLM,
|
|
FRA,
|
|
FRB,
|
|
FRC,
|
|
FRS,
|
|
FRT,
|
|
FXM,
|
|
L,
|
|
LI,
|
|
PPC_MB,
|
|
ME,
|
|
MBE64,
|
|
NB,
|
|
RA,
|
|
RB,
|
|
RS,
|
|
PPC_RT,
|
|
SH,
|
|
SH64,
|
|
SI,
|
|
SPR,
|
|
SR,
|
|
TBR,
|
|
TO,
|
|
U,
|
|
UI
|
|
};
|
|
|
|
/* PowerPC instruction set as defined in
|
|
IBM PowerPC Architecture Books, Version 1.04 May 4,1993
|
|
|
|
Many of the PowerPC instructions map to the same primary opcode
|
|
and are unique only in the extended opcode. There is a table for
|
|
each group of extended opcodes (i.e., those with the same primary
|
|
opcode) and a table of instructions with unique primary opcodes.
|
|
The unique primary opcode can be used as a direct index into the
|
|
primary opcode table. A binary search is performed on the extended
|
|
opcode tables. The size and location of the extended opcode bit field
|
|
varies according to the instruction, so all format variations must be
|
|
checked when searching for extended opcodes. All the unique format
|
|
variations for a given primary opcode are kept in an associated table. All format variations need not be present in the format table, just the
|
|
ones so that all unique extended opcode fields are represented.
|
|
|
|
Note that the primary and extended opcode tables use the same
|
|
structure, so that the code that uses the information in the table
|
|
need not know which table it is from.
|
|
|
|
mnemonic options eop operand formats opcode */
|
|
|
|
struct ppc_instruction pop_insn [] = {
|
|
{"Illegal", 0, 0, {0} }, /* 0 */
|
|
{"Illegal", 0, 0, {0} }, /* 1 */
|
|
{"tdi", 0, -1, {TO,RA,SI,0} }, /* 2 */
|
|
{"twi", 0, -1, {TO,RA,SI,0} }, /* 3 */
|
|
{"Illegal", 0, 0, {0} }, /* 4 */
|
|
{"Illegal", 0, 0, {0} }, /* 5 */
|
|
{"Illegal", 0, 0, {0} }, /* 6 */
|
|
{"mulli", 0, -1, {PPC_RT,RA,SI,0} }, /* 7 */
|
|
{"subfic", 0, -1, {PPC_RT,RA,SI,0} }, /* 8 */
|
|
{"Illegal", 0, 0, {0} }, /* 9 */
|
|
{"cmpli", 0, -1, {BF,L,RA,UI,0} }, /* 10 */
|
|
{"cmpi", 0, -1, {BF,L,RA,SI,0} }, /* 11 */
|
|
{"addic", 0, -1, {PPC_RT,RA,SI,0} }, /* 12 */
|
|
{"addic.", 0, -1, {PPC_RT,RA,SI,0} }, /* 13 */
|
|
{"addi", 0, -1, {PPC_RT,RA,SI,0} }, /* 14 */
|
|
{"addis", 0, -1, {PPC_RT,RA,SI,0} }, /* 15 */
|
|
{"bc", "la", -1, {BO,BI,BD,0} }, /* 16 */
|
|
{"sc", 0, -1, {0} }, /* 17 */
|
|
{"b", "la", -1, {LI,0} }, /* 18 */
|
|
{"Unknown", 0, 0, {0} }, /* 19 */
|
|
{"rlwimi", ".", -1, {RA,RS,SH,PPC_MB,ME,0} }, /* 20 */
|
|
{"rlwinm", ".", -1, {RA,RS,SH,PPC_MB,ME,0} }, /* 21 */
|
|
{"Illegal", 0, 0, {0} }, /* 22 */
|
|
{"rlwnm", ".", -1, {RA,RS,RB,PPC_MB,ME,0} }, /* 23 */
|
|
{"ori", 0, -1, {RA,RS,UI,0} }, /* 24 */
|
|
{"oris", 0, -1, {RA,RS,UI,0} }, /* 25 */
|
|
{"xori", 0, -1, {RA,RS,UI,0} }, /* 26 */
|
|
{"xoris", 0, -1, {RA,RS,UI,0} }, /* 27 */
|
|
{"andi.", 0, -1, {RA,RS,UI,0} }, /* 28 */
|
|
{"andis.", 0, -1, {RA,RS,UI,0} }, /* 29 */
|
|
{"Unknown", 0, 0, {0} }, /* 30 */
|
|
{"Unknown", 0, 0, {0} }, /* 31 */
|
|
{"lwz", 0, -1, {PPC_RT,D,RA,0} }, /* 32 */
|
|
{"lwzu", 0, -1, {PPC_RT,D,RA,0} }, /* 33 */
|
|
{"lbz", 0, -1, {PPC_RT,D,RA,0} }, /* 34 */
|
|
{"lbzu", 0, -1, {PPC_RT,D,RA,0} }, /* 35 */
|
|
{"stw", 0, -1, {RS,D,RA,0} }, /* 36 */
|
|
{"stwu", 0, -1, {RS,D,RA,0} }, /* 37 */
|
|
{"stb", 0, -1, {RS,D,RA,0} }, /* 38 */
|
|
{"stbu", 0, -1, {RS,D,RA,0} }, /* 39 */
|
|
{"lhz", 0, -1, {PPC_RT,D,RA,0} }, /* 40 */
|
|
{"lhzu", 0, -1, {PPC_RT,D,RA,0} }, /* 41 */
|
|
{"lha", 0, -1, {PPC_RT,D,RA,0} }, /* 42 */
|
|
{"lhau", 0, -1, {PPC_RT,D,RA,0} }, /* 43 */
|
|
{"sth", 0, -1, {RS,D,RA,0} }, /* 44 */
|
|
{"sthu", 0, -1, {RS,D,RA,0} }, /* 45 */
|
|
{"lmw", 0, -1, {PPC_RT,D,RA,0} }, /* 46 */
|
|
{"stmw", 0, -1, {RS,D,RA,0} }, /* 47 */
|
|
{"lfs", 0, -1, {FRT,D,RA,0} }, /* 48 */
|
|
{"lfsu", 0, -1, {FRT,D,RA,0} }, /* 49 */
|
|
{"lfd", 0, -1, {FRT,D,RA,0} }, /* 50 */
|
|
{"lfdu", 0, -1, {FRT,D,RA,0} }, /* 51 */
|
|
{"stfs", 0, -1, {FRS,D,RA,0} }, /* 52 */
|
|
{"stfsu", 0, -1, {FRS,D,RA,0} }, /* 53 */
|
|
{"stfd", 0, -1, {FRS,D,RA,0} }, /* 54 */
|
|
{"stfdu", 0, -1, {FRS,D,RA,0} }, /* 55 */
|
|
{"Illegal", 0, 0, {0} }, /* 56 */
|
|
{"Illegal", 0, 0, {0} }, /* 57 */
|
|
{"Unknown", 0, 0, {0} }, /* 58 */
|
|
{"Unknown", 0, 0, {0} }, /* 59 */
|
|
{"Illegal", 0, 0, {0} }, /* 60 */
|
|
{"Illegal", 0, 0, {0} }, /* 61 */
|
|
{"Unknown", 0, 0, {0} }, /* 62 */
|
|
{"Unknown", 0, 0, {0} }, /* 63 */
|
|
};
|
|
|
|
struct ppc_instruction pop19_insn [] = {
|
|
{"mcrf", 0, 0, {BF,BFA,0} },
|
|
{"bclr", "l", 16, {BO,BI,0} },
|
|
{"crnor", 0, 33, {BT,BA,BB,0} },
|
|
{"rfi", 0, 50, {0} },
|
|
{"crandc", 0, 129, {BT,BA,BB,0} },
|
|
{"isync", 0, 150, {0} },
|
|
{"crxor", 0, 193, {BT,BA,BB,0} },
|
|
{"crnand", 0, 225, {BT,BA,BB,0} },
|
|
{"crand", 0, 257, {BT,BA,BB,0} },
|
|
{"creqv", 0, 289, {BT,BA,BB,0} },
|
|
{"crorc", 0, 417, {BT,BA,BB,0} },
|
|
{"cror", 0, 449, {BT,BA,BB,0} },
|
|
{"bcctr", "l", 528, {BO,BI,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop30_insn [] = {
|
|
{"rldicl", ".", 0, {RA,RS,SH64,MBE64,0} },
|
|
{"rldicr", ".", 1, {RA,RS,SH64,MBE64,0} },
|
|
{"rldic", ".", 2, {RA,RS,SH64,MBE64,0} },
|
|
{"rldimi", ".", 3, {RA,RS,SH64,MBE64,0} },
|
|
{"rldcl", ".", 8, {RA,RS,RB,MBE64,0} },
|
|
{"rldcr", ".", 9, {RA,RS,RB,MBE64,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop31_insn [] = {
|
|
{"cmp", 0, 0, {BF,L,RA,RB,0} },
|
|
{"tw", 0, 4, {TO,RA,RB,0} },
|
|
{"subfc", "o.", 8, {PPC_RT,RA,RB,0} },
|
|
{"mulhdu", ".", 9, {PPC_RT,RA,RB,0} },
|
|
{"addc", "o.", 10, {PPC_RT,RA,RB,0} },
|
|
{"mulhwu", ".", 11, {PPC_RT,RA,RB,0} },
|
|
{"mfcr", 0, 19, {PPC_RT,0} },
|
|
{"lwarx", 0, 20, {PPC_RT,RA,RB,0} },
|
|
{"ldx", 0, 21, {PPC_RT,RA,RB,0} },
|
|
{"lwzx", 0, 23, {PPC_RT,RA,RB,0} },
|
|
{"slw", ".", 24, {RA,RS,RB,0} },
|
|
{"cntlzw", ".", 26, {RA,RS,0} },
|
|
{"sld", ".", 27, {RA,RS,RB,0} },
|
|
{"and", ".", 28, {RA,RS,RB,0} },
|
|
{"cmpl", 0, 32, {BF,L,RA,RB,0} },
|
|
{"subf", "o.", 40, {PPC_RT,RA,RB,0} },
|
|
{"ldux", 0, 53, {PPC_RT,RA,RB,0} },
|
|
{"dcbst", 0, 54, {RA,RB,0} },
|
|
{"lwzux", 0, 55, {PPC_RT,RA,RB,0} },
|
|
{"cntlzd", ".", 58, {RA,RS,0} },
|
|
{"andc", ".", 60, {RA,RS,RB,0} },
|
|
{"td", 0, 68, {TO,RA,RB,0} },
|
|
{"mulhd", ".", 73, {PPC_RT,RA,RB,0} },
|
|
{"mulhw", ".", 75, {PPC_RT,RA,RB,0} },
|
|
{"mfmsr", 0, 83, {PPC_RT,0} },
|
|
{"ldarx", 0, 84, {PPC_RT,RA,RB,0} },
|
|
{"dcbf", 0, 86, {RA,RB,0} },
|
|
{"lbzx", 0, 87, {PPC_RT,RA,RB,0} },
|
|
{"neg", "o.", 104, {PPC_RT,RA,0} },
|
|
{"mfpmr", 0, 115, {PPC_RT,0} },
|
|
{"lbzux", 0, 119, {PPC_RT,RA,RB,0} },
|
|
{"nor", ".", 124, {RA,RS,RB,0} },
|
|
{"subfe", "o.", 136, {PPC_RT,RA,RB,0} },
|
|
{"adde", "o.", 138, {PPC_RT,RA,RB,0} },
|
|
{"mtcrf", 0, 144, {FXM,RS,0} },
|
|
{"mtmsr", 0, 146, {RS,0} },
|
|
{"stdx", 0, 149, {RS,RA,RB,0} },
|
|
{"stwcx.", 0, 150, {RS,RA,RB,0} },
|
|
{"stwx", 0, 151, {RS,RA,RB,0} },
|
|
{"mtpmr", 0, 178, {RS,0} },
|
|
{"stdux", 0, 181, {RS,RA,RB,0} },
|
|
{"stwux", 0, 183, {RS,RA,RB,0} },
|
|
{"subfze", "o.", 200, {PPC_RT,RA,0} },
|
|
{"addze", "o.", 202, {PPC_RT,RA,0} },
|
|
{"mtsr", 0, 210, {SR,RS,0} },
|
|
{"stdcx.", 0, 214, {RS,RA,RB,0} },
|
|
{"stbx", 0, 215, {RS,RA,RB,0} },
|
|
{"subfme", "o.", 232, {PPC_RT,RA,0} },
|
|
{"addme", "o.", 234, {PPC_RT,RA,0} },
|
|
{"mull", "o.", 235, {PPC_RT,RA,RB,0} },
|
|
{"mtsrin", 0, 242, {RS,RB,0} },
|
|
{"dcbtst", 0, 246, {RA,RB,0} },
|
|
{"stbux", 0, 247, {RS,RA,RB,0} },
|
|
{"add", "o.", 266, {PPC_RT,RA,RB,0} },
|
|
{"dcbt", 0, 278, {RA,RB,0} },
|
|
{"lhzx", 0, 279, {PPC_RT,RA,RB,0} },
|
|
{"eqv", ".", 284, {RA,RS,RB,0} },
|
|
{"tlbie", 0, 306, {RB,0} },
|
|
{"eciwx", 0, 310, {PPC_RT,RA,RB,0} },
|
|
{"lhzux", 0, 311, {PPC_RT,RA,RB,0} },
|
|
{"xor", ".", 316, {RA,RS,RB,0} },
|
|
{"tlbiex", 0, 338, {RB,0} },
|
|
{"mfspr", 0, 339, {PPC_RT,SPR,0} },
|
|
{"lwax", 0, 341, {PPC_RT,RA,RB,0} },
|
|
{"lhax", 0, 343, {PPC_RT,RA,RB,0} },
|
|
{"tlbia", 0, 370, {0} },
|
|
{"mftb", 0, 371, {PPC_RT,TBR,0} },
|
|
{"lwaux", 0, 373, {PPC_RT,RA,RB,0} },
|
|
{"lhaux", 0, 375, {PPC_RT,RA,RB,0} },
|
|
{"mttb", 0, 403, {RB,0} },
|
|
{"sthx", 0, 407, {RS,RA,RB,0} },
|
|
{"orc", ".", 412, {RA,RS,RB,0} },
|
|
{"sradi", ".", 413, {RA,RS,SH64,0} },
|
|
{"slbie", 0, 434, {RB,0} },
|
|
{"mttbu", 0, 435, {RB,0} },
|
|
{"ecowx", 0, 438, {RS,RA,RB,0} },
|
|
{"sthux", 0, 439, {RS,RA,RB,0} },
|
|
{"or", ".", 444, {RA,RS,RB,0} },
|
|
{"divdu", "o.", 457, {PPC_RT,RA,RB,0} },
|
|
{"divwu", "o.", 459, {PPC_RT,RA,RB,0} },
|
|
{"slbiex", 0, 466, {RB,0} },
|
|
{"mtspr", 0, 467, {SPR,RS,0} },
|
|
{"dcbi", 0, 470, {RA,RB,0} },
|
|
{"nand", ".", 476, {RA,RS,RB,0} },
|
|
{"divd", "o.", 489, {PPC_RT,RA,RB,0} },
|
|
{"divw", "o.", 491, {PPC_RT,RA,RB,0} },
|
|
{"slbia", 0, 498, {0} },
|
|
{"mcrxr", 0, 512, {BF,0} },
|
|
{"lswx", 0, 533, {PPC_RT,RA,RB,0} },
|
|
{"lwbrx", 0, 534, {PPC_RT,RA,RB,0} },
|
|
{"lfsx", 0, 535, {FRT,RA,RB,0} },
|
|
{"srw", ".", 536, {RA,RS,RB,0} },
|
|
{"srd", ".", 539, {RA,RS,RB,0} },
|
|
{"lfsux", 0, 567, {FRT,RA,RB,0} },
|
|
{"mfsr", 0, 595, {PPC_RT,SR,0} },
|
|
{"lswi", 0, 597, {PPC_RT,RA,NB,0} },
|
|
{"sync", 0, 598, {0} },
|
|
{"lfdx", 0, 599, {FRT,RA,RB,0} },
|
|
{"lfdux", 0, 631, {FRT,RA,RB,0} },
|
|
{"mfsrin", 0, 659, {PPC_RT,RB,0} },
|
|
{"stswx", 0, 661, {RS,RA,RB,0} },
|
|
{"stwbrx", 0, 662, {RS,RA,RB,0} },
|
|
{"stfsx", 0, 663, {FRS,RA,RB,0} },
|
|
{"stfsux", 0, 695, {FRS,RA,RB,0} },
|
|
{"stswi", 0, 725, {RS,RA,NB,0} },
|
|
{"stfdx", 0, 727, {FRS,RA,RB,0} },
|
|
{"stfdux", 0, 759, {FRS,RA,RB,0} },
|
|
{"lhbrx", 0, 790, {PPC_RT,RA,RB,0} },
|
|
{"sraw", ".", 792, {RA,RS,RB,0} },
|
|
{"srad", ".", 794, {RA,RS,RB,0} },
|
|
{"srawi", ".", 824, {RA,RS,SH,0} },
|
|
{"eieio", 0, 854, {0} },
|
|
{"sthbrx", 0, 918, {RS,RA,RB,0} },
|
|
{"extsh", ".", 922, {RA,RS,0} },
|
|
{"extsb", ".", 954, {RA,RS,0} },
|
|
{"icbi", 0, 982, {RA,RB,0} },
|
|
{"stfiwx", 0, 983, {FRS,RA,RB,0} },
|
|
{"extsw", ".", 986, {RA,RS,0} },
|
|
{"dcbz", 0, 1014, {RA,RB,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop58_insn [] = {
|
|
{"ld", 0, 0, {PPC_RT,DS,RA,0} },
|
|
{"ldu", 0, 1, {PPC_RT,DS,RA,0} },
|
|
{"lwa", 0, 2, {PPC_RT,DS,RA,0} },
|
|
{"lmd", 0, 3, {PPC_RT,DS,RA,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop59_insn [] = {
|
|
{"fdivs", ".", 18, {FRT,FRA,FRB,0} },
|
|
{"fsubs", ".", 20, {FRT,FRA,FRB,0} },
|
|
{"fadds", ".", 21, {FRT,FRA,FRB,0} },
|
|
{"fsqrts", ".", 22, {FRT,FRB,0} },
|
|
{"fres", ".", 24, {FRT,FRB,0} },
|
|
{"fmuls", ".", 25, {FRT,FRA,FRC,0} },
|
|
{"fmsubs", ".", 28, {FRT,FRA,FRC,FRB,0} },
|
|
{"fmadds", ".", 29, {FRT,FRA,FRC,FRB,0} },
|
|
{"fnmsubs", ".", 30, {FRT,FRA,FRC,FRB,0} },
|
|
{"fnmadds", ".", 31, {FRT,FRA,FRC,FRB,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop62_insn [] = {
|
|
{"std", 0, 0, {RS,DS,RA,0} },
|
|
{"stdu", 0, 1, {RS,DS,RA,0} },
|
|
{"stmd", 0, 3, {RS,DS,RA,0} },
|
|
};
|
|
|
|
struct ppc_instruction pop63_insn [] = {
|
|
{"fcmpu", 0, 0, {BF,FRA,FRB,0} },
|
|
{"frsp", ".", 12, {FRT,FRB,0} },
|
|
{"fctiw", ".", 14, {FRT,FRB,0} },
|
|
{"fctiwz", ".", 15, {FRT,FRB,0} },
|
|
{"fdiv", ".", 18, {FRT,FRA,FRB,0} },
|
|
{"fsub", ".", 20, {FRT,FRA,FRB,0} },
|
|
{"fadd", ".", 21, {FRT,FRA,FRB,0} },
|
|
{"fsqrt", ".", 22, {FRT,FRB,0} },
|
|
{"fsel", ".", 23, {FRT,FRA,FRB,FRC,0} },
|
|
{"fmul", ".", 25, {FRT,FRA,FRC,0} },
|
|
{"frsqrte", ".", 26, {FRT,FRB,0} },
|
|
{"fmsub", ".", 28, {FRT,FRA,FRC,FRB,0} },
|
|
{"fmadd", ".", 29, {FRT,FRA,FRC,FRB,0} },
|
|
{"fnmsub", ".", 30, {FRT,FRA,FRC,FRB,0} },
|
|
{"fnmadd", ".", 31, {FRT,FRA,FRC,FRB,0} },
|
|
{"fcmpo", 0, 32, {BF,FRA,FRB,0} },
|
|
{"mtfsb1", ".", 38, {BT,0} },
|
|
{"fneg", ".", 40, {FRT,FRB,0} },
|
|
{"mcrfs", 0, 64, {BF,BFA,0} },
|
|
{"mtfsb0", ".", 70, {BT,0} },
|
|
{"fmr", ".", 72, {FRT,FRB,0} },
|
|
{"mtfsfi", ".", 134, {BF,U,0} },
|
|
{"fnabs", ".", 136, {FRT,FRB,0} },
|
|
{"fabs", ".", 264, {FRT,FRB,0} },
|
|
{"mffs", ".", 583, {FRT,0} },
|
|
{"mtfsf", ".", 711, {FLM,FRB,0} },
|
|
{"fctid", ".", 814, {FRT,FRB,0} },
|
|
{"fctidz", ".", 815, {FRT,FRB,0} },
|
|
{"fcfid", ".", 846, {FRT,FRB,0} },
|
|
};
|
|
|
|
/* popXX_fmts is a list of instruction formats for the corresponding
|
|
extended opcode instruction table. When adding an instruction to the
|
|
table, add a format to the list if the extended opcode maps differently
|
|
than one that is already on the list. Leave the "-1" at the end to
|
|
terminate searches.
|
|
Note that it is best to keep the most common format first in the
|
|
tables, because formats are checked in the order they appear.
|
|
Also note that XFX is not in the format list because it is not
|
|
a unique mapping. */
|
|
int pop19_fmts [] = { XL, -1 };
|
|
int pop30_fmts [] = { MD, MDS, -1 };
|
|
int pop31_fmts [] = { X, XO, XS, -1 };
|
|
int pop58_fmts [] = { DS, -1 };
|
|
int pop59_fmts [] = { A, -1 };
|
|
int pop62_fmts [] = { DS, -1 };
|
|
int pop63_fmts [] = { X, A, -1 };
|
|
|
|
/* This calculates the number of entries in each table */
|
|
#define COUNT19 (sizeof (pop19_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT30 (sizeof (pop30_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT31 (sizeof (pop31_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT58 (sizeof (pop58_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT59 (sizeof (pop59_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT62 (sizeof (pop62_insn) / sizeof (struct ppc_instruction))
|
|
#define COUNT63 (sizeof (pop63_insn) / sizeof (struct ppc_instruction))
|
|
|
|
/* #endif _MOTO_EXTENSIONS */
|