VirtualBox

Changeset 13504

Show
Ignore:
Timestamp:
10/22/08 18:59:34 (3 months ago)
Author:
vboxsync
Message:

amd64 TCG stated breathing (not much code executed yet)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/recompiler_new/VBoxRecompiler.c

    r13456 r13504  
    2828#include "osdep.h" 
    2929#include "exec-all.h" 
     30 
     31void cpu_exec_init_all(unsigned long tb_size); 
    3032 
    3133#include <VBox/rem.h> 
     
    229231 
    230232 
     233/* Prologue code, must be in lower 4G to simplify jumps to/from generated code */ 
     234uint8_t* code_gen_prologue; 
     235 
    231236/** 
    232237 * Initializes the REM. 
     
    270275    /* ignore all notifications */ 
    271276    pVM->rem.s.fIgnoreAll = true; 
     277 
     278    code_gen_prologue = RTMemExecAlloc(_1K); 
    272279 
    273280    cpu_exec_init_all(0); 
  • trunk/src/recompiler_new/dyngen-exec.h

    r13456 r13504  
    118118#endif 
    119119#ifdef __x86_64__ 
    120 #if 0 && defined(VBOX)  
     120#if defined(VBOX)  
    121121/* gcc 3.4.3 on 64-bit Solaris screws up when using rbp, it  
    122122   seems so at least. (Setting AREG4 to "r15" causes compiler  
    123123   error btw, so don't try it.)  */ 
    124 # define AREG0 "rbx"  
    125 # define AREG1 "r12" 
    126 # define AREG2 "r13" 
    127 # define AREG3 "r14" 
    128 #else 
    129 #define AREG0 "rbp" 
    130 #define AREG1 "rbx" 
     124/* Must be in sync with TCG register notion, see tcg-target.h */ 
     125#define AREG0 "r14" 
     126#define AREG1 "r15" 
     127#define AREG2 "r12" 
     128#define AREG3 "r13" 
     129#else 
     130#define AREG0 "r14" 
     131#define AREG1 "r15" 
    131132#define AREG2 "r12" 
    132133#define AREG3 "r13" 
  • trunk/src/recompiler_new/exec.c

    r13440 r13504  
    116116 
    117117#else /* VBOX */ 
    118 ALIGNED_MEMBER(uint8_t, code_gen_prologue[1024], 32)
     118extern uint8_t* code_gen_prologue
    119119#endif /* VBOX */ 
    120120 
     
    571571    map_exec(code_gen_buffer, code_gen_buffer_size); 
    572572#endif 
    573 #endif // VBOX 
     573    map_exec(code_gen_prologue, sizeof(code_gen_prologue)); 
     574#endif /* !VBOX */ 
    574575#endif /* !USE_STATIC_CODE_GEN_BUFFER */ 
     576#ifndef VBOX 
    575577    map_exec(code_gen_prologue, sizeof(code_gen_prologue)); 
     578#else 
     579    map_exec(code_gen_prologue, _1K); 
     580#endif 
     581 
    576582    code_gen_buffer_max_size = code_gen_buffer_size -  
    577583        code_gen_max_block_size(); 
  • trunk/src/recompiler_new/target-i386/exec.h

    r13480 r13504  
    4747 
    4848#include "qemu-log.h" 
    49  
    50 #ifdef VBOX 
    51 void cpu_exec_init_all(unsigned long tb_size); 
    52 #endif 
    5349 
    5450#ifndef reg_EAX 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy