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
This commit is contained in:
edgar_igl 2008-09-22 20:51:28 +00:00
parent 4a6b819c09
commit 28de16da38
4 changed files with 36 additions and 37 deletions

View file

@ -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)
{