typedef union vrs {
uint32_t vw[4];
uint16_t vh[8];
uint8_t vb[16];
} vrs;
typedef struct regfile {
uint64_t *rgx[4];
uint8_t *trx[4];
vrs vprs[32];
uint64_t gprs[32];
uint64_t fprs[32];
uint64_t sprs[32];
uint64_t pc;
uint64_t addrmask;
uint64_t ifaddrmask;
uint32_t level;
struct regfile *rgBack;
struct corebk *core;
uint8_t trakVpr[32];
uint8_t trakGpr[32];
uint8_t trakFpr[32];
uint8_t trakSpr[32];
} regfile;
#define rfNone 0
#define rfGpr 1
#define rfFpr 2
#define rfVpr 3
#define rfSpr 4
#define sPlr 0
#define sPctr 1
#define sPcr 2
#define sPxer 3
#define sPmsr 4
#define sPfpscr 5
#define sPvrsave 6
#define sPvscr 7
#define sPrsrvd 8
#define sPtb 9
#define sPunimp 255
#define gTstack 0x80
#define gTlr 0x40
#define gTgen 0x20
#define gTrsvd1 0x10
#define gTbrtbl 0x08
#define gTinfnc 0x04
#define gTundef 0x02
#define gTset 0x01
#define gTnu 0x00
#define strakany (gTstack | gTlr | gTbrtbl | gTundef)
#define strakall (gTgen | gTinfnc)
typedef struct istate {
uint64_t pc;
uint64_t btarg;
int64_t immediate;
uint64_t result;
uint64_t resultx;
uint64_t fstart;
uint64_t exit;
uint64_t freturn;
uint32_t fsize;
uint32_t instimg;
uint32_t opr;
uint32_t memsize;
uint32_t mods;
uint32_t status;
#define statOF64 0x80000000
#define statOF32 0x40000000
#define statCA64 0x00000004
#define statCA32 0x00000002
#define stat64b 0x00000001
uint32_t clevel;
uint32_t target;
uint32_t targtype;
uint32_t sourcea;
uint32_t sourceb;
uint32_t sourcec;
uint32_t sourced;
struct istate *isBack;
uint8_t trakBtarg;
uint8_t trakResult;
uint8_t trakTarget;
uint8_t trakClear;
uint8_t trakExplicit;
uint8_t trakSourcea;
uint8_t trakSourceb;
uint8_t trakSourcec;
uint8_t trakSourced;
char op[64];
char oper[64];
} istate;
#define modRgVal 0xF0000000
#define modTgVal 0x80000000
#define modSaVal 0x40000000
#define modSbVal 0x20000000
#define modScVal 0x10000000
#define modFAtabc 0xF0000000
#define modFAtab 0xE0000000
#define modFAtb 0xA0000000
#define modFAtac 0xB0000000
#define modFDtoa 0xC0000000
#define modRsvn 0x00800000
#define modTFpu 0x00400000
#define modTVec 0x00200000
#define modOflow 0x00100000
#define modTnomod 0x00080000
#define modPrv 0x00040000
#define modSetCRF 0x00020000
#define modUnimpl 0x00010000
#define modSpec 0x0000FFFF
#define modUpd 0x00008000
#define modSxtnd 0x00004000
#define modM4 0x00002000
#define modM8 0x00001000
#define modFBBOBI 0xC0000000
#define modSetLR 0x00008000
#define modBrAbs 0x00004000
#define modCond 0x00002000
#define modLR 0x00001000
#define modCTR 0x00000800
#define modShifted 0x00008000
#define modImmo 0x00004000
#define modLRs 0x00008000
#define modCTRs 0x00004000
#define modSHtabc 0xF0000000
#define modROTL32 0x00008000
#define modUseRB 0x00004000
#define modInsert 0x00002000
#define modZeroc 0x00001000
#define modDplus32 0x00000800
#define mod63minusd 0x00000400
#define mod63d 0x00000200
#define modShRight 0x00000100
#define modShift 0x00000080
#define modVtabc 0xF0000000
#define modVtab 0xE0000000
#define modVta 0xC0000000
#define modVtb 0xA0000000
#define modVt 0x80000000
#define modVab 0x60000000
#define modVa 0x40000000
#define modVb 0x20000000
#define mod4op 0x00000000
#define mod3op 0x00002000
#define mod2op 0x00004000
#define mod1opt 0x00006000
#define mod1opb 0x00008000
#define moduim 0x0000A000
#define modsim 0x0000C000
#define modlop 0x0000F000
#define modand 0x00001000
#define modor 0x00002000
#define modxor 0x00003000
#define modandc 0x00004000
#define modeqv 0x00005000
#define modnand 0x00006000
#define modnor 0x00007000
#define modorc 0x00008000
#define modshft 0x00000001
struct ppcinst;
typedef int (*instx)(uint32_t, struct ppcinst *, uint64_t, istate *, regfile *);
typedef int (*iformx)(uint32_t, struct ppcinst *, istate *, regfile *);
typedef struct iType {
int32_t ishift;
int32_t imask;
iformx idecode;
uint32_t iencode;
} iType;
typedef struct ppcinst {
int32_t major;
int32_t extended;
iType *insttype;
instx xinst;
char *opcode;
uint32_t mods;
uint32_t opr;
uint32_t oprsize;
uint32_t dflags;
#define dSkip 0x80000000
#define dNoFmt 0x40000000
#define dSwapTA 0x20000000
#define dImmUn 0x10000000
#define dBd 0x08000000
#define dTrgnum 0x0000FF00
#define dTrgtyp 0x000000FF
} ppcinst;
typedef struct sprtb {
uint32_t sprnum;
char *sprname;
uint32_t sprflags;
uint32_t sprint;
#define sprNorm 1
#define sprPriv 2
#define sprLR 4
#define sprCTR 8
} sprtb;
#define isnType 0x0F
#define isnFlags 0xF0
#define isnBTarg 0x80
#define isnCall 0x40
#define isnPriv 0x20
#define isnExit 0x10
enum {
isNone = 0,
isBranch = 1,
isBrCond = 2,
isRead = 3,
isWrite = 4,
isSysCall = 5,
isTrap = 6,
isRFI = 7,
isFpu = 8,
isVec = 9,
isScalar = 10,
isBranchTbl = 11,
isRsvn = 12,
isInvalid = 15
};
extern void decode(uint32_t inst, uint64_t pc, istate *is, regfile *rg);
extern sprtb *decodeSPR(uint32_t spr);
extern int dcdFormA(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormB(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormD(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormDS(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormI(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormM(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormMD(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormMDS(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormSC(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormVA(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormVX(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormVXR(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormX(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXFL(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXFS(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXFX(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXL(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXO(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int dcdFormXS(uint32_t inst, struct ppcinst *instb, istate *is, struct regfile *rg);
extern int xadd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xadde(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddic(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddicdot(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddis(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddme(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xaddze(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xand(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xandc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xattn(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xbc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xbclr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xbctr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcmp(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcmpi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcmpl(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcmpli(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcntlzd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xcntlzw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdcbf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdcbst(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdcbt(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdcbtst(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdcbz(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdivd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdivdu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdivw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdivwu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdss(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdstx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xdstst(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xeciwx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xecowx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xeieio(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xeqv(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xextsb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xextsh(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xextsw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfabs(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfadd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfadds(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfcfid(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfcmpo(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfcmpu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfctid(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfctidz(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfctiw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfctiwz(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfmr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfnabs(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfneg(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfrsp(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xicbi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xisync(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlbzux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlbzx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xldarx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xldux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xldx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlfdux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlfdx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlfsux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlfsx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlhaux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlhax(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlhbrx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlhzux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlhzx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlogi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlswi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlswx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlvebx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlvehx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlvewx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlvx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlvxl(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwarx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwaux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwax(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwbrx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwzux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlwzx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmcrf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmcrfs(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmcrxr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfcr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmffs(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfmsr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfocrf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfspr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfsr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfsrin(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmftb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmfvscr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtcrf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtfsb0(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtfsb1(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtfsfi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtmsr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtmsrd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtocrf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtspr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtsr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtsrin(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtvscr(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulhd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulhdu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulhw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulhwu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulld(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmulli(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmullw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xnand(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xneg(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xnor(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xor(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xorc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrfx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrldimi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslbia(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslbie(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslbmfee(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslbmfev(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslbmte(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsld(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xslw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsrad(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsradi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsraw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsrawi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsrd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsrw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstbux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstbx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstdcxdot(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstdu(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstdux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstdx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstfdux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstfdx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstfiwx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstfsux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstfsx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsthbrx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsthux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsthx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstswi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstswx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstvebx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstvehx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstvewx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstvx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstvxl(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstwbrx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstwcxdot(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstwux(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xstwx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubf(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubfc(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubfe(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubfic(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubfme(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsubfze(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xsync(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtd(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtdi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtlbia(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtlbie(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtlbiel(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtlbsync(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtw(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xxor(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrt(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xoponly(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtrap(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrt(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xlogx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrot(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrarb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xmtmsrx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrtrb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrtra(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtlbiex(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xrb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xfcmpx(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xftfb(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xtwi(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern int xext(uint32_t inst, ppcinst *instb, uint64_t addr, istate *is, regfile *rg);
extern void genbr(char *dst, int bo, int bi, uint32_t inst, int disp, char *op, char *oper);