From 7a86d29a7e16e738d749cfece8857d8902790875 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 13 Apr 2011 13:08:44 +0200 Subject: tcg: extend max tcg opcodes when using 64-on-32bit When running a 64 bit guest on a 32 bit host, we tend to use more TCG ops than on a 64 bit host. Reflect that in the reserved opcode amount constant. Signed-off-by: Alexander Graf --- exec-all.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'exec-all.h') diff --git a/exec-all.h b/exec-all.h index 7c2d29ff98..14b0895645 100644 --- a/exec-all.h +++ b/exec-all.h @@ -43,7 +43,11 @@ typedef ram_addr_t tb_page_addr_t; typedef struct TranslationBlock TranslationBlock; /* XXX: make safe guess about sizes */ +#if (HOST_LONG_BITS == 32) && (TARGET_LONG_BITS == 64) +#define MAX_OP_PER_INSTR 128 +#else #define MAX_OP_PER_INSTR 96 +#endif #if HOST_LONG_BITS == 32 #define MAX_OPC_PARAM_PER_ARG 2 -- cgit v1.2.3 From dcfd14b3741983c466ad92fa2ae91eeafce3e5d5 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 14 May 2011 11:55:30 +0000 Subject: Delete unused tb_invalidate_page_range tb_invalidate_page_range() was intended to be used to invalidate an area of a TB which the guest explicitly flushes from i-cache. However, QEMU detects writes to code areas where TBs have been generated, so his has never been useful. Delete the function, adjust callers. Reviewed-by: Richard Henderson Signed-off-by: Blue Swirl --- exec-all.h | 1 - 1 file changed, 1 deletion(-) (limited to 'exec-all.h') diff --git a/exec-all.h b/exec-all.h index 7c2d29ff98..cf3a704e6d 100644 --- a/exec-all.h +++ b/exec-all.h @@ -95,7 +95,6 @@ void QEMU_NORETURN cpu_loop_exit(void); int page_unprotect(target_ulong address, unsigned long pc, void *puc); void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, int is_cpu_write_access); -void tb_invalidate_page_range(target_ulong start, target_ulong end); void tlb_flush_page(CPUState *env, target_ulong addr); void tlb_flush(CPUState *env, int flush_global); #if !defined(CONFIG_USER_ONLY) -- cgit v1.2.3 From 5b4504079a3bc37f85cce44e77c347e9ec742307 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 18 Apr 2011 16:13:12 -0700 Subject: target-alpha: Trap for unassigned and unaligned addresses. Signed-off-by: Richard Henderson --- exec-all.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'exec-all.h') diff --git a/exec-all.h b/exec-all.h index 026864e908..2a13a9535e 100644 --- a/exec-all.h +++ b/exec-all.h @@ -325,7 +325,7 @@ static inline tb_page_addr_t get_page_addr_code(CPUState *env1, target_ulong add } pd = env1->tlb_table[mmu_idx][page_index].addr_code & ~TARGET_PAGE_MASK; if (pd > IO_MEM_ROM && !(pd & IO_MEM_ROMD)) { -#if defined(TARGET_SPARC) || defined(TARGET_MIPS) +#if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_SPARC) do_unassigned_access(addr, 0, 1, 0, 4); #else cpu_abort(env1, "Trying to execute code outside RAM or ROM at 0x" TARGET_FMT_lx "\n", addr); -- cgit v1.2.3