Changeset 14574 in vbox
- Timestamp:
- Nov 25, 2008 2:00:38 PM (16 years ago)
- Location:
- trunk/src/recompiler_new
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler_new/Makefile.kmk
r14537 r14574 29 29 REM_MOD += VBoxREM2 30 30 SYSMODS += VBoxREM2 31 32 31 else 33 32 REM_MOD += VBoxREM … … 69 68 # 70 69 $(REM_MOD)_DEFS = IN_REM_R3 REM_INCLUDE_CPU_H 71 $(REM_MOD)_DEFS += REM_PHYS_ADDR_IN_TLB70 #$(REM_MOD)_DEFS += REM_PHYS_ADDR_IN_TLB 72 71 #$(REM_MOD)_DEFS += DEBUG_ALL_LOGGING DEBUG_DISAS DEBUG_PCALL DEBUG_EXEC DEBUG_FLUSH DEBUG_IOPORT DEBUG_SIGNAL DEBUG_TLB_CHECK DEBUG_TB_INVALIDATE DEBUG_TLB # Enables huge amounts of debug logging. 73 72 $(REM_MOD)_DEFS.linux = _GNU_SOURCE … … 129 128 $(REM_MOD)_TEMPLATE = VBOXNOCRTGAS 130 129 $(REM_MOD)_DEFS += LOG_USE_C99 $(ARCH_BITS_DEFS) 131 $(REM_MOD)_CFLAGS.amd64 = -O2132 $(REM_MOD)_CFLAGS.debug = -O0133 130 134 131 # This doesn't fit in IPRT because it requires GAS and is LGPL. … … 144 141 endif 145 142 146 # gcc targets147 if1of ($(KBUILD_TARGET), linux darwin solaris)148 $(REM_MOD)_CFLAGS.debug = -O0149 $(REM_MOD)_CFLAGS.release += -fomit-frame-pointer -fno-gcse150 endif151 143 $(REM_MOD)_CFLAGS.profile = $($(REM_MOD)_CFLAGS.release) 152 144 $(REM_MOD)_CFLAGS.kprofile = $($(REM_MOD)_CFLAGS.release) … … 209 201 $< 210 202 211 212 if1of ($(KBUILD_TARGET), linux darwin solaris)213 # Extra flags for these source modules.214 target-i386/op-helper.c_CFLAGS.x86 = -O2 -fno-strict-aliasing -fno-gcse215 cpu-exec.c_CFLAGS.x86 = -O2 -fno-strict-aliasing -fno-gcse216 cpu-exec.c_CFLAGS.solaris.amd64 = -O2 -fno-strict-aliasing217 endif218 219 203 # 220 204 # The math testcase as a standalone program for testing and debugging purposes. -
trunk/src/recompiler_new/target-i386/translate.c
r14425 r14574 867 867 } 868 868 869 #ifndef VBOX870 static inline void gen_jmp_im(target_ulong pc)871 #else /* VBOX */872 DECLINLINE(void) gen_jmp_im(target_ulong pc)873 #endif /* VBOX */874 {875 tcg_gen_movi_tl(cpu_tmp0, pc);876 tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUState, eip));877 }878 879 869 #ifdef VBOX 880 870 static void gen_check_external_event() … … 903 893 } 904 894 905 #ifndef VBOX 906 static inline void gen_update_eip(target_ulong pc) 895 static void gen_check_external_event2() 896 { 897 tcg_gen_helper_0_0(helper_check_external_event); 898 } 899 900 #endif 901 902 #ifndef VBOX 903 static inline void gen_jmp_im(target_ulong pc) 907 904 #else /* VBOX */ 905 DECLINLINE(void) gen_jmp_im(target_ulong pc) 906 #endif /* VBOX */ 907 { 908 tcg_gen_movi_tl(cpu_tmp0, pc); 909 tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUState, eip)); 910 } 911 912 #ifdef VBOX 908 913 DECLINLINE(void) gen_update_eip(target_ulong pc) 909 #endif /* VBOX */910 914 { 911 915 gen_jmp_im(pc); 912 #if defined (VBOX) && defined(VBOX_DUMP_STATE)916 #ifdef VBOX_DUMP_STATE 913 917 tcg_gen_helper_0_0(helper_dump_state); 914 918 #endif 915 919 } 920 916 921 #endif 917 922 … … 1095 1100 tcg_const_i32(next_eip - cur_eip)); 1096 1101 } 1102 #ifdef VBOX 1103 gen_check_external_event2(s); 1104 #endif /* VBOX */ 1097 1105 } 1098 1106 … … 2679 2687 int l1, l2, cc_op; 2680 2688 2689 #ifdef VBOX 2690 gen_check_external_event(s); 2691 #endif /* VBOX */ 2681 2692 cc_op = s->cc_op; 2682 2693 if (s->cc_op != CC_OP_DYNAMIC) { … … 2685 2696 } 2686 2697 if (s->jmp_opt) { 2687 #ifdef VBOX2688 gen_check_external_event(s);2689 #endif /* VBOX */2690 2698 l1 = gen_new_label(); 2691 2699 gen_jcc1(s, cc_op, b, l1); … … 3128 3136 { 3129 3137 if (s->jmp_opt) { 3130 #ifdef VBOX3131 gen_check_external_event(s);3132 #endif /* VBOX */3133 3138 if (s->cc_op != CC_OP_DYNAMIC) { 3134 3139 gen_op_set_cc_op(s->cc_op); … … 3145 3150 static void gen_jmp(DisasContext *s, target_ulong eip) 3146 3151 { 3152 #ifdef VBOX 3153 gen_check_external_event(s); 3154 #endif /* VBOX */ 3147 3155 gen_jmp_tb(s, eip, 0); 3148 3156 } -
trunk/src/recompiler_new/tcg/tcg.h
r14542 r14574 397 397 #define tcg_abort() \ 398 398 do {\ 399 remAbort(-1, "TCG fatal error: "__FILE__":"VBOX_STR(__LINE__)); \399 remAbort(-1, "TCG fatal error: "__FILE__":"VBOX_STR(__LINE__)); \ 400 400 } while (0) 401 401 extern void qemu_qsort(void* base, size_t nmemb, size_t size,
Note:
See TracChangeset
for help on using the changeset viewer.