Changeset 159298 in webkit
- Timestamp:
- Nov 14, 2013 11:43:08 AM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r159290 r159298 1 2013-11-14 Michael Saboff <msaboff@apple.com> 2 3 REGRESSION (r159276): Fix lots of crashes for arm_traditional architecture. 4 https://bugs.webkit.org/show_bug.cgi?id=124365 5 6 Reviewed by Oliver Hunt. 7 8 Crashes were caused by a mixup between regular registers and temporary registers in ARM_EXTRA_GPRS. 9 10 * llint/LowLevelInterpreter32_64.asm: Warning, t3 != a3. It's safer to use an implementation using aX 11 registers like the MIPS one for cCallX macros. 12 * offlineasm/arm.rb: Rearrange ARM_EXTRA_GPRS according to the new register distribution in LLINT. 13 1 14 2013-11-14 Michael Saboff <msaboff@apple.com> 2 15 -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
r159288 r159298 98 98 99 99 macro cCall2(function, arg1, arg2) 100 if ARM or ARMv7 or ARMv7_TRADITIONAL 101 move arg1, t0102 move arg2, t1100 if ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS 101 move arg1, a0 102 move arg2, a1 103 103 call function 104 104 elsif X86 105 105 poke arg1, 0 106 106 poke arg2, 1 107 call function108 elsif MIPS109 move arg1, a0110 move arg2, a1111 107 call function 112 108 elsif SH4 … … 122 118 # This barely works. arg3 and arg4 should probably be immediates. 123 119 macro cCall4(function, arg1, arg2, arg3, arg4) 124 if ARM or ARMv7 or ARMv7_TRADITIONAL 125 move arg1, t0126 move arg2, t1127 move arg3, t2128 move arg4, t3120 if ARM or ARMv7 or ARMv7_TRADITIONAL or MIPS 121 move arg1, a0 122 move arg2, a1 123 move arg3, a2 124 move arg4, a3 129 125 call function 130 126 elsif X86 … … 133 129 poke arg3, 2 134 130 poke arg4, 3 135 call function136 elsif MIPS137 move arg1, a0138 move arg2, a1139 move arg3, a2140 move arg4, a3141 131 call function 142 132 elsif SH4 -
trunk/Source/JavaScriptCore/offlineasm/arm.rb
r159276 r159298 64 64 end 65 65 66 ARM_EXTRA_GPRS = [SpecialRegister.new("r 9"), SpecialRegister.new("r8"), SpecialRegister.new("r3")]66 ARM_EXTRA_GPRS = [SpecialRegister.new("r10"), SpecialRegister.new("r12")] 67 67 ARM_EXTRA_FPRS = [SpecialRegister.new("d7")] 68 68 ARM_SCRATCH_FPR = SpecialRegister.new("d6") … … 224 224 result = riscLowerMisplacedAddresses(result) 225 225 result = riscLowerRegisterReuse(result) 226 result = assignRegistersToTemporaries(result, :gpr, ARM_EXTRA_GPRS) 226 if isARMv7 227 result = assignRegistersToTemporaries(result, :gpr, ARM_EXTRA_GPRS.concat([SpecialRegister.new("r11")])) 228 else 229 result = assignRegistersToTemporaries(result, :gpr, ARM_EXTRA_GPRS.concat([SpecialRegister.new("r7")])) 230 end 227 231 result = assignRegistersToTemporaries(result, :fpr, ARM_EXTRA_FPRS) 228 232 return result
Note: See TracChangeset
for help on using the changeset viewer.