* Makefile.in (MAIN_INCLUDE_DEPS): Delete.
(INCLUDE_DEPS,OPS_INCLUDE_DEPS): Delete. (sim-if.o): Use SIM_MAIN_DEPS. (arch.o,traps.o,devices.o): Ditto. (M32RBF_INCLUDE_DEPS): Use CGEN_MAIN_CPU_DEPS. (m32r.o,mloop.o,cpu.o,decode.o,sem.o,model.o): Simplify dependencies. (m32rx.o,mloopx.o,cpux.o,decodex.o,semx.o,modelx.o): Ditto. (stamp-arch): Pass mach=all to cgen-arch. * cpu.c,cpu.h,decode.c,model.c,sem-switch.c,sem.c: Regenerate. * m32r-sim.h (fr30bf_h_cr_[gs]et_handler): Declare. ([GS]ET_H_CR): Define. (fr30bf_h_psw_[gs]et_handler): Declare. ([GS]ET_H_PSW): Define. (fr30bf_h_accum_[gs]et_handler): Declare. ([GS]ET_H_ACCUM): Define. (fr30xf_h_{cr,psw,accum}_[gs]et_handler): Declare. (fr30bf_h_accums_[gs]et_handler): Declare. ([GS]ET_H_ACCUMS): Define. * sim-if.c (sim_open): Model probing code moved to sim-model.c. * m32r.c (WANT_CPU): Define as m32rbf. (all register access fns): Rename to ..._handler. * cpux.c,cpux.h,decodex.c,modelx.c,semx.c: Regenerate. * m32rx.c (WANT_CPU): Define as m32rxf. (all register access fns): Rename to ..._handler.
This commit is contained in:
parent
d9455383f9
commit
368fc7dba8
14 changed files with 7790 additions and 970 deletions
|
@ -22,7 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
*/
|
||||
|
||||
#define WANT_CPU
|
||||
#define WANT_CPU m32rbf
|
||||
#define WANT_CPU_M32RBF
|
||||
|
||||
#include "sim-main.h"
|
||||
|
@ -258,20 +258,20 @@ m32rbf_init_idesc_table (SIM_CPU *cpu)
|
|||
|
||||
/* Enum declaration for all instruction formats. */
|
||||
typedef enum ifmt {
|
||||
FMT_ADD, FMT_ADD3, FMT_AND3, FMT_OR3
|
||||
, FMT_ADDI, FMT_ADDV, FMT_ADDV3, FMT_ADDX
|
||||
, FMT_BC8, FMT_BC24, FMT_BEQ, FMT_BEQZ
|
||||
, FMT_BL8, FMT_BL24, FMT_BRA8, FMT_BRA24
|
||||
, FMT_CMP, FMT_CMPI, FMT_DIV, FMT_JL
|
||||
, FMT_JMP, FMT_LD, FMT_LD_D, FMT_LDB
|
||||
, FMT_LDB_D, FMT_LDH, FMT_LDH_D, FMT_LD_PLUS
|
||||
, FMT_LD24, FMT_LDI8, FMT_LDI16, FMT_LOCK
|
||||
, FMT_MACHI, FMT_MULHI, FMT_MV, FMT_MVFACHI
|
||||
, FMT_MVFC, FMT_MVTACHI, FMT_MVTC, FMT_NOP
|
||||
, FMT_RAC, FMT_RTE, FMT_SETH, FMT_SLL3
|
||||
, FMT_SLLI, FMT_ST, FMT_ST_D, FMT_STB
|
||||
, FMT_STB_D, FMT_STH, FMT_STH_D, FMT_ST_PLUS
|
||||
, FMT_TRAP, FMT_UNLOCK
|
||||
FMT_EMPTY, FMT_ADD, FMT_ADD3, FMT_AND3
|
||||
, FMT_OR3, FMT_ADDI, FMT_ADDV, FMT_ADDV3
|
||||
, FMT_ADDX, FMT_BC8, FMT_BC24, FMT_BEQ
|
||||
, FMT_BEQZ, FMT_BL8, FMT_BL24, FMT_BRA8
|
||||
, FMT_BRA24, FMT_CMP, FMT_CMPI, FMT_DIV
|
||||
, FMT_JL, FMT_JMP, FMT_LD, FMT_LD_D
|
||||
, FMT_LDB, FMT_LDB_D, FMT_LDH, FMT_LDH_D
|
||||
, FMT_LD_PLUS, FMT_LD24, FMT_LDI8, FMT_LDI16
|
||||
, FMT_LOCK, FMT_MACHI, FMT_MULHI, FMT_MV
|
||||
, FMT_MVFACHI, FMT_MVFC, FMT_MVTACHI, FMT_MVTC
|
||||
, FMT_NOP, FMT_RAC, FMT_RTE, FMT_SETH
|
||||
, FMT_SLL3, FMT_SLLI, FMT_ST, FMT_ST_D
|
||||
, FMT_STB, FMT_STB_D, FMT_STH, FMT_STH_D
|
||||
, FMT_ST_PLUS, FMT_TRAP, FMT_UNLOCK
|
||||
} IFMT;
|
||||
|
||||
/* The decoder uses this to record insns and direct extraction handling. */
|
||||
|
@ -668,6 +668,21 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
#endif
|
||||
{
|
||||
|
||||
CASE (ex, FMT_EMPTY) :
|
||||
{
|
||||
CGEN_INSN_INT insn = entire_insn;
|
||||
#define FLD(f) abuf->fields.fmt_empty.f
|
||||
EXTRACT_FMT_EMPTY_VARS /* */
|
||||
|
||||
EXTRACT_FMT_EMPTY_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_empty", (char *) 0));
|
||||
|
||||
#undef FLD
|
||||
BREAK (ex);
|
||||
}
|
||||
|
||||
CASE (ex, FMT_ADD) :
|
||||
{
|
||||
CGEN_INSN_INT insn = entire_insn;
|
||||
|
@ -703,10 +718,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_ADD3_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add3", "sr 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add3", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -729,10 +744,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_AND3_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_uimm16) = f_uimm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_and3", "sr 0x%x", 'x', f_r2, "uimm16 0x%x", 'x', f_uimm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_and3", "f_uimm16 0x%x", 'x', f_uimm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -755,10 +770,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_OR3_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_uimm16) = f_uimm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_or3", "sr 0x%x", 'x', f_r2, "ulo16 0x%x", 'x', f_uimm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_or3", "f_uimm16 0x%x", 'x', f_uimm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -781,9 +796,9 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_ADDI_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
FLD (f_simm8) = f_simm8;
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addi", "dr 0x%x", 'x', f_r1, "simm8 0x%x", 'x', f_simm8, (char *) 0));
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addi", "f_simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -832,10 +847,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_ADDV3_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addv3", "sr 0x%x", 'x', f_r2, "simm16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addv3", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -884,7 +899,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BC8_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp8) = f_disp8;
|
||||
FLD (i_disp8) = f_disp8;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bc8", "disp8 0x%x", 'x', f_disp8, (char *) 0));
|
||||
|
||||
|
@ -907,7 +922,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BC24_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp24) = f_disp24;
|
||||
FLD (i_disp24) = f_disp24;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bc24", "disp24 0x%x", 'x', f_disp24, (char *) 0));
|
||||
|
||||
|
@ -932,7 +947,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src1) = & CPU (h_gr)[f_r1];
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_disp16) = f_disp16;
|
||||
FLD (i_disp16) = f_disp16;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_beq", "src1 0x%x", 'x', f_r1, "src2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, (char *) 0));
|
||||
|
||||
|
@ -958,7 +973,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_disp16) = f_disp16;
|
||||
FLD (i_disp16) = f_disp16;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_beqz", "src2 0x%x", 'x', f_r2, "disp16 0x%x", 'x', f_disp16, (char *) 0));
|
||||
|
||||
|
@ -982,7 +997,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BL8_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp8) = f_disp8;
|
||||
FLD (i_disp8) = f_disp8;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bl8", "disp8 0x%x", 'x', f_disp8, (char *) 0));
|
||||
|
||||
|
@ -1006,7 +1021,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BL24_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp24) = f_disp24;
|
||||
FLD (i_disp24) = f_disp24;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bl24", "disp24 0x%x", 'x', f_disp24, (char *) 0));
|
||||
|
||||
|
@ -1030,7 +1045,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BRA8_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp8) = f_disp8;
|
||||
FLD (i_disp8) = f_disp8;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bra8", "disp8 0x%x", 'x', f_disp8, (char *) 0));
|
||||
|
||||
|
@ -1053,7 +1068,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_BRA24_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_disp24) = f_disp24;
|
||||
FLD (i_disp24) = f_disp24;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bra24", "disp24 0x%x", 'x', f_disp24, (char *) 0));
|
||||
|
||||
|
@ -1101,9 +1116,9 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_CMPI_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi", "src2 0x%x", 'x', f_r2, "simm16 0x%x", 'x', f_simm16, (char *) 0));
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi", "f_simm16 0x%x", 'x', f_simm16, "src2 0x%x", 'x', f_r2, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1225,10 +1240,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_LD_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_d", "sr 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_d", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1276,10 +1291,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_LDB_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldb_d", "sr 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldb_d", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1327,10 +1342,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_LDH_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldh_d", "sr 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldh_d", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1379,7 +1394,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_LD24_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_uimm24) = f_uimm24;
|
||||
FLD (i_uimm24) = f_uimm24;
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld24", "uimm24 0x%x", 'x', f_uimm24, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
|
@ -1405,7 +1420,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_simm8) = f_simm8;
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi8", "simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi8", "f_simm8 0x%x", 'x', f_simm8, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1429,7 +1444,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi16", "slo16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi16", "f_simm16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1576,7 +1591,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_r2) = f_r2;
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mvfc", "scr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mvfc", "f_r2 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1621,9 +1636,9 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_MVTC_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_r1) = f_r1;
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mvtc", "sr 0x%x", 'x', f_r2, "dcr 0x%x", 'x', f_r1, (char *) 0));
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mvtc", "f_r1 0x%x", 'x', f_r1, "sr 0x%x", 'x', f_r2, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1699,7 +1714,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_hi16) = f_hi16;
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_seth", "hi16 0x%x", 'x', f_hi16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_seth", "f_hi16 0x%x", 'x', f_hi16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1721,10 +1736,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_SLL3_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_sr) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_sll3", "sr 0x%x", 'x', f_r2, "simm16 0x%x", 'x', f_simm16, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_sll3", "f_simm16 0x%x", 'x', f_simm16, "sr 0x%x", 'x', f_r2, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1747,9 +1762,9 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_SLLI_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
FLD (f_uimm5) = f_uimm5;
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_slli", "dr 0x%x", 'x', f_r1, "uimm5 0x%x", 'x', f_uimm5, (char *) 0));
|
||||
FLD (i_dr) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_slli", "f_uimm5 0x%x", 'x', f_uimm5, "dr 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1797,10 +1812,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_ST_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_src1) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st_d", "src2 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st_d", "f_simm16 0x%x", 'x', f_simm16, "src2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1848,10 +1863,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_STB_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_src1) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stb_d", "src2 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stb_d", "f_simm16 0x%x", 'x', f_simm16, "src2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1899,10 +1914,10 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
EXTRACT_FMT_STH_D_CODE
|
||||
|
||||
/* Record the fields for the semantic handler. */
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (f_simm16) = f_simm16;
|
||||
FLD (i_src2) = & CPU (h_gr)[f_r2];
|
||||
FLD (i_src1) = & CPU (h_gr)[f_r1];
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_sth_d", "src2 0x%x", 'x', f_r2, "slo16 0x%x", 'x', f_simm16, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_sth_d", "f_simm16 0x%x", 'x', f_simm16, "src2 0x%x", 'x', f_r2, "src1 0x%x", 'x', f_r1, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1953,7 +1968,7 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
/* Record the fields for the semantic handler. */
|
||||
FLD (f_uimm4) = f_uimm4;
|
||||
SEM_BRANCH_INIT_EXTRACT (abuf);
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_trap", "uimm4 0x%x", 'x', f_uimm4, (char *) 0));
|
||||
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_trap", "f_uimm4 0x%x", 'x', f_uimm4, (char *) 0));
|
||||
|
||||
#if WITH_PROFILE_MODEL_P
|
||||
/* Record the fields for profiling. */
|
||||
|
@ -1990,12 +2005,11 @@ m32rbf_decode (SIM_CPU *current_cpu, PCADDR pc,
|
|||
BREAK (ex);
|
||||
}
|
||||
|
||||
CASE (ex, FMT_EMPTY) :
|
||||
BREAK (ex);
|
||||
|
||||
}
|
||||
ENDSWITCH (ex)
|
||||
|
||||
return idecode->idesc;
|
||||
}
|
||||
|
||||
return idecode->idesc;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue