Ignore:
Timestamp:
Feb 21, 2012, 6:46:54 PM (13 years ago)
Author:
[email protected]
Message:

Unbreak double-typed arrays on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=79177

Reviewed by Gavin Barraclough.

The existing code had completely broken address arithmetic.

  • JSCTypedArrayStubs.h:

(JSC):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::storeDouble):
(JSC::MacroAssemblerARMv7::storeFloat):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r103689 r108432  
    797797    {
    798798        move(address.index, addressTempRegister);
    799         mul32(TrustedImm32(address.scale), addressTempRegister, addressTempRegister);
     799        mul32(TrustedImm32(1 << address.scale), addressTempRegister, addressTempRegister);
     800        add32(address.base, addressTempRegister);
    800801        storeDouble(src, Address(addressTempRegister, address.offset));
    801802    }
     
    804805    {
    805806        move(address.index, addressTempRegister);
    806         mul32(TrustedImm32(address.scale), addressTempRegister, addressTempRegister);
     807        mul32(TrustedImm32(1 << address.scale), addressTempRegister, addressTempRegister);
     808        add32(address.base, addressTempRegister);
    807809        storeDouble(src, Address(addressTempRegister, address.offset));
    808810    }
Note: See TracChangeset for help on using the changeset viewer.