- Timestamp:
- Dec 5, 2008 12:28:44 PM (16 years ago)
- Location:
- trunk/src/recompiler_new
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler_new/Makefile.kmk
r15028 r15034 56 56 else 57 57 58 TOOL_GCC3V3 = description 59 TOOL_GCC3V3_EXTENDS = GCC3 60 TOOL_GCC3V3_CC = $(firstword $(which gcc-4.1.2 gcc-3.4 gcc-3.4.6 gcc-3.3 gcc-3.3.6 gcc-3.2 gcc-4.1 gcc-4.2)) 61 TOOL_GCC3V3_COMPILE_C_DEPEND = 62 TOOL_GCC3V3_COMPILE_C_DEPORD = 63 TOOL_GCC3V3_COMPILE_C_OUTPUT = 64 define TOOL_GCC3V3_COMPILE_C_CMDS 58 # Just keep it here, if need to experiment with older compilers in the future 59 TOOL_GCC3V3 = description 60 TOOL_GCC3V3_EXTENDS = GCC3 61 TOOL_GCC3V3_CC = $(firstword $(which gcc-4.2 gcc-4.1 gcc-3.4 gcc-3.4.6 gcc-3.3 gcc-3.3.6 gcc-3.2)) 62 TOOL_GCC3V3_COMPILE_C_DEPEND = 63 TOOL_GCC3V3_COMPILE_C_DEPORD = 64 TOOL_GCC3V3_COMPILE_C_OUTPUT = 65 define TOOL_GCC3V3_COMPILE_C_CMDS 65 66 $(QUIET)$(TOOL_GCC3V3_CC) -c\ 66 67 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ … … 68 69 -o $(obj)\ 69 70 $(abspath $(source)) 70 endef 71 72 # Unfortunately little pinguins tend to have default compilers no suitable 73 # for real compilation, so search better alternatives 74 if1of ($(KBUILD_TARGET),) 75 $(REM_MOD)_TOOL = GCC3V3 76 $(REM_MOD)_TEMPLATE = DUMMY 77 $(REM_MOD)_CFLAGS = -fPIC \ 78 -Wall -fno-strict-aliasing -Wno-unused \ 79 -Wno-long-long -Wno-sign-compare 80 $(REM_MOD)_CFLAGS.x86 = -m32 81 $(REM_MOD)_CFLAGS.amd64 = -m64 82 $(REM_MOD)_CFLAGS.debug = -g -O0 83 $(REM_MOD)_CFLAGS.release += -O2 84 else 85 $(REM_MOD)_TEMPLATE = VBOXR3NP 86 endif 71 endef 72 #target-i386/op_helper.c_TOOL = GCC3V3 73 74 $(REM_MOD)_TEMPLATE = VBOXR3NP 87 75 88 76 IMPORT_LIBS += VBoxREM … … 132 120 target-i386/helper.c \ 133 121 target-i386/translate.c 134 135 #target-i386/helper.c_TOOL = GCC3V3136 122 137 123 ifeq ($(KBUILD_TARGET_ARCH),amd64) -
trunk/src/recompiler_new/softmmu_defs.h
r14542 r15034 2 2 #define SOFTMMU_DEFS_H 3 3 4 #ifndef VBOX 4 5 uint8_t REGPARM __ldb_mmu(target_ulong addr, int mmu_idx); 5 6 void REGPARM __stb_mmu(target_ulong addr, uint8_t val, int mmu_idx); … … 19 20 uint64_t REGPARM __ldq_cmmu(target_ulong addr, int mmu_idx); 20 21 void REGPARM __stq_cmmu(target_ulong addr, uint64_t val, int mmu_idx); 22 #else 23 RTCCUINTREG REGPARM __ldb_mmu(target_ulong addr, int mmu_idx); 24 void REGPARM __stb_mmu(target_ulong addr, uint8_t val, int mmu_idx); 25 RTCCUINTREG REGPARM __ldw_mmu(target_ulong addr, int mmu_idx); 26 void REGPARM __stw_mmu(target_ulong addr, uint16_t val, int mmu_idx); 27 RTCCUINTREG REGPARM __ldl_mmu(target_ulong addr, int mmu_idx); 28 void REGPARM __stl_mmu(target_ulong addr, uint32_t val, int mmu_idx); 29 uint64_t REGPARM __ldq_mmu(target_ulong addr, int mmu_idx); 30 void REGPARM __stq_mmu(target_ulong addr, uint64_t val, int mmu_idx); 31 32 RTCCUINTREG REGPARM __ldb_cmmu(target_ulong addr, int mmu_idx); 33 void REGPARM __stb_cmmu(target_ulong addr, uint8_t val, int mmu_idx); 34 RTCCUINTREG REGPARM __ldw_cmmu(target_ulong addr, int mmu_idx); 35 void REGPARM __stw_cmmu(target_ulong addr, uint16_t val, int mmu_idx); 36 RTCCUINTREG REGPARM __ldl_cmmu(target_ulong addr, int mmu_idx); 37 void REGPARM __stl_cmmu(target_ulong addr, uint32_t val, int mmu_idx); 38 uint64_t REGPARM __ldq_cmmu(target_ulong addr, int mmu_idx); 39 void REGPARM __stq_cmmu(target_ulong addr, uint64_t val, int mmu_idx); 40 #endif 21 41 22 42 #endif -
trunk/src/recompiler_new/softmmu_template.h
r13731 r15034 33 33 #define USUFFIX q 34 34 #define DATA_TYPE uint64_t 35 #define DATA_TYPE_PROMOUTED uint64_t 35 36 #elif DATA_SIZE == 4 36 37 #define SUFFIX l 37 38 #define USUFFIX l 38 39 #define DATA_TYPE uint32_t 40 #ifdef VBOX 41 #define DATA_TYPE_PROMOUTED RTCCUINTREG 42 #endif 39 43 #elif DATA_SIZE == 2 40 44 #define SUFFIX w 41 45 #define USUFFIX uw 42 46 #define DATA_TYPE uint16_t 47 #ifdef VBOX 48 #define DATA_TYPE_PROMOUTED RTCCUINTREG 49 #endif 43 50 #elif DATA_SIZE == 1 44 51 #define SUFFIX b 45 52 #define USUFFIX ub 46 53 #define DATA_TYPE uint8_t 54 #ifdef VBOX 55 #define DATA_TYPE_PROMOUTED RTCCUINTREG 56 #endif 47 57 #else 48 58 #error unsupported data size … … 98 108 99 109 /* handle all cases except unaligned access which span two pages */ 110 #ifndef VBOX 100 111 DATA_TYPE REGPARM glue(glue(__ld, SUFFIX), MMUSUFFIX)(target_ulong addr, 101 112 int mmu_idx) 113 #else 114 /* Load helpers invoked from generated code, and TCG makes an assumption 115 that valid value takes the whole register, why gcc after 4.3 may 116 use only lower part of register for smaller types. So force promoution. */ 117 DATA_TYPE_PROMOUTED REGPARM 118 glue(glue(__ld, SUFFIX), MMUSUFFIX)(target_ulong addr, 119 int mmu_idx) 120 #endif 102 121 { 103 122 DATA_TYPE res; … … 347 366 #endif /* !defined(SOFTMMU_CODE_ACCESS) */ 348 367 368 #ifdef VBOX 369 #undef DATA_TYPE_PROMOUTED 370 #endif 349 371 #undef READ_ACCESS_TYPE 350 372 #undef SHIFT -
trunk/src/recompiler_new/target-i386/helper.h
r14542 r15034 134 134 DEF_HELPER(void, helper_fildl_ST0, (int32_t val)) 135 135 DEF_HELPER(void, helper_fildll_ST0, (int64_t val)) 136 #ifndef VBOX 136 137 DEF_HELPER(uint32_t, helper_fsts_ST0, (void)) 137 138 DEF_HELPER(uint64_t, helper_fstl_ST0, (void)) … … 142 143 DEF_HELPER(int32_t, helper_fisttl_ST0, (void)) 143 144 DEF_HELPER(int64_t, helper_fisttll_ST0, (void)) 145 #else 146 DEF_HELPER(RTCCUINTREG, helper_fsts_ST0, (void)) 147 DEF_HELPER(uint64_t, helper_fstl_ST0, (void)) 148 DEF_HELPER(RTCCINTREG, helper_fist_ST0, (void)) 149 DEF_HELPER(RTCCINTREG, helper_fistl_ST0, (void)) 150 DEF_HELPER(int64_t, helper_fistll_ST0, (void)) 151 DEF_HELPER(RTCCINTREG, helper_fistt_ST0, (void)) 152 DEF_HELPER(RTCCINTREG, helper_fisttl_ST0, (void)) 153 DEF_HELPER(int64_t, helper_fisttll_ST0, (void)) 154 #endif 144 155 DEF_HELPER(void, helper_fldt_ST0, (target_ulong ptr)) 145 156 DEF_HELPER(void, helper_fstt_ST0, (target_ulong ptr)) … … 181 192 DEF_HELPER(void, helper_fldz_ST0, (void)) 182 193 DEF_HELPER(void, helper_fldz_FT0, (void)) 194 #ifndef VBOX 183 195 DEF_HELPER(uint32_t, helper_fnstsw, (void)) 184 196 DEF_HELPER(uint32_t, helper_fnstcw, (void)) 197 #else 198 DEF_HELPER(RTCCUINTREG, helper_fnstsw, (void)) 199 DEF_HELPER(RTCCUINTREG, helper_fnstcw, (void)) 200 #endif 185 201 DEF_HELPER(void, helper_fldcw, (uint32_t val)) 186 202 DEF_HELPER(void, helper_fclex, (void)) -
trunk/src/recompiler_new/target-i386/op_helper.c
r15009 r15034 4109 4109 } 4110 4110 4111 #ifndef VBOX 4111 4112 uint32_t helper_fsts_ST0(void) 4113 #else 4114 RTCCUINTREG helper_fsts_ST0(void) 4115 #endif 4112 4116 { 4113 4117 union { … … 4128 4132 return u.i; 4129 4133 } 4130 4134 #ifndef VBOX 4131 4135 int32_t helper_fist_ST0(void) 4136 #else 4137 RTCCINTREG helper_fist_ST0(void) 4138 #endif 4132 4139 { 4133 4140 int32_t val; … … 4138 4145 } 4139 4146 4147 #ifndef VBOX 4140 4148 int32_t helper_fistl_ST0(void) 4149 #else 4150 RTCCINTREG helper_fistl_ST0(void) 4151 #endif 4141 4152 { 4142 4153 int32_t val; … … 4152 4163 } 4153 4164 4165 #ifndef VBOX 4154 4166 int32_t helper_fistt_ST0(void) 4167 #else 4168 RTCCINTREG helper_fistt_ST0(void) 4169 #endif 4155 4170 { 4156 4171 int32_t val; … … 4161 4176 } 4162 4177 4178 #ifndef VBOX 4163 4179 int32_t helper_fisttl_ST0(void) 4180 #else 4181 RTCCINTREG helper_fisttl_ST0(void) 4182 #endif 4164 4183 { 4165 4184 int32_t val; … … 4413 4432 } 4414 4433 4434 #ifndef VBOX 4415 4435 uint32_t helper_fnstsw(void) 4436 #else 4437 RTCCUINTREG helper_fnstsw(void) 4438 #endif 4416 4439 { 4417 4440 return (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; 4418 4441 } 4419 4442 4443 #ifndef VBOX 4420 4444 uint32_t helper_fnstcw(void) 4445 #else 4446 RTCCUINTREG helper_fnstcw(void) 4447 #endif 4421 4448 { 4422 4449 return env->fpuc;
Note:
See TracChangeset
for help on using the changeset viewer.