aboutsummaryrefslogtreecommitdiffstats
path: root/target-mips/cpu.h
diff options
context:
space:
mode:
authorChris Dearman <chris@mips.com>2012-08-03 14:35:52 -0700
committerRaghu Gandham <raghu@mips.com>2012-08-13 17:12:26 -0700
commit55ff318b4e5382074e2049c996cb6df1041aff1b (patch)
tree2bf906056a890d5ec97faf2a1f53db1083a0be12 /target-mips/cpu.h
parent1f1e03b62e23620975b215f77f745744426764e9 (diff)
downloadexternal_qemu-55ff318b4e5382074e2049c996cb6df1041aff1b.zip
external_qemu-55ff318b4e5382074e2049c996cb6df1041aff1b.tar.gz
external_qemu-55ff318b4e5382074e2049c996cb6df1041aff1b.tar.bz2
[MIPS] Speed up software refill handler
Emulating each instruction of the software refill handler has a significant impact on the overall performance of QEMU because of the overhead of emulating the various CP0 instructions to accurately reflect the machine state. Running the software TLB handler takes the equivalent of 1000's of machine cycles. This patch implements a pseudo hardware TLB refill handler that significantly reduces the impact of refilling the TLB to bring it more inline with what would be observed on a real target. Signed-off-by: Steven Hill <sjhill@mips.com> Signed-off-by: Chris Dearman <chris@mips.com> Signed-off-by: Yajin <yajin@mips.com.cn>
Diffstat (limited to 'target-mips/cpu.h')
-rw-r--r--target-mips/cpu.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index 7c04fbe..46519e3 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -39,7 +39,6 @@ struct r4k_tlb_t {
typedef struct CPUMIPSTLBContext CPUMIPSTLBContext;
struct CPUMIPSTLBContext {
uint32_t nb_tlb;
- uint32_t tlb_in_use;
int (*map_address) (struct CPUMIPSState *env, target_phys_addr_t *physical, int *prot, target_ulong address, int rw, int access_type);
void (*helper_tlbwi) (void);
void (*helper_tlbwr) (void);
@@ -630,7 +629,6 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
int mmu_idx, int is_softmmu);
#define cpu_handle_mmu_fault cpu_mips_handle_mmu_fault
void do_interrupt (CPUState *env);
-void r4k_invalidate_tlb (CPUState *env, int idx, int use_extra);
target_phys_addr_t cpu_mips_translate_address (CPUState *env, target_ulong address,
int rw);