📄 cpu.h
字号:
unsigned char in_h_fr_SF_add__DFLT_index_of__DFLT_FRj_1; unsigned char in_h_fr_SF_add__DFLT_index_of__DFLT_FRj_2; unsigned char in_h_fr_SF_add__DFLT_index_of__DFLT_FRj_3; unsigned char out_FRk; unsigned char out_h_fr_SF_add__DFLT_index_of__DFLT_FRk_1; unsigned char out_h_fr_SF_add__DFLT_index_of__DFLT_FRk_2; unsigned char out_h_fr_SF_add__DFLT_index_of__DFLT_FRk_3; } sfmt_fdmas; struct { /* */ UINT f_ACC40Uk; UINT f_CCi; UINT f_FRi; UINT f_FRj; UINT f_cond; unsigned char in_ACC40Uk; unsigned char in_CCi; unsigned char in_FRinti; unsigned char in_FRintj; unsigned char in_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_1; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRinti_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRinti_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char out_ACC40Uk; unsigned char out_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_1; } sfmt_cmmachu; struct { /* */ UINT f_ACC40Sk; UINT f_CCi; UINT f_FRi; UINT f_FRj; UINT f_cond; unsigned char in_ACC40Sk; unsigned char in_CCi; unsigned char in_FRinti; unsigned char in_FRintj; unsigned char in_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_1; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRinti_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRinti_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char out_ACC40Sk; unsigned char out_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_1; } sfmt_cmmachs; struct { /* */ UINT f_CCi; UINT f_FRj; UINT f_FRk; UINT f_cond; unsigned char in_CCi; unsigned char in_FRintjeven; unsigned char in_FRintk; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char out_FRintjeven; unsigned char out_FRintk; unsigned char out_h_fr_0_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_1_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_2_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_3_UHI_add__DFLT_index_of__DFLT_FRintk_0; } sfmt_cmhtob; struct { /* */ UINT f_CCi; UINT f_FRj; UINT f_FRk; UINT f_cond; unsigned char in_CCi; unsigned char in_FRintj; unsigned char in_FRintkeven; unsigned char in_h_fr_0_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_1_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_2_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_3_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char out_FRintj; unsigned char out_FRintkeven; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; } sfmt_cmbtoh; struct { /* */ UINT f_FRi; UINT f_FRj; UINT f_FRk; unsigned char in_FRintieven; unsigned char in_FRintjeven; unsigned char in_FRintkeven; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char out_FRintieven; unsigned char out_FRintjeven; unsigned char out_FRintkeven; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; } sfmt_mdpackh; struct { /* */ UINT f_FRi; UINT f_FRk; unsigned char in_FRintieven; unsigned char in_FRintk; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char out_FRintieven; unsigned char out_FRintk; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_2; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_add__DFLT_0_1; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_add__DFLT_2_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_2; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_add__DFLT_0_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_add__DFLT_2_1; } sfmt_mdunpackh; struct { /* */ UINT f_CCi; UINT f_FRj; UINT f_FRk; UINT f_cond; unsigned char in_CCi; unsigned char in_FRintj; unsigned char in_FRintk; unsigned char in_h_fr_0_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_1_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_2_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char in_h_fr_3_UHI_add__DFLT_index_of__DFLT_FRintj_0; unsigned char out_FRintj; unsigned char out_FRintk; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_1; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_2; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintk_3; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_0; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_2; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintk_3; } sfmt_cmbtohe; struct { /* */ UINT f_CCi; UINT f_FRi; UINT f_FRj; UINT f_FRk; UINT f_cond; unsigned char in_CCi; unsigned char in_FRintieven; unsigned char in_FRintjeven; unsigned char in_FRintkeven; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char out_FRintkeven; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_0; unsigned char out_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintkeven_1; } sfmt_cmqaddhss; struct { /* */ UINT f_ACC40Uk; UINT f_CCi; UINT f_FRi; UINT f_FRj; UINT f_cond; unsigned char in_ACC40Uk; unsigned char in_CCi; unsigned char in_FRintieven; unsigned char in_FRintjeven; unsigned char in_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_1; unsigned char in_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_2; unsigned char in_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_3; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char out_ACC40Uk; unsigned char out_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_1; unsigned char out_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_2; unsigned char out_h_acc40U_UDI_add__DFLT_index_of__DFLT_ACC40Uk_3; } sfmt_cmqmachu; struct { /* */ UINT f_ACC40Sk; UINT f_CCi; UINT f_FRi; UINT f_FRj; UINT f_cond; unsigned char in_ACC40Sk; unsigned char in_CCi; unsigned char in_FRintieven; unsigned char in_FRintjeven; unsigned char in_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_1; unsigned char in_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_2; unsigned char in_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_3; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_hi_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintieven_1; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_0; unsigned char in_h_fr_lo_UHI_add__DFLT_index_of__DFLT_FRintjeven_1; unsigned char out_ACC40Sk; unsigned char out_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_1; unsigned char out_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_2; unsigned char out_h_acc40S_DI_add__DFLT_index_of__DFLT_ACC40Sk_3; } sfmt_cmqmachs;#if WITH_SCACHE_PBB /* Writeback handler. */ struct { /* Pointer to argbuf entry for insn whose results need writing back. */ const struct argbuf *abuf; } write; /* x-before handler */ struct { /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/ int first_p; } before; /* x-after handler */ struct { int empty; } after; /* This entry is used to terminate each pbb. */ struct { /* Number of insns in pbb. */ int insn_count; /* Next pbb to execute. */ SCACHE *next; SCACHE *branch_target; } chain;#endif};/* The ARGBUF struct. */struct argbuf { /* These are the baseclass definitions. */ IADDR addr; const IDESC *idesc; char trace_p; char profile_p; /* ??? Temporary hack for skip insns. */ char skip_count; char unused; /* cpu specific data follows */ union sem semantic; int written; union sem_fields fields;};/* A cached insn. ??? SCACHE used to contain more than just argbuf. We could delete the type entirely and always just use ARGBUF, but for future concerns and as a level of abstraction it is left in. */struct scache { struct argbuf argbuf; int first_insn_p; int last_insn_p;};/* Macros to simplify extraction, reading and semantic code. These define and assign the local vars that contain the insn's fields. */#define EXTRACT_IFMT_EMPTY_VARS \ unsigned int length;#define EXTRACT_IFMT_EMPTY_CODE \ length = 0; \#define EXTRACT_IFMT_ADD_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_GRi; \ UINT f_ICCi_1_null; \ UINT f_ope2; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_ADD_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \ f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_NOT_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_rs_null; \ UINT f_ICCi_1_null; \ UINT f_ope2; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_NOT_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \ f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_SMUL_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_GRi; \ UINT f_ICCi_1_null; \ UINT f_ope2; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_SMUL_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \ f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_SMU_VARS \ UINT f_pack; \ UINT f_rd_null; \ UINT f_op; \ UINT f_GRi; \ UINT f_ope1; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_SMU_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_SLASS_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_GRi; \ UINT f_ope1; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_SLASS_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_SCUTSS_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_rs_null; \ UINT f_ope1; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_SCUTSS_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_CADD_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_GRi; \ UINT f_CCi; \ UINT f_cond; \ UINT f_ope4; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_CADD_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \ f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \ f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_CNOT_VARS \ UINT f_pack; \ UINT f_GRk; \ UINT f_op; \ UINT f_rs_null; \ UINT f_CCi; \ UINT f_cond; \ UINT f_ope4; \ UINT f_GRj; \ unsigned int length;#define EXTRACT_IFMT_CNOT_CODE \ length = 4; \ f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \ f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \ f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \ f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \ f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \ f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \ f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \ f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \#define EXTRACT_IFMT_CSMUL_VARS \ UINT f_pack; \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -