| 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 2228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2239 2, | 2239 2, |
| 2240 locs()); | 2240 locs()); |
| 2241 __ Drop(2); | 2241 __ Drop(2); |
| 2242 __ Pop(kResultReg); | 2242 __ Pop(kResultReg); |
| 2243 __ Bind(&done); | 2243 __ Bind(&done); |
| 2244 return; | 2244 return; |
| 2245 } | 2245 } |
| 2246 } | 2246 } |
| 2247 | 2247 |
| 2248 __ Bind(&slow_path); | 2248 __ Bind(&slow_path); |
| 2249 const Code& stub = Code::Handle(compiler->isolate(), |
| 2250 StubCode::AllocateArray_entry()->code()); |
| 2251 compiler->AddStubCallTarget(stub); |
| 2249 compiler->GenerateCall(token_pos(), | 2252 compiler->GenerateCall(token_pos(), |
| 2250 *StubCode::AllocateArray_entry(), | 2253 *StubCode::AllocateArray_entry(), |
| 2251 RawPcDescriptors::kOther, | 2254 RawPcDescriptors::kOther, |
| 2252 locs()); | 2255 locs()); |
| 2253 __ Bind(&done); | 2256 __ Bind(&done); |
| 2254 ASSERT(locs()->out(0).reg() == kResultReg); | 2257 ASSERT(locs()->out(0).reg() == kResultReg); |
| 2255 } | 2258 } |
| 2256 | 2259 |
| 2257 | 2260 |
| 2258 LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, | 2261 LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2488 virtual void EmitNativeCode(FlowGraphCompiler* compiler) { | 2491 virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
| 2489 __ Comment("AllocateContextSlowPath"); | 2492 __ Comment("AllocateContextSlowPath"); |
| 2490 __ Bind(entry_label()); | 2493 __ Bind(entry_label()); |
| 2491 | 2494 |
| 2492 LocationSummary* locs = instruction_->locs(); | 2495 LocationSummary* locs = instruction_->locs(); |
| 2493 locs->live_registers()->Remove(locs->out(0)); | 2496 locs->live_registers()->Remove(locs->out(0)); |
| 2494 | 2497 |
| 2495 compiler->SaveLiveRegisters(locs); | 2498 compiler->SaveLiveRegisters(locs); |
| 2496 | 2499 |
| 2497 __ LoadImmediate(T1, instruction_->num_context_variables()); | 2500 __ LoadImmediate(T1, instruction_->num_context_variables()); |
| 2501 const Code& stub = Code::Handle(compiler->isolate(), |
| 2502 StubCode::AllocateContext_entry()->code()); |
| 2503 compiler->AddStubCallTarget(stub); |
| 2498 compiler->GenerateCall(instruction_->token_pos(), | 2504 compiler->GenerateCall(instruction_->token_pos(), |
| 2499 *StubCode::AllocateContext_entry(), | 2505 *StubCode::AllocateContext_entry(), |
| 2500 RawPcDescriptors::kOther, | 2506 RawPcDescriptors::kOther, |
| 2501 locs); | 2507 locs); |
| 2502 ASSERT(instruction_->locs()->out(0).reg() == V0); | 2508 ASSERT(instruction_->locs()->out(0).reg() == V0); |
| 2503 compiler->RestoreLiveRegisters(instruction_->locs()); | 2509 compiler->RestoreLiveRegisters(instruction_->locs()); |
| 2504 __ b(exit_label()); | 2510 __ b(exit_label()); |
| 2505 } | 2511 } |
| 2506 | 2512 |
| 2507 private: | 2513 private: |
| (...skipping 3077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5585 1, | 5591 1, |
| 5586 locs()); | 5592 locs()); |
| 5587 __ lw(result, Address(SP, 1 * kWordSize)); | 5593 __ lw(result, Address(SP, 1 * kWordSize)); |
| 5588 __ addiu(SP, SP, Immediate(2 * kWordSize)); | 5594 __ addiu(SP, SP, Immediate(2 * kWordSize)); |
| 5589 } | 5595 } |
| 5590 | 5596 |
| 5591 | 5597 |
| 5592 } // namespace dart | 5598 } // namespace dart |
| 5593 | 5599 |
| 5594 #endif // defined TARGET_ARCH_MIPS | 5600 #endif // defined TARGET_ARCH_MIPS |
| OLD | NEW |