aboutsummaryrefslogtreecommitdiff
path: root/sim/m32r/model.c
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>1998-02-12 02:54:20 +0000
committerDoug Evans <dje@google.com>1998-02-12 02:54:20 +0000
commite0bd6e186c1523ae7c8e9719d4b3bf84c590d76b (patch)
tree3f35c61b7692b4e2e51fb9e8a5eeff1681bce3a6 /sim/m32r/model.c
parent42d56c40a2001a3b2fdcd8573d9c4326c49f8caf (diff)
downloadgdb-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.c84
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 */