aboutsummaryrefslogtreecommitdiff
path: root/sim/frv/decode.c
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2003-09-24 19:05:39 +0000
committerDave Brolley <brolley@redhat.com>2003-09-24 19:05:39 +0000
commit1c453cd621376a909aa0035c01f9c22d782be7fc (patch)
treea915b204d9f28fb5f7ad4d8621b8e00c2649764f /sim/frv/decode.c
parentd03124067c162553fb099983d2a6c9bf6e247284 (diff)
downloadgdb-1c453cd621376a909aa0035c01f9c22d782be7fc.zip
gdb-1c453cd621376a909aa0035c01f9c22d782be7fc.tar.gz
gdb-1c453cd621376a909aa0035c01f9c22d782be7fc.tar.bz2
2003-09-24 Dave Brolley <brolley@redhat.com>
* profile.h (update_FR_ptime): New prototype. (update_FRdouble_ptime): Ditto. (update_SPR_ptime): Ditto. (increase_ACC_busy): Ditto. (enforce_full_acc_latency): Ditto. (post_wait_for_SPR): Ditto. * profile.c (update_FR_ptime): Moved here from profile-fr500.c. (update_FRdouble_ptime): Ditto. (update_SPR_ptime): New function. (increase_ACC_busy): Ditto. (enforce_full_acc_latency): Ditto. (vliw_wait_for_fdiv_resource): Correct resource name. (vliw_wait_for_fsqrt_resource): Ditto. (post_wait_for_SPR): New function. * profile-fr500.c (frvbf_model_fr500_u_commit): New function. (frvbf_model_fr500_u_gr2fr): Pass out_FRk as output register to adjust_float_register_busy. (frvbf_model_fr500_u_gr_load): Record latency of SPR registers. (frvbf_model_fr500_u_fr_load): Wait for and record latency of SPR registers. (frvbf_model_fr500_u_float_arith): Ditto. (frvbf_model_fr500_u_float_dual_arith): Ditto. (frvbf_model_fr500_u_float_div): Ditto. (frvbf_model_fr500_u_float_sqrt): Ditto. (frvbf_model_fr500_u_float_convert): Ditto. (update_FR_ptime): Moved to profile.c (update_FRdouble_ptime): Moved to profile.c * profile-fr400.c (update_FR_ptime): Removed. Identical to functions for other machines. (update_FRdouble_ptime): Ditto. * arch.h,cpu.h,sem.c,decode.[ch],model.c,sem.c: Regenerated.
Diffstat (limited to 'sim/frv/decode.c')
-rw-r--r--sim/frv/decode.c37
1 files changed, 3 insertions, 34 deletions
diff --git a/sim/frv/decode.c b/sim/frv/decode.c
index e018efc..0fe1a17 100644
--- a/sim/frv/decode.c
+++ b/sim/frv/decode.c
@@ -208,7 +208,6 @@ static const struct insn_sem frvbf_insn_sem[] =
{ FRV_INSN_NLDDFI, FRVBF_INSN_NLDDFI, FRVBF_SFMT_NLDDFI },
{ FRV_INSN_LDQI, FRVBF_INSN_LDQI, FRVBF_SFMT_LDQI },
{ FRV_INSN_LDQFI, FRVBF_INSN_LDQFI, FRVBF_SFMT_LDQFI },
- { FRV_INSN_NLDQI, FRVBF_INSN_NLDQI, FRVBF_SFMT_NLDQI },
{ FRV_INSN_NLDQFI, FRVBF_INSN_NLDQFI, FRVBF_SFMT_NLDQFI },
{ FRV_INSN_STB, FRVBF_INSN_STB, FRVBF_SFMT_STB },
{ FRV_INSN_STH, FRVBF_INSN_STH, FRVBF_SFMT_STB },
@@ -1409,7 +1408,6 @@ frvbf_decode (SIM_CPU *current_cpu, IADDR pc,
case 67 : itype = FRVBF_INSN_NLDUHI; goto extract_sfmt_nldsbi;
case 68 : itype = FRVBF_INSN_NLDI; goto extract_sfmt_nldsbi;
case 69 : itype = FRVBF_INSN_NLDDI; goto extract_sfmt_nlddi;
- case 70 : itype = FRVBF_INSN_NLDQI; goto extract_sfmt_nldqi;
case 71 : itype = FRVBF_INSN_SCANI; goto extract_sfmt_addi;
case 72 : itype = FRVBF_INSN_NLDBFI; goto extract_sfmt_nldbfi;
case 73 : itype = FRVBF_INSN_NLDHFI; goto extract_sfmt_nldbfi;
@@ -4383,36 +4381,6 @@ frvbf_decode (SIM_CPU *current_cpu, IADDR pc,
return idesc;
}
- extract_sfmt_nldqi:
- {
- const IDESC *idesc = &frvbf_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_stdi.f
- UINT f_GRk;
- UINT f_GRi;
- INT f_d12;
-
- f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6);
- f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6);
- f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12);
-
- /* Record the fields for the semantic handler. */
- FLD (f_GRi) = f_GRi;
- FLD (f_d12) = f_d12;
- FLD (f_GRk) = f_GRk;
- TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nldqi", "f_GRi 0x%x", 'x', f_GRi, "f_d12 0x%x", 'x', f_d12, "f_GRk 0x%x", 'x', f_GRk, (char *) 0));
-
-#if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_GRi) = f_GRi;
- }
-#endif
-#undef FLD
- return idesc;
- }
-
extract_sfmt_nldqfi:
{
const IDESC *idesc = &frvbf_insn_data[itype];
@@ -10999,14 +10967,15 @@ frvbf_decode (SIM_CPU *current_cpu, IADDR pc,
f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6);
/* Record the fields for the semantic handler. */
- FLD (f_FRi) = f_FRi;
FLD (f_ACCGk) = f_ACCGk;
- TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mwtaccg", "f_FRi 0x%x", 'x', f_FRi, "f_ACCGk 0x%x", 'x', f_ACCGk, (char *) 0));
+ FLD (f_FRi) = f_FRi;
+ TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mwtaccg", "f_ACCGk 0x%x", 'x', f_ACCGk, "f_FRi 0x%x", 'x', f_FRi, (char *) 0));
#if WITH_PROFILE_MODEL_P
/* Record the fields for profiling. */
if (PROFILE_MODEL_P (current_cpu))
{
+ FLD (in_ACCGk) = f_ACCGk;
FLD (in_FRinti) = f_FRi;
FLD (out_ACCGk) = f_ACCGk;
}