Index: third_party/WebKit/JavaScriptCore/assembler/MacroAssemblerX86_64.h |
=================================================================== |
--- third_party/WebKit/JavaScriptCore/assembler/MacroAssemblerX86_64.h (revision 11154) |
+++ third_party/WebKit/JavaScriptCore/assembler/MacroAssemblerX86_64.h (working copy) |
@@ -244,8 +244,13 @@ |
void storePtr(ImmPtr imm, ImplicitAddress address) |
{ |
- move(imm, scratchRegister); |
- storePtr(scratchRegister, address); |
+ intptr_t ptr = imm.asIntptr(); |
+ if (CAN_SIGN_EXTEND_32_64(ptr)) |
+ m_assembler.movq_i32m(static_cast<int>(ptr), address.offset, address.base); |
+ else { |
+ move(imm, scratchRegister); |
+ storePtr(scratchRegister, address); |
+ } |
} |
DataLabel32 storePtrWithAddressOffsetPatch(RegisterID src, Address address) |