📄 cpu.h
字号:
// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE } sfmt_str14h;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI f_disp10;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE } sfmt_str14;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_Ri;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_ldr15gr;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE USI f_udisp6;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldr15;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE INT f_disp8;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldr14ub;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI f_disp9;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldr14uh;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI f_disp10;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldr14;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI f_m4;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_add2;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_u4;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_addi;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI* i_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_Rj;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_Rj;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE } sfmt_str13;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI* i_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_Rj;// OBSOLETE unsigned char in_Rj;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldr13;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI* i_Rj;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_Rj;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_Rj;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_add;// OBSOLETE struct { /* */// OBSOLETE UINT f_reglist_hi_st;// OBSOLETE unsigned char in_h_gr_SI_10;// OBSOLETE unsigned char in_h_gr_SI_11;// OBSOLETE unsigned char in_h_gr_SI_12;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char in_h_gr_SI_8;// OBSOLETE unsigned char in_h_gr_SI_9;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_stm1;// OBSOLETE struct { /* */// OBSOLETE UINT f_reglist_hi_ld;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_10;// OBSOLETE unsigned char out_h_gr_SI_11;// OBSOLETE unsigned char out_h_gr_SI_12;// OBSOLETE unsigned char out_h_gr_SI_13;// OBSOLETE unsigned char out_h_gr_SI_14;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_8;// OBSOLETE unsigned char out_h_gr_SI_9;// OBSOLETE } sfmt_ldm1;// OBSOLETE struct { /* */// OBSOLETE UINT f_reglist_low_st;// OBSOLETE unsigned char in_h_gr_SI_0;// OBSOLETE unsigned char in_h_gr_SI_1;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char in_h_gr_SI_2;// OBSOLETE unsigned char in_h_gr_SI_3;// OBSOLETE unsigned char in_h_gr_SI_4;// OBSOLETE unsigned char in_h_gr_SI_5;// OBSOLETE unsigned char in_h_gr_SI_6;// OBSOLETE unsigned char in_h_gr_SI_7;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_stm0;// OBSOLETE struct { /* */// OBSOLETE UINT f_reglist_low_ld;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_0;// OBSOLETE unsigned char out_h_gr_SI_1;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_2;// OBSOLETE unsigned char out_h_gr_SI_3;// OBSOLETE unsigned char out_h_gr_SI_4;// OBSOLETE unsigned char out_h_gr_SI_5;// OBSOLETE unsigned char out_h_gr_SI_6;// OBSOLETE unsigned char out_h_gr_SI_7;// OBSOLETE } sfmt_ldm0;// OBSOLETE #if WITH_SCACHE_PBB// OBSOLETE /* Writeback handler. */// OBSOLETE struct {// OBSOLETE /* Pointer to argbuf entry for insn whose results need writing back. */// OBSOLETE const struct argbuf *abuf;// OBSOLETE } write;// OBSOLETE /* x-before handler */// OBSOLETE struct {// OBSOLETE /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/// OBSOLETE int first_p;// OBSOLETE } before;// OBSOLETE /* x-after handler */// OBSOLETE struct {// OBSOLETE int empty;// OBSOLETE } after;// OBSOLETE /* This entry is used to terminate each pbb. */// OBSOLETE struct {// OBSOLETE /* Number of insns in pbb. */// OBSOLETE int insn_count;// OBSOLETE /* Next pbb to execute. */// OBSOLETE SCACHE *next;// OBSOLETE SCACHE *branch_target;// OBSOLETE } chain;// OBSOLETE #endif// OBSOLETE };// OBSOLETE // OBSOLETE /* The ARGBUF struct. */// OBSOLETE struct argbuf {// OBSOLETE /* These are the baseclass definitions. */// OBSOLETE IADDR addr;// OBSOLETE const IDESC *idesc;// OBSOLETE char trace_p;// OBSOLETE char profile_p;// OBSOLETE /* ??? Temporary hack for skip insns. */// OBSOLETE char skip_count;// OBSOLETE char unused;// OBSOLETE /* cpu specific data follows */// OBSOLETE union sem semantic;// OBSOLETE int written;// OBSOLETE union sem_fields fields;// OBSOLETE };// OBSOLETE // OBSOLETE /* A cached insn.// OBSOLETE // OBSOLETE ??? SCACHE used to contain more than just argbuf. We could delete the// OBSOLETE type entirely and always just use ARGBUF, but for future concerns and as// OBSOLETE a level of abstraction it is left in. */// OBSOLETE // OBSOLETE struct scache {// OBSOLETE struct argbuf argbuf;// OBSOLETE };// OBSOLETE // OBSOLETE /* Macros to simplify extraction, reading and semantic code.// OBSOLETE These define and assign the local vars that contain the insn's fields. */// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_EMPTY_VARS \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_EMPTY_CODE \// OBSOLETE length = 0; \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_ADD_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_op2; \// OBSOLETE UINT f_Rj; \// OBSOLETE UINT f_Ri; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_ADD_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_ADDI_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_op2; \// OBSOLETE UINT f_u4; \// OBSOLETE UINT f_Ri; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_ADDI_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_ADD2_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_op2; \// OBSOLETE SI f_m4; \// OBSOLETE UINT f_Ri; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_ADD2_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4)))); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_DIV0S_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_op2; \// OBSOLETE UINT f_op3; \// OBSOLETE UINT f_Ri; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_DIV0S_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_DIV3_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_op2; \// OBSOLETE UINT f_op3; \// OBSOLETE UINT f_op4; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_DIV3_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \// OBSOLETE f_op4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_LDI8_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_i8; \// OBSOLETE UINT f_Ri; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_LDI8_CODE \// OBSOLETE length = 2; \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_i8 = EXTRACT_MSB0_UINT (insn, 16, 4, 8); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_LDI20_VARS \// OBSOLETE UINT f_op1; \// OBSOLETE UINT f_i20_4; \// OBSOLETE UINT f_i20_16; \// OBSOLETE UINT f_i20; \// OBSOLETE UINT f_op2; \// OBSOLETE UINT f_Ri; \// OBSOLETE /* Contents of trailing part of insn. */ \// OBSOLETE UINT word_1; \// OBSOLETE unsigned int length;// OBSOLETE #define EXTRACT_IFMT_LDI20_CODE \// OBSOLETE length = 4; \// OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \// OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \// OBSOLETE f_i20_4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \// OBSOLETE f_i20_16 = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 0)); \// OBSOLETE {\// OBSOLETE f_i20 = ((((f_i20_4) << (16))) | (f_i20_16));\// OBSOLETE }\// OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \// OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \// OBSOLETE // OBSOLETE #define EXTRACT_IFMT_LDI32_VARS \// OBSOLETE UINT f_op1; \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -