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

Unified Diff: runtime/vm/intermediate_language_arm64.cc

Issue 365983002: Make isolate specific stub code accessors instance methods instead (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 6 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language_arm.cc ('k') | runtime/vm/intermediate_language_ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_arm64.cc
===================================================================
--- runtime/vm/intermediate_language_arm64.cc (revision 37923)
+++ runtime/vm/intermediate_language_arm64.cc (working copy)
@@ -773,9 +773,10 @@
const intptr_t argc_tag = NativeArguments::ComputeArgcTag(function());
const bool is_leaf_call =
(argc_tag & NativeArguments::AutoSetupScopeMask()) == 0;
+ StubCode* stub_code = compiler->isolate()->stub_code();
const ExternalLabel* stub_entry;
if (is_bootstrap_native() || is_leaf_call) {
- stub_entry = &StubCode::CallBootstrapCFunctionLabel();
+ stub_entry = &stub_code->CallBootstrapCFunctionLabel();
#if defined(USING_SIMULATOR)
entry = Simulator::RedirectExternalReference(
entry, Simulator::kBootstrapNativeCall, function().NumParameters());
@@ -784,7 +785,7 @@
// In the case of non bootstrap native methods the CallNativeCFunction
// stub generates the redirection address when running under the simulator
// and hence we do not change 'entry' here.
- stub_entry = &StubCode::CallNativeCFunctionLabel();
+ stub_entry = &stub_code->CallNativeCFunctionLabel();
#if defined(USING_SIMULATOR)
if (!function().IsNativeAutoSetupScope()) {
entry = Simulator::RedirectExternalReference(
@@ -1606,11 +1607,14 @@
: instruction_(instruction), cls_(cls) { }
virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
+
__ Comment("StoreInstanceFieldSlowPath");
__ Bind(entry_label());
const Code& stub =
- Code::Handle(StubCode::GetAllocationStubForClass(cls_));
+ Code::Handle(isolate, stub_code->GetAllocationStubForClass(cls_));
const ExternalLabel label(stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
@@ -1962,8 +1966,9 @@
// Allocate the array. R2 = length, R1 = element type.
ASSERT(locs()->in(kElementTypePos).reg() == R1);
ASSERT(locs()->in(kLengthPos).reg() == R2);
+ StubCode* stub_code = compiler->isolate()->stub_code();
compiler->GenerateCall(token_pos(),
- &StubCode::AllocateArrayLabel(),
+ &stub_code->AllocateArrayLabel(),
PcDescriptors::kOther,
locs());
ASSERT(locs()->out(0).reg() == R0);
@@ -1978,9 +1983,12 @@
virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
__ Comment("BoxDoubleSlowPath");
__ Bind(entry_label());
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
const Class& double_class = compiler->double_class();
const Code& stub =
- Code::Handle(StubCode::GetAllocationStubForClass(double_class));
+ Code::Handle(isolate,
+ stub_code->GetAllocationStubForClass(double_class));
const ExternalLabel label(stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
@@ -2010,9 +2018,12 @@
virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
__ Comment("BoxFloat32x4SlowPath");
__ Bind(entry_label());
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
const Class& float32x4_class = compiler->float32x4_class();
const Code& stub =
- Code::Handle(StubCode::GetAllocationStubForClass(float32x4_class));
+ Code::Handle(isolate,
+ stub_code->GetAllocationStubForClass(float32x4_class));
const ExternalLabel label(stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
@@ -2042,9 +2053,12 @@
virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
__ Comment("BoxFloat64x2SlowPath");
__ Bind(entry_label());
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
const Class& float64x2_class = compiler->float64x2_class();
const Code& stub =
- Code::Handle(StubCode::GetAllocationStubForClass(float64x2_class));
+ Code::Handle(isolate,
+ stub_code->GetAllocationStubForClass(float64x2_class));
const ExternalLabel label(stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
@@ -2326,7 +2340,8 @@
ASSERT(locs()->out(0).reg() == R0);
__ LoadImmediate(R1, num_context_variables(), PP);
- const ExternalLabel label(StubCode::AllocateContextEntryPoint());
+ StubCode* stub_code = compiler->isolate()->stub_code();
+ const ExternalLabel label(stub_code->AllocateContextEntryPoint());
compiler->GenerateCall(token_pos(),
&label,
PcDescriptors::kOther,
@@ -3197,9 +3212,12 @@
virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
__ Comment("BoxInt32x4SlowPath");
__ Bind(entry_label());
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
const Class& int32x4_class = compiler->int32x4_class();
const Code& stub =
- Code::Handle(StubCode::GetAllocationStubForClass(int32x4_class));
+ Code::Handle(isolate,
+ stub_code->GetAllocationStubForClass(int32x4_class));
const ExternalLabel label(stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
@@ -5332,7 +5350,10 @@
void AllocateObjectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- const Code& stub = Code::Handle(StubCode::GetAllocationStubForClass(cls()));
+ Isolate* isolate = compiler->isolate();
+ StubCode* stub_code = isolate->stub_code();
+ const Code& stub = Code::Handle(isolate,
+ stub_code->GetAllocationStubForClass(cls()));
const ExternalLabel label(stub.EntryPoint());
compiler->GenerateCall(token_pos(),
&label,
@@ -5344,7 +5365,8 @@
void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(!compiler->is_optimizing());
- const ExternalLabel label(StubCode::DebugStepCheckEntryPoint());
+ StubCode* stub_code = compiler->isolate()->stub_code();
+ const ExternalLabel label(stub_code->DebugStepCheckEntryPoint());
__ LoadImmediate(R4, 0, kNoPP);
__ LoadImmediate(R5, 0, kNoPP);
compiler->GenerateCall(token_pos(), &label, stub_kind_, locs());
« no previous file with comments | « runtime/vm/intermediate_language_arm.cc ('k') | runtime/vm/intermediate_language_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698