OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" | 5 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" |
6 | 6 |
7 #include "src/arm64/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 1973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1984 RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta()); | 1984 RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta()); |
1985 } | 1985 } |
1986 | 1986 |
1987 | 1987 |
1988 void LCodeGen::DoCallRuntime(LCallRuntime* instr) { | 1988 void LCodeGen::DoCallRuntime(LCallRuntime* instr) { |
1989 CallRuntime(instr->function(), instr->arity(), instr); | 1989 CallRuntime(instr->function(), instr->arity(), instr); |
1990 RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta()); | 1990 RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta()); |
1991 } | 1991 } |
1992 | 1992 |
1993 | 1993 |
1994 void LCodeGen::DoCallStub(LCallStub* instr) { | |
1995 DCHECK(ToRegister(instr->context()).is(cp)); | |
1996 DCHECK(ToRegister(instr->result()).is(x0)); | |
1997 switch (instr->hydrogen()->major_key()) { | |
1998 case CodeStub::RegExpExec: { | |
1999 RegExpExecStub stub(isolate()); | |
2000 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
2001 break; | |
2002 } | |
2003 case CodeStub::SubString: { | |
2004 SubStringStub stub(isolate()); | |
2005 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
2006 break; | |
2007 } | |
2008 default: | |
2009 UNREACHABLE(); | |
2010 } | |
2011 RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta()); | |
2012 } | |
2013 | |
2014 | |
2015 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { | 1994 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { |
2016 GenerateOsrPrologue(); | 1995 GenerateOsrPrologue(); |
2017 } | 1996 } |
2018 | 1997 |
2019 | 1998 |
2020 void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) { | 1999 void LCodeGen::DoDeferredInstanceMigration(LCheckMaps* instr, Register object) { |
2021 Register temp = ToRegister(instr->temp()); | 2000 Register temp = ToRegister(instr->temp()); |
2022 { | 2001 { |
2023 PushSafepointRegistersScope scope(this); | 2002 PushSafepointRegistersScope scope(this); |
2024 __ Push(object); | 2003 __ Push(object); |
(...skipping 3715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5740 Handle<ScopeInfo> scope_info = instr->scope_info(); | 5719 Handle<ScopeInfo> scope_info = instr->scope_info(); |
5741 __ Push(scope_info); | 5720 __ Push(scope_info); |
5742 __ Push(ToRegister(instr->function())); | 5721 __ Push(ToRegister(instr->function())); |
5743 CallRuntime(Runtime::kPushBlockContext, instr); | 5722 CallRuntime(Runtime::kPushBlockContext, instr); |
5744 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5723 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5745 } | 5724 } |
5746 | 5725 |
5747 | 5726 |
5748 } // namespace internal | 5727 } // namespace internal |
5749 } // namespace v8 | 5728 } // namespace v8 |
OLD | NEW |