aboutsummaryrefslogtreecommitdiff
path: root/target-cris/op_helper.c
diff options
context:
space:
mode:
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-22 20:51:28 +0000
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-22 20:51:28 +0000
commit28de16da38f20b3fe76fa80d10561c3a998342e2 (patch)
treecd05930d4e9a1e936e20ddf9c11a1d9d4f18c3b7 /target-cris/op_helper.c
parent4a6b819c09473acc362a9959603017a549d85ce3 (diff)
CRIS: Improve ASID related TLB flushes.
* Speedup and correct ASID (PID) related TLB flushes. * Use 64bit tcg load/stores to emulate movem. * Remove unused helpers and other minor cleanups. Signed-off-by: Edgar E. Iglesias <edgar@axis.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5302 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-cris/op_helper.c')
-rw-r--r--target-cris/op_helper.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c
index fcf80705e9..d9ddc3ad55 100644
--- a/target-cris/op_helper.c
+++ b/target-cris/op_helper.c
@@ -91,7 +91,9 @@ void helper_raise_exception(uint32_t index)
void helper_tlb_flush_pid(uint32_t pid)
{
#if !defined(CONFIG_USER_ONLY)
- cris_mmu_flush_pid(env, pid);
+ pid &= 0xff;
+ if (pid != (env->pregs[PR_PID] & 0xff))
+ cris_mmu_flush_pid(env, env->pregs[PR_PID]);
#endif
}
@@ -100,11 +102,6 @@ void helper_dump(uint32_t a0, uint32_t a1, uint32_t a2)
(fprintf(logfile, "%s: a0=%x a1=%x\n", __func__, a0, a1));
}
-void helper_dummy(void)
-{
-
-}
-
/* Used by the tlb decoder. */
#define EXTRACT_FIELD(src, start, end) \
(((src) >> start) & ((1 << (end - start + 1)) - 1))
@@ -239,15 +236,6 @@ void helper_rfn(void)
env->pregs[PR_CCS] |= M_FLAG;
}
-void helper_store(uint32_t a0)
-{
- if (env->pregs[PR_CCS] & P_FLAG )
- {
- cpu_abort(env, "cond_store_failed! pc=%x a0=%x\n",
- env->pc, a0);
- }
-}
-
void do_unassigned_access(target_phys_addr_t addr, int is_write, int is_exec,
int is_asi)
{