VirtualBox

Changeset 13968

Show
Ignore:
Timestamp:
11/07/08 16:48:52 (2 months ago)
Author:
vboxsync
Message:

- fixed bug in implementation of ARPL with memory operand, perventing OS2

from workings

- imporved QEMU logging

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/recompiler_new/Sun/config.h

    r13881 r13968  
    3434/* Uncomment to see emulated CPU state changes */ 
    3535/* #define VBOX_DUMP_STATE */ 
    36  
     36/* Uncomment to see QEMU logging, goes to /tmp/vbox-qemu.log */ 
     37/* #define DEBUG_ALL_LOGGING */ 
     38/* Uncomment to see generated code */ 
     39/* #define DEBUG_DISAS */ 
  • trunk/src/recompiler_new/VBoxRecompiler.c

    r13882 r13968  
    387387#ifdef DEBUG_ALL_LOGGING 
    388388    loglevel = ~0; 
     389    logfile = fopen("/tmp/vbox-qemu.log", "w"); 
    389390#endif 
    390391 
  • trunk/src/recompiler_new/osdep.h

    r13870 r13968  
    88#include <iprt/stdarg.h> 
    99#include <iprt/string.h> 
     10 
     11#include "config.h" 
    1012 
    1113#ifndef _MSC_VER 
     
    3335#define fflush(file)            RTLogFlush(NULL) 
    3436#define printf(...)             LogIt(LOG_INSTANCE, 0, LOG_GROUP_REM_PRINTF, (__VA_ARGS__)) 
    35 #define fprintf(logfile, ...)   LogIt(LOG_INSTANCE, 0, LOG_GROUP_REM_PRINTF, (__VA_ARGS__)) 
     37/* If DEBUG_ALL_LOGGING - goes to QEMU log file */ 
     38#ifndef DEBUG_ALL_LOGGING 
     39 #define fprintf(logfile, ...)   LogIt(LOG_INSTANCE, 0, LOG_GROUP_REM_PRINTF, (__VA_ARGS__)) 
     40#endif 
    3641 
    3742#define assert(cond) Assert(cond) 
  • trunk/src/recompiler_new/target-i386/translate.c

    r13881 r13968  
    828828 
    829829    skip_label = gen_new_label(); 
    830     /* t0 = tcg_temp_local_new(TCG_TYPE_TL); */ 
    831     t0 = cpu_tmp0; 
     830    t0 = tcg_temp_local_new(TCG_TYPE_TL); 
     831    /* t0 = cpu_tmp0; */ 
    832832 
    833833    tcg_gen_ld32u_tl(t0, cpu_env, offsetof(CPUState, interrupt_request)); 
     
    840840    /** @todo: predict branch as taken */ 
    841841    tcg_gen_brcondi_i32(TCG_COND_EQ, t0, 0, skip_label); 
    842     /* tcg_temp_free(t0); */ 
     842    tcg_temp_free(t0); 
    843843 
    844844    tcg_gen_helper_0_0(helper_check_external_event); 
     
    78497849        { 
    78507850            int label1; 
    7851             TCGv t0, t1, t2
     7851            TCGv t0, t1, t2, a0
    78527852 
    78537853            if (!s->pe || s->vm86) 
     
    78567856            t1 = tcg_temp_local_new(TCG_TYPE_TL); 
    78577857            t2 = tcg_temp_local_new(TCG_TYPE_TL); 
     7858#ifdef VBOX 
     7859            a0 = tcg_temp_local_new(TCG_TYPE_TL); 
     7860#endif 
    78587861            ot = OT_WORD; 
    78597862            modrm = ldub_code(s->pc++); 
     
    78637866            if (mod != 3) { 
    78647867                gen_lea_modrm(s, modrm, &reg_addr, &offset_addr); 
     7868#ifdef VBOX 
     7869                tcg_gen_mov_tl(a0, cpu_A0); 
     7870#endif 
    78657871                gen_op_ld_v(ot + s->mem_index, t0, cpu_A0); 
    78667872            } else { 
     
    78787884            gen_set_label(label1); 
    78797885            if (mod != 3) { 
     7886#ifdef VBOX 
     7887                /* cpu_A0 doesn't survive branch */ 
     7888                gen_op_st_v(ot + s->mem_index, t0, a0); 
     7889#else 
    78807890                gen_op_st_v(ot + s->mem_index, t0, cpu_A0); 
     7891#endif 
    78817892            } else { 
    78827893                gen_op_mov_reg_v(ot, rm, t0); 
     
    78917902            tcg_temp_free(t1); 
    78927903            tcg_temp_free(t2); 
     7904#ifdef VBOX 
     7905            tcg_temp_free(a0); 
     7906#endif 
    78937907        } 
    78947908        break; 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy