Changeset 142146 in webkit
- Timestamp:
- Feb 7, 2013 10:04:04 AM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r142088 r142146 1 2013-02-07 Zoltan Herczeg <zherczeg@webkit.org> 2 3 Invalid code is generated for storing constants with baseindex addressing modes on ARM traditional. 4 https://bugs.webkit.org/show_bug.cgi?id=109050 5 6 Reviewed by Oliver Hunt. 7 8 The S! scratch register is reused, but it should contain the constant value. 9 10 * assembler/ARMAssembler.cpp: 11 (JSC::ARMAssembler::baseIndexTransfer32): 12 (JSC::ARMAssembler::baseIndexTransfer16): 13 1 14 2013-02-07 Andras Becsi <andras.becsi@digia.com> 2 15 -
trunk/Source/JavaScriptCore/assembler/ARMAssembler.cpp
r125541 r142146 298 298 } 299 299 300 add(ARMRegisters::S1, base, op2); 301 dataTransfer32(transferType, srcDst, ARMRegisters::S1, offset); 300 if (offset <= 0xfffff && offset >= -0xfffff) { 301 add(ARMRegisters::S0, base, op2); 302 dataTransfer32(transferType, srcDst, ARMRegisters::S0, offset); 303 return; 304 } 305 306 moveImm(offset, ARMRegisters::S0); 307 add(ARMRegisters::S0, ARMRegisters::S0, op2); 308 dtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 302 309 } 303 310 … … 334 341 } 335 342 336 add(ARMRegisters::S1, base, lsl(index, scale)); 337 dataTransfer16(transferType, srcDst, ARMRegisters::S1, offset); 343 ARMWord op2 = lsl(index, scale); 344 345 if (offset <= 0xffff && offset >= -0xffff) { 346 add(ARMRegisters::S0, base, op2); 347 dataTransfer16(transferType, srcDst, ARMRegisters::S0, offset); 348 return; 349 } 350 351 moveImm(offset, ARMRegisters::S0); 352 add(ARMRegisters::S0, ARMRegisters::S0, op2); 353 halfDtrUpRegister(transferType, srcDst, base, ARMRegisters::S0); 338 354 } 339 355
Note: See TracChangeset
for help on using the changeset viewer.