OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. |
6 #if defined(TARGET_ARCH_MIPS) | 6 #if defined(TARGET_ARCH_MIPS) |
7 | 7 |
8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
9 | 9 |
10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
(...skipping 2090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2101 | 2101 |
2102 __ Bind(&slow_path); | 2102 __ Bind(&slow_path); |
2103 Isolate* isolate = compiler->isolate(); | 2103 Isolate* isolate = compiler->isolate(); |
2104 const Code& stub = Code::Handle( | 2104 const Code& stub = Code::Handle( |
2105 isolate, isolate->stub_code()->GetAllocateArrayStub()); | 2105 isolate, isolate->stub_code()->GetAllocateArrayStub()); |
2106 const ExternalLabel label(stub.EntryPoint()); | 2106 const ExternalLabel label(stub.EntryPoint()); |
2107 compiler->GenerateCall(token_pos(), | 2107 compiler->GenerateCall(token_pos(), |
2108 &label, | 2108 &label, |
2109 RawPcDescriptors::kOther, | 2109 RawPcDescriptors::kOther, |
2110 locs()); | 2110 locs()); |
| 2111 compiler->AddStubCallTarget(stub); |
2111 __ Bind(&done); | 2112 __ Bind(&done); |
2112 ASSERT(locs()->out(0).reg() == kResultReg); | 2113 ASSERT(locs()->out(0).reg() == kResultReg); |
2113 } | 2114 } |
2114 | 2115 |
2115 | 2116 |
2116 LocationSummary* LoadFieldInstr::MakeLocationSummary(Isolate* isolate, | 2117 LocationSummary* LoadFieldInstr::MakeLocationSummary(Isolate* isolate, |
2117 bool opt) const { | 2118 bool opt) const { |
2118 const intptr_t kNumInputs = 1; | 2119 const intptr_t kNumInputs = 1; |
2119 const intptr_t kNumTemps = | 2120 const intptr_t kNumTemps = |
2120 (IsUnboxedLoad() && opt) ? 1 : | 2121 (IsUnboxedLoad() && opt) ? 1 : |
(...skipping 2790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4911 __ Comment("AllocateObjectInstr"); | 4912 __ Comment("AllocateObjectInstr"); |
4912 Isolate* isolate = compiler->isolate(); | 4913 Isolate* isolate = compiler->isolate(); |
4913 StubCode* stub_code = isolate->stub_code(); | 4914 StubCode* stub_code = isolate->stub_code(); |
4914 const Code& stub = Code::Handle(isolate, | 4915 const Code& stub = Code::Handle(isolate, |
4915 stub_code->GetAllocationStubForClass(cls())); | 4916 stub_code->GetAllocationStubForClass(cls())); |
4916 const ExternalLabel label(stub.EntryPoint()); | 4917 const ExternalLabel label(stub.EntryPoint()); |
4917 compiler->GenerateCall(token_pos(), | 4918 compiler->GenerateCall(token_pos(), |
4918 &label, | 4919 &label, |
4919 RawPcDescriptors::kOther, | 4920 RawPcDescriptors::kOther, |
4920 locs()); | 4921 locs()); |
| 4922 compiler->AddStubCallTarget(stub); |
4921 __ Drop(ArgumentCount()); // Discard arguments. | 4923 __ Drop(ArgumentCount()); // Discard arguments. |
4922 } | 4924 } |
4923 | 4925 |
4924 | 4926 |
4925 void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 4927 void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
4926 ASSERT(!compiler->is_optimizing()); | 4928 ASSERT(!compiler->is_optimizing()); |
4927 StubCode* stub_code = compiler->isolate()->stub_code(); | 4929 StubCode* stub_code = compiler->isolate()->stub_code(); |
4928 const ExternalLabel label(stub_code->DebugStepCheckEntryPoint()); | 4930 const ExternalLabel label(stub_code->DebugStepCheckEntryPoint()); |
4929 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); | 4931 compiler->GenerateCall(token_pos(), &label, stub_kind_, locs()); |
4930 #if defined(DEBUG) | 4932 #if defined(DEBUG) |
4931 __ LoadImmediate(S4, kInvalidObjectPointer); | 4933 __ LoadImmediate(S4, kInvalidObjectPointer); |
4932 __ LoadImmediate(S5, kInvalidObjectPointer); | 4934 __ LoadImmediate(S5, kInvalidObjectPointer); |
4933 #endif | 4935 #endif |
4934 } | 4936 } |
4935 | 4937 |
4936 } // namespace dart | 4938 } // namespace dart |
4937 | 4939 |
4938 #endif // defined TARGET_ARCH_MIPS | 4940 #endif // defined TARGET_ARCH_MIPS |
OLD | NEW |