diff options
author | Doug Evans <dje@google.com> | 1998-02-12 02:54:20 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1998-02-12 02:54:20 +0000 |
commit | e0bd6e186c1523ae7c8e9719d4b3bf84c590d76b (patch) | |
tree | 3f35c61b7692b4e2e51fb9e8a5eeff1681bce3a6 /sim/m32r/model.c | |
parent | 42d56c40a2001a3b2fdcd8573d9c4326c49f8caf (diff) | |
download | gdb-e0bd6e186c1523ae7c8e9719d4b3bf84c590d76b.zip gdb-e0bd6e186c1523ae7c8e9719d4b3bf84c590d76b.tar.gz gdb-e0bd6e186c1523ae7c8e9719d4b3bf84c590d76b.tar.bz2 |
* decode.c, decode.h, sem.c, sem-switch.c, model.c: Regenerate.
* cpux.c, decodex.c, decodex.h, readx.c, semx.c, modelx.c: Regenerate.
Diffstat (limited to 'sim/m32r/model.c')
-rw-r--r-- | sim/m32r/model.c | 84 |
1 files changed, 63 insertions, 21 deletions
diff --git a/sim/m32r/model.c b/sim/m32r/model.c index 7ab18a4..8efca7e 100644 --- a/sim/m32r/model.c +++ b/sim/m32r/model.c @@ -1,5 +1,7 @@ /* Simulator model support for m32r. +This file is machine generated with CGEN. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU Simulators. @@ -35,7 +37,7 @@ with this program; if not, write to the Free Software Foundation, Inc., /* Track function unit usage for an instruction. */ void -model_profile_insn (SIM_CPU *current_cpu, ARGBUF *abuf) +m32r_model_profile_insn (SIM_CPU *current_cpu, ARGBUF *abuf) { const MODEL *model = CPU_MODEL (current_cpu); const INSN_TIMING *timing = MODEL_TIMING (model); @@ -72,7 +74,7 @@ model_profile_insn (SIM_CPU *current_cpu, ARGBUF *abuf) /* Track function unit usage for an instruction. */ void -model_profile_cti_insn (SIM_CPU *current_cpu, ARGBUF *abuf, int taken_p) +m32r_model_profile_cti_insn (SIM_CPU *current_cpu, ARGBUF *abuf, int taken_p) { const MODEL *model = CPU_MODEL (current_cpu); const INSN_TIMING *timing = MODEL_TIMING (model); @@ -120,15 +122,21 @@ static const INSN_TIMING m32r_d_timing[] = { { { (UQI) UNIT_NONE } }, /* illegal insn */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* add */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* add3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* add3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* and */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* and3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* and3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* or */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* or3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* or3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* xor */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* xor3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* xor3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addi */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addi.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addv */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addv3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addv3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* addx */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* bc8 */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* bc8.s */ @@ -156,38 +164,44 @@ static const INSN_TIMING m32r_d_timing[] = { { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* bra24.l */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmp */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmpi */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmpi.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmpu */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmpui */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* cmpui.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 37, 37 } }, /* div */ - { { (UQI) UNIT_M32R_D_U_EXEC, 37, 37 } }, /* divu */ + { { (UQI) UNIT_M32R_D_U_EXEC, 27, 27 } }, /* divu */ { { (UQI) UNIT_M32R_D_U_EXEC, 37, 37 } }, /* rem */ - { { (UQI) UNIT_M32R_D_U_EXEC, 37, 37 } }, /* remu */ + { { (UQI) UNIT_M32R_D_U_EXEC, 27, 27 } }, /* remu */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* divh */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* jl */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* jmp */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ld */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ld-2 */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ld-d */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ld-d2 */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ld-d */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ld-d2 */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldb */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldb-2 */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldb-d */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldb-d2 */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldb-d */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldb-d2 */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldh */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldh-2 */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldh-d */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldh-d2 */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldh-d */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldh-d2 */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldub */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldub-2 */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldub-d */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ldub-d2 */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldub-d */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* ldub-d2 */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* lduh */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* lduh-2 */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* lduh-d */ - { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* lduh-d2 */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* lduh-d */ + { { (UQI) UNIT_M32R_D_U_LOAD, 2, 2 } }, /* lduh-d2 */ { { (UQI) UNIT_M32R_D_U_LOAD, 1, 1 } }, /* ld-plus */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ld24 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ld24.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi8 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi8.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi8a */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi8a.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi16 */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* ldi16a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* lock */ @@ -195,7 +209,7 @@ static const INSN_TIMING m32r_d_timing[] = { { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* maclo */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* macwhi */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* macwlo */ - { { (UQI) UNIT_M32R_D_U_EXEC, 3, 3 } }, /* mul */ + { { (UQI) UNIT_M32R_D_U_EXEC, 4, 4 } }, /* mul */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* mulhi */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* mullo */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* mulwhi */ @@ -215,33 +229,41 @@ static const INSN_TIMING m32r_d_timing[] = { { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* rach */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* rte */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* seth */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* seth.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sll */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sll3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sll3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* slli */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* slli.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sra */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sra3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sra3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srai */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srai.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srl */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srl3 */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srl3.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srli */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* srli.a */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st-2 */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st-d */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st-d2 */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* st-d */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* st-d2 */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* stb */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* stb-2 */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* stb-d */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* stb-d2 */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* stb-d */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* stb-d2 */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* sth */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* sth-2 */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* sth-d */ - { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* sth-d2 */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* sth-d */ + { { (UQI) UNIT_M32R_D_U_STORE, 2, 2 } }, /* sth-d2 */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st-plus */ { { (UQI) UNIT_M32R_D_U_STORE, 1, 1 } }, /* st-minus */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* sub */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* subv */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* subx */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* trap */ + { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* trap.a */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* unlock */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* push */ { { (UQI) UNIT_M32R_D_U_EXEC, 1, 1 } }, /* pop */ @@ -253,15 +275,21 @@ static const INSN_TIMING test_timing[] = { { { (UQI) UNIT_NONE } }, /* illegal insn */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* add */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* add3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* add3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* and */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* and3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* and3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* or */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* or3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* or3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* xor */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* xor3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* xor3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addi */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addi.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addv */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addv3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addv3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* addx */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* bc8 */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* bc8.s */ @@ -289,12 +317,15 @@ static const INSN_TIMING test_timing[] = { { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* bra24.l */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmp */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmpi */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmpi.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmpu */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmpui */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* cmpui.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* div */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* divu */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* rem */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* remu */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* divh */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* jl */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* jmp */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ld */ @@ -319,8 +350,11 @@ static const INSN_TIMING test_timing[] = { { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* lduh-d2 */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ld-plus */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ld24 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ld24.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi8 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi8.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi8a */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi8a.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi16 */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* ldi16a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* lock */ @@ -348,15 +382,22 @@ static const INSN_TIMING test_timing[] = { { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* rach */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* rte */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* seth */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* seth.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sll */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sll3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sll3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* slli */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* slli.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sra */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sra3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* sra3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srai */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srai.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srl */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srl3 */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srl3.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srli */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* srli.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* st */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* st-2 */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* st-d */ @@ -375,6 +416,7 @@ static const INSN_TIMING test_timing[] = { { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* subv */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* subx */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* trap */ + { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* trap.a */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* unlock */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* push */ { { (UQI) UNIT_TEST_U_EXEC, 1, 1 } }, /* pop */ |