| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #if V8_TARGET_ARCH_X64 | 5 #if V8_TARGET_ARCH_X64 | 
| 6 | 6 | 
| 7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" | 
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" | 
| 9 #include "src/codegen.h" | 9 #include "src/codegen.h" | 
| 10 #include "src/compiler.h" | 10 #include "src/compiler.h" | 
| (...skipping 4463 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4474       ExternalReference::debug_is_active_address(isolate()); | 4474       ExternalReference::debug_is_active_address(isolate()); | 
| 4475   __ Move(kScratchRegister, debug_is_active); | 4475   __ Move(kScratchRegister, debug_is_active); | 
| 4476   __ movzxbp(rax, Operand(kScratchRegister, 0)); | 4476   __ movzxbp(rax, Operand(kScratchRegister, 0)); | 
| 4477   __ Integer32ToSmi(rax, rax); | 4477   __ Integer32ToSmi(rax, rax); | 
| 4478   context()->Plug(rax); | 4478   context()->Plug(rax); | 
| 4479 } | 4479 } | 
| 4480 | 4480 | 
| 4481 | 4481 | 
| 4482 void FullCodeGenerator::EmitLoadJSRuntimeFunction(CallRuntime* expr) { | 4482 void FullCodeGenerator::EmitLoadJSRuntimeFunction(CallRuntime* expr) { | 
| 4483   // Push the builtins object as receiver. | 4483   // Push the builtins object as receiver. | 
|  | 4484   __ PushRoot(Heap::kUndefinedValueRootIndex); | 
|  | 4485 | 
| 4484   __ movp(rax, GlobalObjectOperand()); | 4486   __ movp(rax, GlobalObjectOperand()); | 
| 4485   __ Push(FieldOperand(rax, GlobalObject::kBuiltinsOffset)); | 4487   __ movp(rax, FieldOperand(rax, GlobalObject::kNativeContextOffset)); | 
| 4486 | 4488   __ movp(rax, ContextOperand(rax, expr->context_index())); | 
| 4487   // Load the function from the receiver. |  | 
| 4488   __ movp(LoadDescriptor::ReceiverRegister(), Operand(rsp, 0)); |  | 
| 4489   __ Move(LoadDescriptor::NameRegister(), expr->name()); |  | 
| 4490   __ Move(LoadDescriptor::SlotRegister(), |  | 
| 4491           SmiFromSlot(expr->CallRuntimeFeedbackSlot())); |  | 
| 4492   CallLoadIC(NOT_INSIDE_TYPEOF); |  | 
| 4493 } | 4489 } | 
| 4494 | 4490 | 
| 4495 | 4491 | 
| 4496 void FullCodeGenerator::EmitCallJSRuntimeFunction(CallRuntime* expr) { | 4492 void FullCodeGenerator::EmitCallJSRuntimeFunction(CallRuntime* expr) { | 
| 4497   ZoneList<Expression*>* args = expr->arguments(); | 4493   ZoneList<Expression*>* args = expr->arguments(); | 
| 4498   int arg_count = args->length(); | 4494   int arg_count = args->length(); | 
| 4499 | 4495 | 
| 4500   SetCallPosition(expr, arg_count); | 4496   SetCallPosition(expr, arg_count); | 
| 4501   CallFunctionStub stub(isolate(), arg_count, NO_CALL_FUNCTION_FLAGS); | 4497   CallFunctionStub stub(isolate(), arg_count, NO_CALL_FUNCTION_FLAGS); | 
| 4502   __ movp(rdi, Operand(rsp, (arg_count + 1) * kPointerSize)); | 4498   __ movp(rdi, Operand(rsp, (arg_count + 1) * kPointerSize)); | 
| (...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5301             Assembler::target_address_at(call_target_address, | 5297             Assembler::target_address_at(call_target_address, | 
| 5302                                          unoptimized_code)); | 5298                                          unoptimized_code)); | 
| 5303   return OSR_AFTER_STACK_CHECK; | 5299   return OSR_AFTER_STACK_CHECK; | 
| 5304 } | 5300 } | 
| 5305 | 5301 | 
| 5306 | 5302 | 
| 5307 }  // namespace internal | 5303 }  // namespace internal | 
| 5308 }  // namespace v8 | 5304 }  // namespace v8 | 
| 5309 | 5305 | 
| 5310 #endif  // V8_TARGET_ARCH_X64 | 5306 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|