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

Side by Side Diff: runtime/vm/flow_graph_compiler_mips.cc

Issue 13473010: Adds native/leaf runtime call stub and redirection on MIPS. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/flow_graph_compiler.h" 8 #include "vm/flow_graph_compiler.h"
9 9
10 #include "lib/error.h" 10 #include "lib/error.h"
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 } 245 }
246 } else { 246 } else {
247 AddCurrentDescriptor(PcDescriptors::kEntryPatch, 247 AddCurrentDescriptor(PcDescriptors::kEntryPatch,
248 Isolate::kNoDeoptId, 248 Isolate::kNoDeoptId,
249 0); // No token position. 249 0); // No token position.
250 } 250 }
251 __ Comment("Enter frame"); 251 __ Comment("Enter frame");
252 __ EnterDartFrame((StackSize() * kWordSize)); 252 __ EnterDartFrame((StackSize() * kWordSize));
253 } 253 }
254 254
255
255 // Input parameters: 256 // Input parameters:
256 // RA: return address. 257 // RA: return address.
257 // SP: address of last argument. 258 // SP: address of last argument.
258 // FP: caller's frame pointer. 259 // FP: caller's frame pointer.
259 // PP: caller's pool pointer. 260 // PP: caller's pool pointer.
260 // S5: ic-data. 261 // S5: ic-data.
261 // S4: arguments descriptor array. 262 // S4: arguments descriptor array.
262 void FlowGraphCompiler::CompileGraph() { 263 void FlowGraphCompiler::CompileGraph() {
263 InitCompiler(); 264 InitCompiler();
264 if (TryIntrinsify()) { 265 if (TryIntrinsify()) {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 Isolate::kNoDeoptId, 398 Isolate::kNoDeoptId,
398 0); // No token position. 399 0); // No token position.
399 __ Branch(&StubCode::DeoptimizeLazyLabel()); 400 __ Branch(&StubCode::DeoptimizeLazyLabel());
400 } 401 }
401 402
402 403
403 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, 404 void FlowGraphCompiler::GenerateCall(intptr_t token_pos,
404 const ExternalLabel* label, 405 const ExternalLabel* label,
405 PcDescriptors::Kind kind, 406 PcDescriptors::Kind kind,
406 LocationSummary* locs) { 407 LocationSummary* locs) {
407 UNIMPLEMENTED(); 408 __ BranchLinkPatchable(label);
409 AddCurrentDescriptor(kind, Isolate::kNoDeoptId, token_pos);
410 RecordSafepoint(locs);
408 } 411 }
409 412
410 413
411 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id, 414 void FlowGraphCompiler::GenerateDartCall(intptr_t deopt_id,
412 intptr_t token_pos, 415 intptr_t token_pos,
413 const ExternalLabel* label, 416 const ExternalLabel* label,
414 PcDescriptors::Kind kind, 417 PcDescriptors::Kind kind,
415 LocationSummary* locs) { 418 LocationSummary* locs) {
416 __ BranchLinkPatchable(label); 419 __ BranchLinkPatchable(label);
417 AddCurrentDescriptor(kind, deopt_id, token_pos); 420 AddCurrentDescriptor(kind, deopt_id, token_pos);
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 668
666 669
667 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { 670 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) {
668 UNIMPLEMENTED(); 671 UNIMPLEMENTED();
669 } 672 }
670 673
671 674
672 } // namespace dart 675 } // namespace dart
673 676
674 #endif // defined TARGET_ARCH_MIPS 677 #endif // defined TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698