* sem-switch.c: Regenerate. Redo computed goto label handling.

* sem.c: Regenerate.  Call PROFILE_COUNT_INSN.
	* readx.c: Regenerate.  Redo computed goto label handling.
	* semx.c: Regenerate.  Call PROFILE_COUNT_INSN.  Finish profiling
	support.
	* Makefile.in (stamp-xcpu): Turn on profiling support.
This commit is contained in:
Doug Evans 1998-05-06 22:38:05 +00:00
parent 177dedfb88
commit 40c680ba80
2 changed files with 631 additions and 248 deletions

View File

@ -27,138 +27,138 @@ with this program; if not, write to the Free Software Foundation, Inc.,
/* The labels have the case they have because the enum of insn types
is all uppercase and in the non-stdc case the fmt symbol is built
into the enum name.
into the enum name. */
The order here must match the order in m32rx_decode_vars in decode.c. */
static void *labels[] = {
&& case_read_READ_ILLEGAL,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_ADD3,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_AND3,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_OR3,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_AND3,
&& case_read_READ_FMT_ADDI,
&& case_read_READ_FMT_ADDV,
&& case_read_READ_FMT_ADDV3,
&& case_read_READ_FMT_ADDX,
&& case_read_READ_FMT_BC8,
&& case_read_READ_FMT_BC24,
&& case_read_READ_FMT_BEQ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BEQZ,
&& case_read_READ_FMT_BL8,
&& case_read_READ_FMT_BL24,
&& case_read_READ_FMT_BCL8,
&& case_read_READ_FMT_BCL24,
&& case_read_READ_FMT_BC8,
&& case_read_READ_FMT_BC24,
&& case_read_READ_FMT_BEQ,
&& case_read_READ_FMT_BRA8,
&& case_read_READ_FMT_BRA24,
&& case_read_READ_FMT_BCL8,
&& case_read_READ_FMT_BCL24,
&& case_read_READ_FMT_CMP,
&& case_read_READ_FMT_CMPI,
&& case_read_READ_FMT_CMP,
&& case_read_READ_FMT_CMPI,
&& case_read_READ_FMT_CMP,
&& case_read_READ_FMT_CMPZ,
&& case_read_READ_FMT_DIV,
&& case_read_READ_FMT_DIV,
&& case_read_READ_FMT_DIV,
&& case_read_READ_FMT_DIV,
&& case_read_READ_FMT_DIV,
&& case_read_READ_FMT_JC,
&& case_read_READ_FMT_JC,
&& case_read_READ_FMT_JL,
&& case_read_READ_FMT_JMP,
&& case_read_READ_FMT_LD,
&& case_read_READ_FMT_LD_D,
&& case_read_READ_FMT_LDB,
&& case_read_READ_FMT_LDB_D,
&& case_read_READ_FMT_LDH,
&& case_read_READ_FMT_LDH_D,
&& case_read_READ_FMT_LDB,
&& case_read_READ_FMT_LDB_D,
&& case_read_READ_FMT_LDH,
&& case_read_READ_FMT_LDH_D,
&& case_read_READ_FMT_LD_PLUS,
&& case_read_READ_FMT_LD24,
&& case_read_READ_FMT_LDI8,
&& case_read_READ_FMT_LDI16,
&& case_read_READ_FMT_LOCK,
&& case_read_READ_FMT_MACHI_A,
&& case_read_READ_FMT_MACHI_A,
&& case_read_READ_FMT_MACWHI,
&& case_read_READ_FMT_MACWHI,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_MULHI_A,
&& case_read_READ_FMT_MULHI_A,
&& case_read_READ_FMT_MULWHI,
&& case_read_READ_FMT_MULWHI,
&& case_read_READ_FMT_MV,
&& case_read_READ_FMT_MVFACHI_A,
&& case_read_READ_FMT_MVFACHI_A,
&& case_read_READ_FMT_MVFACHI_A,
&& case_read_READ_FMT_MVFC,
&& case_read_READ_FMT_MVTACHI_A,
&& case_read_READ_FMT_MVTACHI_A,
&& case_read_READ_FMT_MVTC,
&& case_read_READ_FMT_MV,
&& case_read_READ_FMT_NOP,
&& case_read_READ_FMT_MV,
&& case_read_READ_FMT_RAC_DSI,
&& case_read_READ_FMT_RAC_DSI,
&& case_read_READ_FMT_RTE,
&& case_read_READ_FMT_SETH,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_SLL3,
&& case_read_READ_FMT_SLLI,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_SLL3,
&& case_read_READ_FMT_SLLI,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_SLL3,
&& case_read_READ_FMT_SLLI,
&& case_read_READ_FMT_ST,
&& case_read_READ_FMT_ST_D,
&& case_read_READ_FMT_STB,
&& case_read_READ_FMT_STB_D,
&& case_read_READ_FMT_STH,
&& case_read_READ_FMT_STH_D,
&& case_read_READ_FMT_ST_PLUS,
&& case_read_READ_FMT_ST_PLUS,
&& case_read_READ_FMT_ADD,
&& case_read_READ_FMT_ADDV,
&& case_read_READ_FMT_ADDX,
&& case_read_READ_FMT_TRAP,
&& case_read_READ_FMT_UNLOCK,
&& case_read_READ_FMT_SATB,
&& case_read_READ_FMT_SATB,
&& case_read_READ_FMT_SAT,
&& case_read_READ_FMT_CMPZ,
&& case_read_READ_FMT_SADD,
&& case_read_READ_FMT_MACWU1,
&& case_read_READ_FMT_MACWHI,
&& case_read_READ_FMT_MULWU1,
&& case_read_READ_FMT_MACWU1,
&& case_read_READ_FMT_SC,
&& case_read_READ_FMT_SC,
0
static struct {
int index;
void *label;
} labels[] = {
{ M32RX_XINSN_ILLEGAL, && case_read_READ_ILLEGAL },
{ M32RX_XINSN_ADD, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_ADD3, && case_read_READ_FMT_ADD3 },
{ M32RX_XINSN_AND, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_AND3, && case_read_READ_FMT_AND3 },
{ M32RX_XINSN_OR, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_OR3, && case_read_READ_FMT_OR3 },
{ M32RX_XINSN_XOR, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_XOR3, && case_read_READ_FMT_AND3 },
{ M32RX_XINSN_ADDI, && case_read_READ_FMT_ADDI },
{ M32RX_XINSN_ADDV, && case_read_READ_FMT_ADDV },
{ M32RX_XINSN_ADDV3, && case_read_READ_FMT_ADDV3 },
{ M32RX_XINSN_ADDX, && case_read_READ_FMT_ADDX },
{ M32RX_XINSN_BC8, && case_read_READ_FMT_BC8 },
{ M32RX_XINSN_BC24, && case_read_READ_FMT_BC24 },
{ M32RX_XINSN_BEQ, && case_read_READ_FMT_BEQ },
{ M32RX_XINSN_BEQZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BGEZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BGTZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BLEZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BLTZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BNEZ, && case_read_READ_FMT_BEQZ },
{ M32RX_XINSN_BL8, && case_read_READ_FMT_BL8 },
{ M32RX_XINSN_BL24, && case_read_READ_FMT_BL24 },
{ M32RX_XINSN_BCL8, && case_read_READ_FMT_BCL8 },
{ M32RX_XINSN_BCL24, && case_read_READ_FMT_BCL24 },
{ M32RX_XINSN_BNC8, && case_read_READ_FMT_BC8 },
{ M32RX_XINSN_BNC24, && case_read_READ_FMT_BC24 },
{ M32RX_XINSN_BNE, && case_read_READ_FMT_BEQ },
{ M32RX_XINSN_BRA8, && case_read_READ_FMT_BRA8 },
{ M32RX_XINSN_BRA24, && case_read_READ_FMT_BRA24 },
{ M32RX_XINSN_BNCL8, && case_read_READ_FMT_BCL8 },
{ M32RX_XINSN_BNCL24, && case_read_READ_FMT_BCL24 },
{ M32RX_XINSN_CMP, && case_read_READ_FMT_CMP },
{ M32RX_XINSN_CMPI, && case_read_READ_FMT_CMPI },
{ M32RX_XINSN_CMPU, && case_read_READ_FMT_CMP },
{ M32RX_XINSN_CMPUI, && case_read_READ_FMT_CMPI },
{ M32RX_XINSN_CMPEQ, && case_read_READ_FMT_CMP },
{ M32RX_XINSN_CMPZ, && case_read_READ_FMT_CMPZ },
{ M32RX_XINSN_DIV, && case_read_READ_FMT_DIV },
{ M32RX_XINSN_DIVU, && case_read_READ_FMT_DIV },
{ M32RX_XINSN_REM, && case_read_READ_FMT_DIV },
{ M32RX_XINSN_REMU, && case_read_READ_FMT_DIV },
{ M32RX_XINSN_DIVH, && case_read_READ_FMT_DIV },
{ M32RX_XINSN_JC, && case_read_READ_FMT_JC },
{ M32RX_XINSN_JNC, && case_read_READ_FMT_JC },
{ M32RX_XINSN_JL, && case_read_READ_FMT_JL },
{ M32RX_XINSN_JMP, && case_read_READ_FMT_JMP },
{ M32RX_XINSN_LD, && case_read_READ_FMT_LD },
{ M32RX_XINSN_LD_D, && case_read_READ_FMT_LD_D },
{ M32RX_XINSN_LDB, && case_read_READ_FMT_LDB },
{ M32RX_XINSN_LDB_D, && case_read_READ_FMT_LDB_D },
{ M32RX_XINSN_LDH, && case_read_READ_FMT_LDH },
{ M32RX_XINSN_LDH_D, && case_read_READ_FMT_LDH_D },
{ M32RX_XINSN_LDUB, && case_read_READ_FMT_LDB },
{ M32RX_XINSN_LDUB_D, && case_read_READ_FMT_LDB_D },
{ M32RX_XINSN_LDUH, && case_read_READ_FMT_LDH },
{ M32RX_XINSN_LDUH_D, && case_read_READ_FMT_LDH_D },
{ M32RX_XINSN_LD_PLUS, && case_read_READ_FMT_LD_PLUS },
{ M32RX_XINSN_LD24, && case_read_READ_FMT_LD24 },
{ M32RX_XINSN_LDI8, && case_read_READ_FMT_LDI8 },
{ M32RX_XINSN_LDI16, && case_read_READ_FMT_LDI16 },
{ M32RX_XINSN_LOCK, && case_read_READ_FMT_LOCK },
{ M32RX_XINSN_MACHI_A, && case_read_READ_FMT_MACHI_A },
{ M32RX_XINSN_MACLO_A, && case_read_READ_FMT_MACHI_A },
{ M32RX_XINSN_MACWHI, && case_read_READ_FMT_MACWHI },
{ M32RX_XINSN_MACWLO, && case_read_READ_FMT_MACWHI },
{ M32RX_XINSN_MUL, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_MULHI_A, && case_read_READ_FMT_MULHI_A },
{ M32RX_XINSN_MULLO_A, && case_read_READ_FMT_MULHI_A },
{ M32RX_XINSN_MULWHI, && case_read_READ_FMT_MULWHI },
{ M32RX_XINSN_MULWLO, && case_read_READ_FMT_MULWHI },
{ M32RX_XINSN_MV, && case_read_READ_FMT_MV },
{ M32RX_XINSN_MVFACHI_A, && case_read_READ_FMT_MVFACHI_A },
{ M32RX_XINSN_MVFACLO_A, && case_read_READ_FMT_MVFACHI_A },
{ M32RX_XINSN_MVFACMI_A, && case_read_READ_FMT_MVFACHI_A },
{ M32RX_XINSN_MVFC, && case_read_READ_FMT_MVFC },
{ M32RX_XINSN_MVTACHI_A, && case_read_READ_FMT_MVTACHI_A },
{ M32RX_XINSN_MVTACLO_A, && case_read_READ_FMT_MVTACHI_A },
{ M32RX_XINSN_MVTC, && case_read_READ_FMT_MVTC },
{ M32RX_XINSN_NEG, && case_read_READ_FMT_MV },
{ M32RX_XINSN_NOP, && case_read_READ_FMT_NOP },
{ M32RX_XINSN_NOT, && case_read_READ_FMT_MV },
{ M32RX_XINSN_RAC_DSI, && case_read_READ_FMT_RAC_DSI },
{ M32RX_XINSN_RACH_DSI, && case_read_READ_FMT_RAC_DSI },
{ M32RX_XINSN_RTE, && case_read_READ_FMT_RTE },
{ M32RX_XINSN_SETH, && case_read_READ_FMT_SETH },
{ M32RX_XINSN_SLL, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_SLL3, && case_read_READ_FMT_SLL3 },
{ M32RX_XINSN_SLLI, && case_read_READ_FMT_SLLI },
{ M32RX_XINSN_SRA, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_SRA3, && case_read_READ_FMT_SLL3 },
{ M32RX_XINSN_SRAI, && case_read_READ_FMT_SLLI },
{ M32RX_XINSN_SRL, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_SRL3, && case_read_READ_FMT_SLL3 },
{ M32RX_XINSN_SRLI, && case_read_READ_FMT_SLLI },
{ M32RX_XINSN_ST, && case_read_READ_FMT_ST },
{ M32RX_XINSN_ST_D, && case_read_READ_FMT_ST_D },
{ M32RX_XINSN_STB, && case_read_READ_FMT_STB },
{ M32RX_XINSN_STB_D, && case_read_READ_FMT_STB_D },
{ M32RX_XINSN_STH, && case_read_READ_FMT_STH },
{ M32RX_XINSN_STH_D, && case_read_READ_FMT_STH_D },
{ M32RX_XINSN_ST_PLUS, && case_read_READ_FMT_ST_PLUS },
{ M32RX_XINSN_ST_MINUS, && case_read_READ_FMT_ST_PLUS },
{ M32RX_XINSN_SUB, && case_read_READ_FMT_ADD },
{ M32RX_XINSN_SUBV, && case_read_READ_FMT_ADDV },
{ M32RX_XINSN_SUBX, && case_read_READ_FMT_ADDX },
{ M32RX_XINSN_TRAP, && case_read_READ_FMT_TRAP },
{ M32RX_XINSN_UNLOCK, && case_read_READ_FMT_UNLOCK },
{ M32RX_XINSN_SATB, && case_read_READ_FMT_SATB },
{ M32RX_XINSN_SATH, && case_read_READ_FMT_SATB },
{ M32RX_XINSN_SAT, && case_read_READ_FMT_SAT },
{ M32RX_XINSN_PCMPBZ, && case_read_READ_FMT_CMPZ },
{ M32RX_XINSN_SADD, && case_read_READ_FMT_SADD },
{ M32RX_XINSN_MACWU1, && case_read_READ_FMT_MACWU1 },
{ M32RX_XINSN_MSBLO, && case_read_READ_FMT_MACWHI },
{ M32RX_XINSN_MULWU1, && case_read_READ_FMT_MULWU1 },
{ M32RX_XINSN_MACLH1, && case_read_READ_FMT_MACWU1 },
{ M32RX_XINSN_SC, && case_read_READ_FMT_SC },
{ M32RX_XINSN_SNC, && case_read_READ_FMT_SC },
{ 0, 0 }
};
extern DECODE *m32rx_decode_vars[];
int i;
for (i = 0; m32rx_decode_vars[i] != 0; ++i)
m32rx_decode_vars[i]->read = labels[i];
for (i = 0; labels[i].label != 0; ++i)
CPU_IDESC (current_cpu) [labels[i].index].read = labels[i].label;
#endif /* DEFINE_LABELS */

File diff suppressed because it is too large Load Diff