Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Side by Side Diff: src/x64/macro-assembler-x64.cc

Issue 1439693002: [runtime] Support Proxy setPrototypeOf trap (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@2015-11-09_new_Proxy_1417063011
Patch Set: merging with master Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/x64/macro-assembler-x64.h ('k') | test/cctest/compiler/test-run-bytecode-graph-builder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/base/bits.h" 7 #include "src/base/bits.h"
8 #include "src/base/division-by-constant.h" 8 #include "src/base/division-by-constant.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 3971 matching lines...) Expand 10 before | Expand all | Expand 10 after
3982 void MacroAssembler::DebugBreak() { 3982 void MacroAssembler::DebugBreak() {
3983 Set(rax, 0); // No arguments. 3983 Set(rax, 0); // No arguments.
3984 LoadAddress(rbx, 3984 LoadAddress(rbx,
3985 ExternalReference(Runtime::kHandleDebuggerStatement, isolate())); 3985 ExternalReference(Runtime::kHandleDebuggerStatement, isolate()));
3986 CEntryStub ces(isolate(), 1); 3986 CEntryStub ces(isolate(), 1);
3987 DCHECK(AllowThisStubCall(&ces)); 3987 DCHECK(AllowThisStubCall(&ces));
3988 Call(ces.GetCode(), RelocInfo::DEBUGGER_STATEMENT); 3988 Call(ces.GetCode(), RelocInfo::DEBUGGER_STATEMENT);
3989 } 3989 }
3990 3990
3991 3991
3992 void MacroAssembler::InvokeFunction(Register function, 3992 void MacroAssembler::InvokeFunction(Register function, Register new_target,
3993 Register new_target,
3994 const ParameterCount& actual, 3993 const ParameterCount& actual,
3995 InvokeFlag flag, 3994 InvokeFlag flag,
3996 const CallWrapper& call_wrapper) { 3995 const CallWrapper& call_wrapper) {
3997 movp(rbx, FieldOperand(function, JSFunction::kSharedFunctionInfoOffset)); 3996 movp(rbx, FieldOperand(function, JSFunction::kSharedFunctionInfoOffset));
3998 LoadSharedFunctionInfoSpecialField( 3997 LoadSharedFunctionInfoSpecialField(
3999 rbx, rbx, SharedFunctionInfo::kFormalParameterCountOffset); 3998 rbx, rbx, SharedFunctionInfo::kFormalParameterCountOffset);
4000 3999
4001 ParameterCount expected(rbx); 4000 ParameterCount expected(rbx);
4002 InvokeFunction(function, new_target, expected, actual, flag, call_wrapper); 4001 InvokeFunction(function, new_target, expected, actual, flag, call_wrapper);
4003 } 4002 }
4004 4003
4005 4004
4006 void MacroAssembler::InvokeFunction(Handle<JSFunction> function, 4005 void MacroAssembler::InvokeFunction(Handle<JSFunction> function,
4007 const ParameterCount& expected, 4006 const ParameterCount& expected,
4008 const ParameterCount& actual, 4007 const ParameterCount& actual,
4009 InvokeFlag flag, 4008 InvokeFlag flag,
4010 const CallWrapper& call_wrapper) { 4009 const CallWrapper& call_wrapper) {
4011 Move(rdi, function); 4010 Move(rdi, function);
4012 InvokeFunction(rdi, no_reg, expected, actual, flag, call_wrapper); 4011 InvokeFunction(rdi, no_reg, expected, actual, flag, call_wrapper);
4013 } 4012 }
4014 4013
4015 4014
4016 void MacroAssembler::InvokeFunction(Register function, 4015 void MacroAssembler::InvokeFunction(Register function, Register new_target,
4017 Register new_target,
4018 const ParameterCount& expected, 4016 const ParameterCount& expected,
4019 const ParameterCount& actual, 4017 const ParameterCount& actual,
4020 InvokeFlag flag, 4018 InvokeFlag flag,
4021 const CallWrapper& call_wrapper) { 4019 const CallWrapper& call_wrapper) {
4022 DCHECK(function.is(rdi)); 4020 DCHECK(function.is(rdi));
4023 movp(rsi, FieldOperand(function, JSFunction::kContextOffset)); 4021 movp(rsi, FieldOperand(function, JSFunction::kContextOffset));
4024 InvokeFunctionCode(rdi, new_target, expected, actual, flag, call_wrapper); 4022 InvokeFunctionCode(rdi, new_target, expected, actual, flag, call_wrapper);
4025 } 4023 }
4026 4024
4027 4025
(...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after
5554 movl(rax, dividend); 5552 movl(rax, dividend);
5555 shrl(rax, Immediate(31)); 5553 shrl(rax, Immediate(31));
5556 addl(rdx, rax); 5554 addl(rdx, rax);
5557 } 5555 }
5558 5556
5559 5557
5560 } // namespace internal 5558 } // namespace internal
5561 } // namespace v8 5559 } // namespace v8
5562 5560
5563 #endif // V8_TARGET_ARCH_X64 5561 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/x64/macro-assembler-x64.h ('k') | test/cctest/compiler/test-run-bytecode-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698