⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ppcopc.cc

📁 功能较全面的反汇编器:反汇编器ht-2.0.15.tar.gz
💻 CC
📖 第 1 页 / 共 5 页
字号:
  { 10, 11, extract_spr, 0 },  /* The BAT index number in an XFX form m[ft]ibat[lu] instruction.  */#define SPRBAT SPR + 1#define SPRBAT_MASK (0x3 << 17)  { 2, 17, 0, 0 },  /* The SPRG register number in an XFX form m[ft]sprg instruction.  */#define SPRG SPRBAT + 1#define SPRG_MASK (0x3 << 16)  { 2, 16, 0, 0 },  /* The SR field in an X form instruction.  */#define SR SPRG + 1  { 4, 16, 0, 0 },  /* The STRM field in an X AltiVec form instruction.  */#define STRM SR + 1#define STRM_MASK (0x3 << 21)  { 2, 21, 0, 0 },  /* The SV field in a POWER SC form instruction.  */#define SV STRM + 1  { 14, 2, 0, 0 },  /* The TBR field in an XFX form instruction.  This is like the SPR     field, but it is optional.  */#define TBR SV + 1  { 10, 11, extract_tbr, PPC_OPERAND_OPTIONAL },  /* The TO field in a D or X form instruction.  */#define TO TBR + 1#define TO_MASK (0x1f << 21)  { 5, 21, 0, 0 },  /* The U field in an X form instruction.  */#define U TO + 1  { 4, 12, 0, 0 },  /* The UI field in a D form instruction.  */#define UI U + 1  { 16, 0, 0, 0 },  /* The VA field in a VA, VX or VXR form instruction. */#define VA UI + 1#define VA_MASK	(0x1f << 16)  { 5, 16, 0, PPC_OPERAND_VR },  /* The VB field in a VA, VX or VXR form instruction. */#define VB VA + 1#define VB_MASK (0x1f << 11)  { 5, 11, 0, PPC_OPERAND_VR },  /* The VB field in a VA, VX or VXR form instruction. */#define VAB VB + 1#define VAB_MASK (0x1f << 11)  { 5, 11, extract_vab, PPC_OPERAND_FAKE },  /* The VC field in a VA form instruction. */#define VC VAB + 1#define VC_MASK (0x1f << 6)  { 5, 6, 0, PPC_OPERAND_VR },  /* The VD or VS field in a VA, VX, VXR or X form instruction. */#define VD VC + 1#define VS VD#define VD_MASK (0x1f << 21)  { 5, 21, 0, PPC_OPERAND_VR },  /* The VD or VS field in a VA, VX, VXR or X form instruction. */#define VD128 VD + 1#define VS128 VD128#define VD128_MASK (0x1f << 21)  { 0, 0, extract_vds128, PPC_OPERAND_VR },  /* The VD or VS field in a VA, VX, VXR or X form instruction. */#define VA128 VD128 + 1#define VA128_MASK (0x1f << 21)  { 0, 0, extract_va128, PPC_OPERAND_VR },  /* The VD or VS field in a VA, VX, VXR or X form instruction. */#define VB128 VA128 + 1#define VB128_MASK (0x1f << 21)  { 0, 0, extract_vb128, PPC_OPERAND_VR },  /* The VD or VS field in a VA, VX, VXR or X form instruction. */#define VC128 VB128 + 1#define VC128_MASK (0x1f << 21)  { 3, 6, 0, PPC_OPERAND_VR },#define VPERM128 VC128 + 1#define VPERM_MASK (0x1f << 21)  { 0, 0, extract_vperm, 0 },#define VD3D0 VPERM128 + 1  { 3, 18, 0, 0 },#define VD3D1 VD3D0 + 1  { 2, 16, 0, 0 },#define VD3D2 VD3D1 + 1  { 2, 6, 0, 0 },  /* The SIMM field in a VX form instruction. */#define SIMM VD3D2 + 1  { 5, 16, 0, PPC_OPERAND_SIGNED},  /* The UIMM field in a VX form instruction. */#define UIMM SIMM + 1  { 5, 16, 0, 0 },  /* The SHB field in a VA form instruction. */#define SHB UIMM + 1  { 4, 6, 0, 0 },  /* The WS field.  */#define WS SHB + 1#define WS_MASK (0x7 << 11)  { 3, 11, 0, 0 },  /* The L field in an mtmsrd instruction */#define MTMSRD_L WS + 1  { 1, 16, 0, PPC_OPERAND_OPTIONAL },  /* The DCM field in a Z form instruction.  */#define DCM MTMSRD_L + 1#define DGM DCM  { 6, 16, 0, 0 },#define TE DGM + 1  { 5, 11, 0, 0 },#define RMC TE + 1  { 2, 21, 0, 0 },#define R RMC + 1  { 1, 15, 0, 0 },#define SP R + 1  { 2, 11, 0, 0 },#define S SP + 1  { 1, 11, 0, 0 },  /* SH field starting at bit position 16.  */#define SH16 S + 1  { 6, 10, 0, 0 },};/* Macros used to form opcodes.  *//* The main opcode.  */#define OP(x) ((((unsigned long)(x)) & 0x3f) << 26)#define OP_MASK OP (0x3f)/* The main opcode combined with a trap code in the TO field of a D   form instruction.  Used for extended mnemonics for the trap   instructions.  */#define OPTO(x,to) (OP (x) | ((((unsigned long)(to)) & 0x1f) << 21))#define OPTO_MASK (OP_MASK | TO_MASK)/* The main opcode combined with a comparison size bit in the L field   of a D form or X form instruction.  Used for extended mnemonics for   the comparison instructions.  */#define OPL(x,l) (OP (x) | ((((unsigned long)(l)) & 1) << 21))#define OPL_MASK OPL (0x3f,1)/* An A form instruction.  */#define A(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1) | (((unsigned long)(rc)) & 1))#define A_MASK A (0x3f, 0x1f, 1)/* An A_MASK with the FRB field fixed.  */#define AFRB_MASK (A_MASK | FRB_MASK)/* An A_MASK with the FRC field fixed.  */#define AFRC_MASK (A_MASK | FRC_MASK)/* An A_MASK with the FRA and FRC fields fixed.  */#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)/* A B form instruction.  */#define B(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 1) | ((lk) & 1))#define B_MASK B (0x3f, 1, 1)/* A B form instruction setting the BO field.  */#define BBO(op, bo, aa, lk) (B ((op), (aa), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21))#define BBO_MASK BBO (0x3f, 0x1f, 1, 1)/* A BBO_MASK with the y bit of the BO field removed.  This permits   matching a conditional branch regardless of the setting of the y   bit.  Similarly for the 'at' bits used for power4 branch hints.  */#define Y_MASK   (((unsigned long) 1) << 21)#define AT1_MASK (((unsigned long) 3) << 21)#define AT2_MASK (((unsigned long) 9) << 21)#define BBOY_MASK  (BBO_MASK &~ Y_MASK)#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)/* A B form instruction setting the BO field and the condition bits of   the BI field.  */#define BBOCB(op, bo, cb, aa, lk) \  (BBO ((op), (bo), (aa), (lk)) | ((((unsigned long)(cb)) & 0x3) << 16))#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)/* A BBOCB_MASK with the y bit of the BO field removed.  */#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)/* A BBOYCB_MASK in which the BI field is fixed.  */#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)/* An Context form instruction.  */#define CTX(op, xop)   (OP (op) | (((unsigned long)(xop)) & 0x7))#define CTX_MASK       CTX(0x3f, 0x7)/* An User Context form instruction.  */#define UCTX(op, xop)  (OP (op) | (((unsigned long)(xop)) & 0x1f))#define UCTX_MASK      UCTX(0x3f, 0x1f)/* The main opcode mask with the RA field clear.  */#define DRA_MASK (OP_MASK | RA_MASK)/* A DS form instruction.  */#define DSO(op, xop) (OP (op) | ((xop) & 0x3))#define DS_MASK DSO (0x3f, 3)/* A DE form instruction.  */#define DEO(op, xop) (OP (op) | ((xop) & 0xf))#define DE_MASK DEO (0x3e, 0xf)/* An EVSEL form instruction.  */#define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3)#define EVSEL_MASK EVSEL(0x3f, 0xff)/* An M form instruction.  */#define M(op, rc) (OP (op) | ((rc) & 1))#define M_MASK M (0x3f, 1)/* An M form instruction with the ME field specified.  */#define MME(op, me, rc) (M ((op), (rc)) | ((((unsigned long)(me)) & 0x1f) << 1))/* An M_MASK with the MB and ME fields fixed.  */#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)/* An M_MASK with the SH and ME fields fixed.  */#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)/* An MD form instruction.  */#define MD(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x7) << 2) | ((rc) & 1))#define MD_MASK MD (0x3f, 0x7, 1)/* An MD_MASK with the MB field fixed.  */#define MDMB_MASK (MD_MASK | MB6_MASK)/* An MD_MASK with the SH field fixed.  */#define MDSH_MASK (MD_MASK | SH6_MASK)/* An MDS form instruction.  */#define MDS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0xf) << 1) | ((rc) & 1))#define MDS_MASK MDS (0x3f, 0xf, 1)/* An MDS_MASK with the MB field fixed.  */#define MDSMB_MASK (MDS_MASK | MB6_MASK)/* An SC form instruction.  */#define SC(op, sa, lk) (OP (op) | ((((unsigned long)(sa)) & 1) << 1) | ((lk) & 1))#define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1)/* An VX form instruction. */#define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff))/* The mask for an VX form instruction. */#define VX_MASK	VX(0x3f, 0x7ff)/* The mask for an VX form instruction. */#define VX_MASK	VX(0x3f, 0x7ff)/* An VA form instruction. */#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f))/* The mask for an VA form instruction. */#define VXA_MASK VXA(0x3f, 0x3f)/* An VXR form instruction. */#define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff))/* The mask for a VXR form instruction. */#define VXR_MASK VXR(0x3f, 0x3ff, 1)/* An VX128 form instruction. */#define VX128(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x3d0))/* The mask for an VX form instruction. */#define VX128_MASK	VX(0x3f, 0x3d0)/* An VX128 form instruction. */#define VX128_1(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7f3))/* The mask for an VX form instruction. */#define VX128_1_MASK	VX(0x3f, 0x7f3)/* An VX128 form instruction. */#define VX128_2(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x210))/* The mask for an VX form instruction. */#define VX128_2_MASK	VX(0x3f, 0x210)/* An VX128 form instruction. */#define VX128_3(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7f0))/* The mask for an VX form instruction. */#define VX128_3_MASK	VX(0x3f, 0x7f0)#define VX128_P(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x630))#define VX128_P_MASK	VX(0x3f, 0x630)#define VX128_4(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x730))#define VX128_4_MASK	VX(0x3f, 0x730)#define VX128_5(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x10))#define VX128_5_MASK	VX(0x3f, 0x10)/* An X form instruction.  */#define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1))/* A Z form instruction.  */#define Z(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1))/* An X form instruction with the RC bit specified.  */#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))/* A Z form instruction with the RC bit specified.  */#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -