aboutsummaryrefslogtreecommitdiff
path: root/sim/frv/sem.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/sem.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/sem.c')
-rw-r--r--sim/frv/sem.c33
1 files changed, 3 insertions, 30 deletions
diff --git a/sim/frv/sem.c b/sim/frv/sem.c
index e76bea4..f6356c3 100644
--- a/sim/frv/sem.c
+++ b/sim/frv/sem.c
@@ -5317,35 +5317,6 @@ frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
#undef FLD
}
-/* nldqi: nldqi$pack @($GRi,$d12),$GRk */
-
-static SEM_PC
-SEM_FN_NAME (frvbf,nldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
-{
-#define FLD(f) abuf->fields.sfmt_stdi.f
- ARGBUF *abuf = SEM_ARGBUF (sem_arg);
- int UNUSED written = 0;
- IADDR UNUSED pc = abuf->addr;
- SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
-
-{
- SI tmp_address;
-{
- BI tmp_do_op;
- tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 6, 0);
-if (tmp_do_op) {
-{
- tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
-frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
-}
-}
-}
-}
-
- return vpc;
-#undef FLD
-}
-
/* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
static SEM_PC
@@ -27777,11 +27748,14 @@ SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
IADDR UNUSED pc = abuf->addr;
SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
+{
+frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
{
USI opval = GET_H_FR_INT (FLD (f_FRi));
sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
}
+}
return vpc;
#undef FLD
@@ -28009,7 +27983,6 @@ static const struct sem_fn_desc sem_fns[] = {
{ FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
{ FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
{ FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
- { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
{ FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
{ FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
{ FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },