Changeset 37253 in webkit for trunk/JavaScriptCore
- Timestamp:
- Oct 3, 2008, 1:56:50 PM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r37242 r37253 1 2008-10-03 Cameron Zwarich <[email protected]> 2 3 Reviewed by Geoff Garen. 4 5 Bug 21343: REGRESSSION (r37160): ecma_3/ExecutionContexts/10.1.3-1.js and js1_4/Functions/function-001.js fail on 64-bit 6 <https://bugs.webkit.org/show_bug.cgi?id=21343> 7 8 Add a workaround for a bug in GCC, which affects GCC 4.0, GCC 4.2, and 9 llvm-gcc 4.2. I put it in an #ifdef because it was a slight regression 10 on SunSpider in 32-bit, although that might be entirely random. 11 12 * kjs/Arguments.cpp: 13 (JSC::Arguments::getOwnPropertySlot): 14 1 15 2008-10-03 Darin Adler <[email protected]> 2 16 -
trunk/JavaScriptCore/kjs/Arguments.cpp
r37182 r37253 111 111 { 112 112 if (i < d->numArguments && (!d->deletedArguments || !d->deletedArguments[i])) { 113 if (i < d->numParameters) 113 if (i < d->numParameters) { 114 #if COMPILER(GCC) && PLATFORM(X86_64) 115 // The subscript variable is a workaround for a 64-bit code 116 // generation bug in GCC. 117 int subscript = d->firstParameterIndex + i; 118 slot.setRegisterSlot(&d->registers[subscript]); 119 #else 114 120 slot.setRegisterSlot(&d->registers[d->firstParameterIndex + i]); 115 else 121 #endif 122 } else 116 123 slot.setValue(d->extraArguments[i - d->numParameters].jsValue(exec)); 117 124 return true; … … 126 133 unsigned i = propertyName.toArrayIndex(&isArrayIndex); 127 134 if (isArrayIndex && i < d->numArguments && (!d->deletedArguments || !d->deletedArguments[i])) { 128 if (i < d->numParameters) 135 if (i < d->numParameters) { 136 #if COMPILER(GCC) && PLATFORM(X86_64) 137 // The subscript variable is a workaround for a 64-bit code 138 // generation bug in GCC. 139 int subscript = d->firstParameterIndex + i; 140 slot.setRegisterSlot(&d->registers[subscript]); 141 #else 129 142 slot.setRegisterSlot(&d->registers[d->firstParameterIndex + i]); 130 else 143 #endif 144 } else 131 145 slot.setValue(d->extraArguments[i - d->numParameters].jsValue(exec)); 132 146 return true;
Note:
See TracChangeset
for help on using the changeset viewer.