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

📄 cpu.h

📁 这个是LINUX下的GDB调度工具的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  UINT f_uimm16; \  unsigned int length;#define EXTRACT_IFMT_OR3_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \#define EXTRACT_IFMT_ADDI_VARS \  UINT f_op1; \  UINT f_r1; \  INT f_simm8; \  unsigned int length;#define EXTRACT_IFMT_ADDI_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_simm8 = EXTRACT_MSB0_INT (insn, 16, 8, 8); \#define EXTRACT_IFMT_ADDV3_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_ADDV3_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_BC8_VARS \  UINT f_op1; \  UINT f_r1; \  SI f_disp8; \  unsigned int length;#define EXTRACT_IFMT_BC8_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_disp8 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2))) + (((pc) & (-4)))); \#define EXTRACT_IFMT_BC24_VARS \  UINT f_op1; \  UINT f_r1; \  SI f_disp24; \  unsigned int length;#define EXTRACT_IFMT_BC24_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_disp24 = ((((EXTRACT_MSB0_INT (insn, 32, 8, 24)) << (2))) + (pc)); \#define EXTRACT_IFMT_BEQ_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  SI f_disp16; \  unsigned int length;#define EXTRACT_IFMT_BEQ_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \#define EXTRACT_IFMT_BEQZ_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  SI f_disp16; \  unsigned int length;#define EXTRACT_IFMT_BEQZ_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 16, 16)) << (2))) + (pc)); \#define EXTRACT_IFMT_CMP_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_CMP_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_CMPI_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_CMPI_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_DIV_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_DIV_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_JL_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_JL_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_LD24_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_uimm24; \  unsigned int length;#define EXTRACT_IFMT_LD24_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_uimm24 = EXTRACT_MSB0_UINT (insn, 32, 8, 24); \#define EXTRACT_IFMT_LDI16_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_LDI16_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_MVFACHI_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_MVFACHI_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_MVFC_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_MVFC_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_MVTACHI_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_MVTACHI_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_MVTC_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_MVTC_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_NOP_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_NOP_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_SETH_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  UINT f_hi16; \  unsigned int length;#define EXTRACT_IFMT_SETH_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_hi16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16); \#define EXTRACT_IFMT_SLLI_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_shift_op2; \  UINT f_uimm5; \  unsigned int length;#define EXTRACT_IFMT_SLLI_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_shift_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 3); \  f_uimm5 = EXTRACT_MSB0_UINT (insn, 16, 11, 5); \#define EXTRACT_IFMT_ST_D_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_ST_D_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 32, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_TRAP_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_op2; \  UINT f_uimm4; \  unsigned int length;#define EXTRACT_IFMT_TRAP_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_uimm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \#define EXTRACT_IFMT_CLRPSW_VARS \  UINT f_op1; \  UINT f_r1; \  UINT f_uimm8; \  unsigned int length;#define EXTRACT_IFMT_CLRPSW_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_r1 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \  f_uimm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \#define EXTRACT_IFMT_BSET_VARS \  UINT f_op1; \  UINT f_bit4; \  UINT f_uimm3; \  UINT f_op2; \  UINT f_r2; \  INT f_simm16; \  unsigned int length;#define EXTRACT_IFMT_BSET_CODE \  length = 4; \  f_op1 = EXTRACT_MSB0_UINT (insn, 32, 0, 4); \  f_bit4 = EXTRACT_MSB0_UINT (insn, 32, 4, 1); \  f_uimm3 = EXTRACT_MSB0_UINT (insn, 32, 5, 3); \  f_op2 = EXTRACT_MSB0_UINT (insn, 32, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 32, 12, 4); \  f_simm16 = EXTRACT_MSB0_INT (insn, 32, 16, 16); \#define EXTRACT_IFMT_BTST_VARS \  UINT f_op1; \  UINT f_bit4; \  UINT f_uimm3; \  UINT f_op2; \  UINT f_r2; \  unsigned int length;#define EXTRACT_IFMT_BTST_CODE \  length = 2; \  f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \  f_bit4 = EXTRACT_MSB0_UINT (insn, 16, 4, 1); \  f_uimm3 = EXTRACT_MSB0_UINT (insn, 16, 5, 3); \  f_op2 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \  f_r2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \/* Collection of various things for the trace handler to use.  */typedef struct trace_record {  IADDR pc;  /* FIXME:wip */} TRACE_RECORD;#endif /* CPU_M32RBF_H */

⌨️ 快捷键说明

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