diff options
-rw-r--r-- | exec-all.h | 6 | ||||
-rw-r--r-- | translate-all.c | 3 | ||||
-rw-r--r-- | vl.c | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/exec-all.h b/exec-all.h index d78224a070..fa407e94a6 100644 --- a/exec-all.h +++ b/exec-all.h @@ -541,7 +541,13 @@ static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr) int is_user, index; index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1); +#if defined(TARGET_I386) is_user = ((env->hflags & HF_CPL_MASK) == 3); +#elif defined (TARGET_PPC) + is_user = msr_pr; +#else +#error "Unimplemented !" +#endif if (__builtin_expect(env->tlb_read[is_user][index].address != (addr & TARGET_PAGE_MASK), 0)) { ldub_code((void *)addr); diff --git a/translate-all.c b/translate-all.c index c8f345735e..108a21f260 100644 --- a/translate-all.c +++ b/translate-all.c @@ -119,7 +119,7 @@ int cpu_gen_code(CPUState *env, TranslationBlock *tb, gen_opc_buf, gen_opparam_buf); *gen_code_size_ptr = gen_code_size; #ifdef DEBUG_DISAS - if (loglevel) { + if (loglevel && 0) { fprintf(logfile, "OUT: [size=%d]\n", *gen_code_size_ptr); disas(logfile, gen_code_buf, *gen_code_size_ptr, 1, 0); fprintf(logfile, "\n"); @@ -203,7 +203,6 @@ int cpu_restore_state(TranslationBlock *tb, case INDEX_op_ ## op ## _raw #else #define CASE3(op)\ - case INDEX_op_ ## op ## _raw:\ case INDEX_op_ ## op ## _user:\ case INDEX_op_ ## op ## _kernel #endif @@ -85,7 +85,7 @@ #define KERNEL_LOAD_ADDR 0x00100000 #elif defined (TARGET_PPC) //#define USE_OPEN_FIRMWARE -#if defined (USE_OPEN_FIRMWARE) +#if !defined (USE_OPEN_FIRMWARE) #define KERNEL_LOAD_ADDR 0x01000000 #define KERNEL_STACK_ADDR 0x01200000 #else |