VirtualBox

Changeset 13968 in vbox


Ignore:
Timestamp:
Nov 7, 2008 3:48:52 PM (16 years ago)
Author:
vboxsync
Message:
  • fixed bug in implementation of ARPL with memory operand, perventing OS2 from workings
  • imporved QEMU logging
Location:
trunk/src/recompiler_new
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • 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;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette