diff options
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h')
-rw-r--r-- | Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h index 6cf2d081b..d883abf4f 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h +++ b/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h @@ -796,14 +796,16 @@ public: void storeDouble(FPRegisterID src, BaseIndex address) { move(address.index, addressTempRegister); - mul32(TrustedImm32(address.scale), addressTempRegister, addressTempRegister); + mul32(TrustedImm32(1 << address.scale), addressTempRegister, addressTempRegister); + add32(address.base, addressTempRegister); storeDouble(src, Address(addressTempRegister, address.offset)); } void storeFloat(FPRegisterID src, BaseIndex address) { move(address.index, addressTempRegister); - mul32(TrustedImm32(address.scale), addressTempRegister, addressTempRegister); + mul32(TrustedImm32(1 << address.scale), addressTempRegister, addressTempRegister); + add32(address.base, addressTempRegister); storeDouble(src, Address(addressTempRegister, address.offset)); } |