| Index: src/x64/builtins-x64.cc | 
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc | 
| index f3d15309c1edc98d7e0f2edd26def2039ebcd1df..9219c74b003d4e0dbbe033f8300283e4f2d0423e 100644 | 
| --- a/src/x64/builtins-x64.cc | 
| +++ b/src/x64/builtins-x64.cc | 
| @@ -89,9 +89,9 @@ static void CallRuntimePassFunction( | 
|  | 
|  | 
| static void GenerateTailCallToSharedCode(MacroAssembler* masm) { | 
| -  __ movq(kScratchRegister, | 
| +  __ movp(kScratchRegister, | 
| FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| -  __ movq(kScratchRegister, | 
| +  __ movp(kScratchRegister, | 
| FieldOperand(kScratchRegister, SharedFunctionInfo::kCodeOffset)); | 
| __ lea(kScratchRegister, FieldOperand(kScratchRegister, Code::kHeaderSize)); | 
| __ jmp(kScratchRegister); | 
| @@ -161,7 +161,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // Verified that the constructor is a JSFunction. | 
| // Load the initial map and verify that it is in fact a map. | 
| // rdi: constructor | 
| -      __ movq(rax, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| +      __ movp(rax, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| // Will both indicate a NULL and a Smi | 
| ASSERT(kSmiTag == 0); | 
| __ JumpIfSmi(rax, &rt_call); | 
| @@ -181,7 +181,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| if (count_constructions) { | 
| Label allocate; | 
| // Decrease generous allocation count. | 
| -        __ movq(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| +        __ movp(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| __ decb(FieldOperand(rcx, | 
| SharedFunctionInfo::kConstructionCountOffset)); | 
| __ j(not_zero, &allocate); | 
| @@ -213,10 +213,10 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // rax: initial map | 
| // rbx: JSObject (not HeapObject tagged - the actual address). | 
| // rdi: start of next object | 
| -      __ movq(Operand(rbx, JSObject::kMapOffset), rax); | 
| +      __ movp(Operand(rbx, JSObject::kMapOffset), rax); | 
| __ LoadRoot(rcx, Heap::kEmptyFixedArrayRootIndex); | 
| -      __ movq(Operand(rbx, JSObject::kPropertiesOffset), rcx); | 
| -      __ movq(Operand(rbx, JSObject::kElementsOffset), rcx); | 
| +      __ movp(Operand(rbx, JSObject::kPropertiesOffset), rcx); | 
| +      __ movp(Operand(rbx, JSObject::kElementsOffset), rcx); | 
| // Set extra fields in the newly allocated object. | 
| // rax: initial map | 
| // rbx: JSObject | 
| @@ -285,9 +285,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // rdx: number of elements | 
| // rax: start of next object | 
| __ LoadRoot(rcx, Heap::kFixedArrayMapRootIndex); | 
| -      __ movq(Operand(rdi, HeapObject::kMapOffset), rcx);  // setup the map | 
| +      __ movp(Operand(rdi, HeapObject::kMapOffset), rcx);  // setup the map | 
| __ Integer32ToSmi(rdx, rdx); | 
| -      __ movq(Operand(rdi, FixedArray::kLengthOffset), rdx);  // and length | 
| +      __ movp(Operand(rdi, FixedArray::kLengthOffset), rdx);  // and length | 
|  | 
| // Initialize the fields to undefined. | 
| // rbx: JSObject | 
| @@ -299,7 +299,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| __ lea(rcx, Operand(rdi, FixedArray::kHeaderSize)); | 
| __ jmp(&entry); | 
| __ bind(&loop); | 
| -        __ movq(Operand(rcx, 0), rdx); | 
| +        __ movp(Operand(rcx, 0), rdx); | 
| __ addq(rcx, Immediate(kPointerSize)); | 
| __ bind(&entry); | 
| __ cmpq(rcx, rax); | 
| @@ -311,7 +311,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // rbx: JSObject | 
| // rdi: FixedArray | 
| __ or_(rdi, Immediate(kHeapObjectTag));  // add the heap tag | 
| -      __ movq(FieldOperand(rbx, JSObject::kPropertiesOffset), rdi); | 
| +      __ movp(FieldOperand(rbx, JSObject::kPropertiesOffset), rdi); | 
|  | 
|  | 
| // Continue with JSObject being successfully allocated | 
| @@ -330,10 +330,10 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // rdi: function (constructor) | 
| __ bind(&rt_call); | 
| // Must restore rdi (constructor) before calling runtime. | 
| -    __ movq(rdi, Operand(rsp, 0)); | 
| +    __ movp(rdi, Operand(rsp, 0)); | 
| __ push(rdi); | 
| __ CallRuntime(Runtime::kNewObject, 1); | 
| -    __ movq(rbx, rax);  // store result in rbx | 
| +    __ movp(rbx, rax);  // store result in rbx | 
|  | 
| // New object allocated. | 
| // rbx: newly allocated object | 
| @@ -342,7 +342,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| __ pop(rdi); | 
|  | 
| // Retrieve smi-tagged arguments count from the stack. | 
| -    __ movq(rax, Operand(rsp, 0)); | 
| +    __ movp(rax, Operand(rsp, 0)); | 
| __ SmiToInteger32(rax, rax); | 
|  | 
| // Push the allocated receiver to the stack. We need two copies | 
| @@ -356,7 +356,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
|  | 
| // Copy arguments and receiver to the expression stack. | 
| Label loop, entry; | 
| -    __ movq(rcx, rax); | 
| +    __ movp(rcx, rax); | 
| __ jmp(&entry); | 
| __ bind(&loop); | 
| __ push(Operand(rbx, rcx, times_pointer_size, 0)); | 
| @@ -366,7 +366,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
|  | 
| // Call the function. | 
| if (is_api_function) { | 
| -      __ movq(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
| +      __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
| Handle<Code> code = | 
| masm->isolate()->builtins()->HandleApiCallConstruct(); | 
| __ Call(code, RelocInfo::CODE_TARGET); | 
| @@ -381,7 +381,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| } | 
|  | 
| // Restore context from the frame. | 
| -    __ movq(rsi, Operand(rbp, StandardFrameConstants::kContextOffset)); | 
| +    __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset)); | 
|  | 
| // If the result is an object (in the ECMA sense), we should get rid | 
| // of the receiver and use the result; see ECMA-262 section 13.2.2-7 | 
| @@ -399,11 +399,11 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, | 
| // Throw away the result of the constructor invocation and use the | 
| // on-stack receiver as the result. | 
| __ bind(&use_receiver); | 
| -    __ movq(rax, Operand(rsp, 0)); | 
| +    __ movp(rax, Operand(rsp, 0)); | 
|  | 
| // Restore the arguments count and leave the construct frame. | 
| __ bind(&exit); | 
| -    __ movq(rbx, Operand(rsp, kPointerSize));  // Get arguments count. | 
| +    __ movp(rbx, Operand(rsp, kPointerSize));  // Get arguments count. | 
|  | 
| // Leave construct frame. | 
| } | 
| @@ -467,19 +467,19 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, | 
| FrameScope scope(masm, StackFrame::INTERNAL); | 
|  | 
| // Load the function context into rsi. | 
| -    __ movq(rsi, FieldOperand(rdx, JSFunction::kContextOffset)); | 
| +    __ movp(rsi, FieldOperand(rdx, JSFunction::kContextOffset)); | 
|  | 
| // Push the function and the receiver onto the stack. | 
| __ push(rdx); | 
| __ push(r8); | 
|  | 
| // Load the number of arguments and setup pointer to the arguments. | 
| -    __ movq(rax, r9); | 
| +    __ movp(rax, r9); | 
| // Load the previous frame pointer to access C argument on stack | 
| -    __ movq(kScratchRegister, Operand(rbp, 0)); | 
| -    __ movq(rbx, Operand(kScratchRegister, EntryFrameConstants::kArgvOffset)); | 
| +    __ movp(kScratchRegister, Operand(rbp, 0)); | 
| +    __ movp(rbx, Operand(kScratchRegister, EntryFrameConstants::kArgvOffset)); | 
| // Load the function pointer into rdi. | 
| -    __ movq(rdi, rdx); | 
| +    __ movp(rdi, rdx); | 
| #else  // _WIN64 | 
| // GCC parameters in: | 
| // rdi : entry (ignored) | 
| @@ -488,7 +488,7 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, | 
| // rcx : argc | 
| // r8  : argv | 
|  | 
| -    __ movq(rdi, rsi); | 
| +    __ movp(rdi, rsi); | 
| // rdi : function | 
|  | 
| // Clear the context before we push it when entering the internal frame. | 
| @@ -499,11 +499,11 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, | 
| // Push the function and receiver and setup the context. | 
| __ push(rdi); | 
| __ push(rdx); | 
| -    __ movq(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
| +    __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
|  | 
| // Load the number of arguments and setup pointer to the arguments. | 
| -    __ movq(rax, rcx); | 
| -    __ movq(rbx, r8); | 
| +    __ movp(rax, rcx); | 
| +    __ movp(rbx, r8); | 
| #endif  // _WIN64 | 
|  | 
| // Current stack contents: | 
| @@ -523,7 +523,7 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, | 
| __ Set(rcx, 0);  // Set loop variable to 0. | 
| __ jmp(&entry); | 
| __ bind(&loop); | 
| -    __ movq(kScratchRegister, Operand(rbx, rcx, times_pointer_size, 0)); | 
| +    __ movp(kScratchRegister, Operand(rbx, rcx, times_pointer_size, 0)); | 
| __ push(Operand(kScratchRegister, 0));  // dereference handle | 
| __ addq(rcx, Immediate(1)); | 
| __ bind(&entry); | 
| @@ -610,7 +610,7 @@ static void GenerateMakeCodeYoungAgainCommon(MacroAssembler* masm) { | 
| __ subq(Operand(rsp, 0), Immediate(5)); | 
| __ Pushad(); | 
| __ Move(arg_reg_2, ExternalReference::isolate_address(masm->isolate())); | 
| -  __ movq(arg_reg_1, Operand(rsp, kNumSafepointRegisters * kPointerSize)); | 
| +  __ movp(arg_reg_1, Operand(rsp, kNumSafepointRegisters * kPointerSize)); | 
| {  // NOLINT | 
| FrameScope scope(masm, StackFrame::MANUAL); | 
| __ PrepareCallCFunction(2); | 
| @@ -642,7 +642,7 @@ void Builtins::Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm) { | 
| // pointers. | 
| __ Pushad(); | 
| __ Move(arg_reg_2, ExternalReference::isolate_address(masm->isolate())); | 
| -  __ movq(arg_reg_1, Operand(rsp, kNumSafepointRegisters * kPointerSize)); | 
| +  __ movp(arg_reg_1, Operand(rsp, kNumSafepointRegisters * kPointerSize)); | 
| __ subq(arg_reg_1, Immediate(Assembler::kShortCallInstructionLength)); | 
| {  // NOLINT | 
| FrameScope scope(masm, StackFrame::MANUAL); | 
| @@ -656,7 +656,7 @@ void Builtins::Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm) { | 
| // Perform prologue operations usually performed by the young code stub. | 
| __ PopReturnAddressTo(kScratchRegister); | 
| __ push(rbp);  // Caller's frame pointer. | 
| -  __ movq(rbp, rsp); | 
| +  __ movp(rbp, rsp); | 
| __ push(rsi);  // Callee's context. | 
| __ push(rdi);  // Callee's JS Function. | 
| __ PushReturnAddressFrom(kScratchRegister); | 
| @@ -724,7 +724,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm, | 
| __ ret(1 * kPointerSize);  // Remove state. | 
|  | 
| __ bind(¬_no_registers); | 
| -  __ movq(rax, Operand(rsp, kPCOnStackSize + kPointerSize)); | 
| +  __ movp(rax, Operand(rsp, kPCOnStackSize + kPointerSize)); | 
| __ cmpq(kScratchRegister, Immediate(FullCodeGenerator::TOS_REG)); | 
| __ j(not_equal, ¬_tos_rax, Label::kNear); | 
| __ ret(2 * kPointerSize);  // Remove state, rax. | 
| @@ -775,7 +775,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| //    if it is a function. | 
| Label slow, non_function; | 
| StackArgumentsAccessor args(rsp, rax); | 
| -  __ movq(rdi, args.GetReceiverOperand()); | 
| +  __ movp(rdi, args.GetReceiverOperand()); | 
| __ JumpIfSmi(rdi, &non_function); | 
| __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rcx); | 
| __ j(not_equal, &slow); | 
| @@ -785,10 +785,10 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| __ Set(rdx, 0);  // indicate regular JS_FUNCTION | 
| { Label convert_to_object, use_global_receiver, patch_receiver; | 
| // Change context eagerly in case we need the global receiver. | 
| -    __ movq(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
| +    __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
|  | 
| // Do not transform the receiver for strict mode functions. | 
| -    __ movq(rbx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| +    __ movp(rbx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| __ testb(FieldOperand(rbx, SharedFunctionInfo::kStrictModeByteOffset), | 
| Immediate(1 << SharedFunctionInfo::kStrictModeBitWithinByte)); | 
| __ j(not_equal, &shift_arguments); | 
| @@ -800,7 +800,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| __ j(not_zero, &shift_arguments); | 
|  | 
| // Compute the receiver in non-strict mode. | 
| -    __ movq(rbx, args.GetArgumentOperand(1)); | 
| +    __ movp(rbx, args.GetArgumentOperand(1)); | 
| __ JumpIfSmi(rbx, &convert_to_object, Label::kNear); | 
|  | 
| __ CompareRoot(rbx, Heap::kNullValueRootIndex); | 
| @@ -821,7 +821,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
|  | 
| __ push(rbx); | 
| __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); | 
| -      __ movq(rbx, rax); | 
| +      __ movp(rbx, rax); | 
| __ Set(rdx, 0);  // indicate regular JS_FUNCTION | 
|  | 
| __ pop(rax); | 
| @@ -829,16 +829,16 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| } | 
|  | 
| // Restore the function to rdi. | 
| -    __ movq(rdi, args.GetReceiverOperand()); | 
| +    __ movp(rdi, args.GetReceiverOperand()); | 
| __ jmp(&patch_receiver, Label::kNear); | 
|  | 
| __ bind(&use_global_receiver); | 
| -    __ movq(rbx, | 
| +    __ movp(rbx, | 
| Operand(rsi, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX))); | 
| -    __ movq(rbx, FieldOperand(rbx, GlobalObject::kGlobalReceiverOffset)); | 
| +    __ movp(rbx, FieldOperand(rbx, GlobalObject::kGlobalReceiverOffset)); | 
|  | 
| __ bind(&patch_receiver); | 
| -    __ movq(args.GetArgumentOperand(1), rbx); | 
| +    __ movp(args.GetArgumentOperand(1), rbx); | 
|  | 
| __ jmp(&shift_arguments); | 
| } | 
| @@ -855,17 +855,17 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| //     CALL_NON_FUNCTION builtin expects the non-function callee as | 
| //     receiver, so overwrite the first argument which will ultimately | 
| //     become the receiver. | 
| -  __ movq(args.GetArgumentOperand(1), rdi); | 
| +  __ movp(args.GetArgumentOperand(1), rdi); | 
|  | 
| // 4. Shift arguments and return address one slot down on the stack | 
| //    (overwriting the original receiver).  Adjust argument count to make | 
| //    the original first argument the new receiver. | 
| __ bind(&shift_arguments); | 
| { Label loop; | 
| -    __ movq(rcx, rax); | 
| +    __ movp(rcx, rax); | 
| __ bind(&loop); | 
| -    __ movq(rbx, Operand(rsp, rcx, times_pointer_size, 0)); | 
| -    __ movq(Operand(rsp, rcx, times_pointer_size, 1 * kPointerSize), rbx); | 
| +    __ movp(rbx, Operand(rsp, rcx, times_pointer_size, 0)); | 
| +    __ movp(Operand(rsp, rcx, times_pointer_size, 1 * kPointerSize), rbx); | 
| __ decq(rcx); | 
| __ j(not_sign, &loop);  // While non-negative (to copy return address). | 
| __ pop(rbx);  // Discard copy of return address. | 
| @@ -899,11 +899,11 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { | 
| // 5b. Get the code to call from the function and check that the number of | 
| //     expected arguments matches what we're providing.  If so, jump | 
| //     (tail-call) to the code in register edx without checking arguments. | 
| -  __ movq(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| +  __ movp(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| __ movsxlq(rbx, | 
| FieldOperand(rdx, | 
| SharedFunctionInfo::kFormalParameterCountOffset)); | 
| -  __ movq(rdx, FieldOperand(rdi, JSFunction::kCodeEntryOffset)); | 
| +  __ movp(rdx, FieldOperand(rdi, JSFunction::kCodeEntryOffset)); | 
| __ cmpq(rax, rbx); | 
| __ j(not_equal, | 
| masm->isolate()->builtins()->ArgumentsAdaptorTrampoline(), | 
| @@ -941,7 +941,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
| // limit" is checked. | 
| Label okay; | 
| __ LoadRoot(kScratchRegister, Heap::kRealStackLimitRootIndex); | 
| -    __ movq(rcx, rsp); | 
| +    __ movp(rcx, rsp); | 
| // Make rcx the space we have left. The stack might already be overflowed | 
| // here which will cause rcx to become negative. | 
| __ subq(rcx, kScratchRegister); | 
| @@ -967,20 +967,20 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
| __ push(Immediate(0));  // index | 
|  | 
| // Get the receiver. | 
| -    __ movq(rbx, Operand(rbp, kReceiverOffset)); | 
| +    __ movp(rbx, Operand(rbp, kReceiverOffset)); | 
|  | 
| // Check that the function is a JS function (otherwise it must be a proxy). | 
| Label push_receiver; | 
| -    __ movq(rdi, Operand(rbp, kFunctionOffset)); | 
| +    __ movp(rdi, Operand(rbp, kFunctionOffset)); | 
| __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rcx); | 
| __ j(not_equal, &push_receiver); | 
|  | 
| // Change context eagerly to get the right global object if necessary. | 
| -    __ movq(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
| +    __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset)); | 
|  | 
| // Do not transform the receiver for strict mode functions. | 
| Label call_to_object, use_global_receiver; | 
| -    __ movq(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| +    __ movp(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset)); | 
| __ testb(FieldOperand(rdx, SharedFunctionInfo::kStrictModeByteOffset), | 
| Immediate(1 << SharedFunctionInfo::kStrictModeBitWithinByte)); | 
| __ j(not_equal, &push_receiver); | 
| @@ -1007,13 +1007,13 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
| __ bind(&call_to_object); | 
| __ push(rbx); | 
| __ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); | 
| -    __ movq(rbx, rax); | 
| +    __ movp(rbx, rax); | 
| __ jmp(&push_receiver, Label::kNear); | 
|  | 
| __ bind(&use_global_receiver); | 
| -    __ movq(rbx, | 
| +    __ movp(rbx, | 
| Operand(rsi, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX))); | 
| -    __ movq(rbx, FieldOperand(rbx, GlobalObject::kGlobalReceiverOffset)); | 
| +    __ movp(rbx, FieldOperand(rbx, GlobalObject::kGlobalReceiverOffset)); | 
|  | 
| // Push the receiver. | 
| __ bind(&push_receiver); | 
| @@ -1021,10 +1021,10 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
|  | 
| // Copy all arguments from the array to the stack. | 
| Label entry, loop; | 
| -    __ movq(rax, Operand(rbp, kIndexOffset)); | 
| +    __ movp(rax, Operand(rbp, kIndexOffset)); | 
| __ jmp(&entry); | 
| __ bind(&loop); | 
| -    __ movq(rdx, Operand(rbp, kArgumentsOffset));  // load arguments | 
| +    __ movp(rdx, Operand(rbp, kArgumentsOffset));  // load arguments | 
|  | 
| // Use inline caching to speed up access to arguments. | 
| Handle<Code> ic = | 
| @@ -1039,9 +1039,9 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
| __ push(rax); | 
|  | 
| // Update the index on the stack and in register rax. | 
| -    __ movq(rax, Operand(rbp, kIndexOffset)); | 
| +    __ movp(rax, Operand(rbp, kIndexOffset)); | 
| __ SmiAddConstant(rax, rax, Smi::FromInt(1)); | 
| -    __ movq(Operand(rbp, kIndexOffset), rax); | 
| +    __ movp(Operand(rbp, kIndexOffset), rax); | 
|  | 
| __ bind(&entry); | 
| __ cmpq(rax, Operand(rbp, kLimitOffset)); | 
| @@ -1051,7 +1051,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { | 
| Label call_proxy; | 
| ParameterCount actual(rax); | 
| __ SmiToInteger32(rax, rax); | 
| -    __ movq(rdi, Operand(rbp, kFunctionOffset)); | 
| +    __ movp(rdi, Operand(rbp, kFunctionOffset)); | 
| __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rcx); | 
| __ j(not_equal, &call_proxy); | 
| __ InvokeFunction(rdi, actual, CALL_FUNCTION, NullCallWrapper()); | 
| @@ -1087,7 +1087,7 @@ void Builtins::Generate_InternalArrayCode(MacroAssembler* masm) { | 
|  | 
| if (FLAG_debug_code) { | 
| // Initial map for the builtin InternalArray functions should be maps. | 
| -    __ movq(rbx, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| +    __ movp(rbx, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| // Will both indicate a NULL and a Smi. | 
| STATIC_ASSERT(kSmiTag == 0); | 
| Condition not_smi = NegateCondition(masm->CheckSmi(rbx)); | 
| @@ -1117,7 +1117,7 @@ void Builtins::Generate_ArrayCode(MacroAssembler* masm) { | 
|  | 
| if (FLAG_debug_code) { | 
| // Initial map for the builtin Array functions should be maps. | 
| -    __ movq(rbx, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| +    __ movp(rbx, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); | 
| // Will both indicate a NULL and a Smi. | 
| STATIC_ASSERT(kSmiTag == 0); | 
| Condition not_smi = NegateCondition(masm->CheckSmi(rbx)); | 
| @@ -1160,11 +1160,11 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 
| Label no_arguments; | 
| __ testq(rax, rax); | 
| __ j(zero, &no_arguments); | 
| -  __ movq(rbx, args.GetArgumentOperand(1)); | 
| +  __ movp(rbx, args.GetArgumentOperand(1)); | 
| __ PopReturnAddressTo(rcx); | 
| __ lea(rsp, Operand(rsp, rax, times_pointer_size, kPointerSize)); | 
| __ PushReturnAddressFrom(rcx); | 
| -  __ movq(rax, rbx); | 
| +  __ movp(rax, rbx); | 
|  | 
| // Lookup the argument in the number to string cache. | 
| Label not_cached, argument_is_string; | 
| @@ -1200,15 +1200,15 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 
| __ cmpb(FieldOperand(rcx, Map::kUnusedPropertyFieldsOffset), Immediate(0)); | 
| __ Assert(equal, kUnexpectedUnusedPropertiesOfStringWrapper); | 
| } | 
| -  __ movq(FieldOperand(rax, HeapObject::kMapOffset), rcx); | 
| +  __ movp(FieldOperand(rax, HeapObject::kMapOffset), rcx); | 
|  | 
| // Set properties and elements. | 
| __ LoadRoot(rcx, Heap::kEmptyFixedArrayRootIndex); | 
| -  __ movq(FieldOperand(rax, JSObject::kPropertiesOffset), rcx); | 
| -  __ movq(FieldOperand(rax, JSObject::kElementsOffset), rcx); | 
| +  __ movp(FieldOperand(rax, JSObject::kPropertiesOffset), rcx); | 
| +  __ movp(FieldOperand(rax, JSObject::kElementsOffset), rcx); | 
|  | 
| // Set the value. | 
| -  __ movq(FieldOperand(rax, JSValue::kValueOffset), rbx); | 
| +  __ movp(FieldOperand(rax, JSValue::kValueOffset), rbx); | 
|  | 
| // Ensure the object is fully initialized. | 
| STATIC_ASSERT(JSValue::kSize == 4 * kPointerSize); | 
| @@ -1224,7 +1224,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 
| __ JumpIfSmi(rax, &convert_argument); | 
| Condition is_string = masm->IsObjectStringType(rax, rbx, rcx); | 
| __ j(NegateCondition(is_string), &convert_argument); | 
| -  __ movq(rbx, rax); | 
| +  __ movp(rbx, rax); | 
| __ IncrementCounter(counters->string_ctor_string_value(), 1); | 
| __ jmp(&argument_is_string); | 
|  | 
| @@ -1238,7 +1238,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 
| __ InvokeBuiltin(Builtins::TO_STRING, CALL_FUNCTION); | 
| __ pop(rdi); | 
| } | 
| -  __ movq(rbx, rax); | 
| +  __ movp(rbx, rax); | 
| __ jmp(&argument_is_string); | 
|  | 
| // Load the empty string into rbx, remove the receiver from the | 
| @@ -1265,7 +1265,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 
|  | 
| static void EnterArgumentsAdaptorFrame(MacroAssembler* masm) { | 
| __ push(rbp); | 
| -  __ movq(rbp, rsp); | 
| +  __ movp(rbp, rsp); | 
|  | 
| // Store the arguments adaptor context sentinel. | 
| __ Push(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); | 
| @@ -1283,10 +1283,10 @@ static void EnterArgumentsAdaptorFrame(MacroAssembler* masm) { | 
|  | 
| static void LeaveArgumentsAdaptorFrame(MacroAssembler* masm) { | 
| // Retrieve the number of arguments from the stack. Number is a Smi. | 
| -  __ movq(rbx, Operand(rbp, ArgumentsAdaptorFrameConstants::kLengthOffset)); | 
| +  __ movp(rbx, Operand(rbp, ArgumentsAdaptorFrameConstants::kLengthOffset)); | 
|  | 
| // Leave the frame. | 
| -  __ movq(rsp, rbp); | 
| +  __ movp(rsp, rbp); | 
| __ pop(rbp); | 
|  | 
| // Remove caller arguments from the stack. | 
| @@ -1309,7 +1309,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { | 
| __ IncrementCounter(counters->arguments_adaptors(), 1); | 
|  | 
| Label enough, too_few; | 
| -  __ movq(rdx, FieldOperand(rdi, JSFunction::kCodeEntryOffset)); | 
| +  __ movp(rdx, FieldOperand(rdi, JSFunction::kCodeEntryOffset)); | 
| __ cmpq(rax, rbx); | 
| __ j(less, &too_few); | 
| __ cmpq(rbx, Immediate(SharedFunctionInfo::kDontAdaptArgumentsSentinel)); | 
| @@ -1361,7 +1361,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { | 
| __ j(less, &fill); | 
|  | 
| // Restore function pointer. | 
| -    __ movq(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); | 
| +    __ movp(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); | 
| } | 
|  | 
| // Call the entry point. | 
| @@ -1385,7 +1385,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { | 
|  | 
| void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { | 
| // Lookup the function in the JavaScript frame. | 
| -  __ movq(rax, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); | 
| +  __ movp(rax, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); | 
| { | 
| FrameScope scope(masm, StackFrame::INTERNAL); | 
| // Pass function as argument. | 
| @@ -1402,7 +1402,7 @@ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { | 
| __ bind(&skip); | 
|  | 
| // Load deoptimization data from the code object. | 
| -  __ movq(rbx, Operand(rax, Code::kDeoptimizationDataOffset - kHeapObjectTag)); | 
| +  __ movp(rbx, Operand(rax, Code::kDeoptimizationDataOffset - kHeapObjectTag)); | 
|  | 
| // Load the OSR entrypoint offset from the deoptimization data. | 
| __ SmiToInteger32(rbx, Operand(rbx, FixedArray::OffsetOfElementAt( | 
|  |