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

Unified Diff: runtime/vm/flow_graph_compiler_x64.cc

Issue 11086044: Remove support for optimized dart leaf functions. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 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/flow_graph_compiler_x64.h ('k') | runtime/vm/flow_graph_optimizer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_x64.cc
===================================================================
--- runtime/vm/flow_graph_compiler_x64.cc (revision 13457)
+++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
@@ -43,21 +43,6 @@
ASSERT(deoptimization_env() != NULL);
- if (compiler->IsLeaf()) {
- __ Comment("Leaf method, lazy PC marker setup");
- // TODO(srdjan): Can we use TMP instead of RAX? We must guarantee that
- // TMP is never part of deoptimization environment.
- __ pushq(RAX); // Preserve RAX.
- Label L;
- __ call(&L);
- const intptr_t offset = assem->CodeSize();
- __ Bind(&L);
- __ popq(RAX);
- __ subq(RAX,
- Immediate(offset - AssemblerMacros::kOffsetOfSavedPCfromEntrypoint));
- __ movq(Address(RBP, -kWordSize), RAX);
- __ popq(RAX); // Restore RAX.
- }
__ call(&StubCode::DeoptimizeLabel());
set_pc_offset(assem->CodeSize());
__ int3();
@@ -831,7 +816,6 @@
Isolate::kNoDeoptId,
0); // No token position.
} else {
- ASSERT(!IsLeaf());
// Invoke noSuchMethod function.
const int kNumArgsChecked = 1;
ICData& ic_data = ICData::ZoneHandle();
@@ -940,11 +924,7 @@
const int num_copied_params = parsed_function().num_copied_params();
const int num_locals = parsed_function().num_stack_locals();
__ Comment("Enter frame");
- if (IsLeaf()) {
- AssemblerMacros::EnterDartLeafFrame(assembler(), (StackSize() * kWordSize));
- } else {
- AssemblerMacros::EnterDartFrame(assembler(), (StackSize() * kWordSize));
- }
+ AssemblerMacros::EnterDartFrame(assembler(), (StackSize() * kWordSize));
// For optimized code, keep a bitmap of the frame in order to build
// stackmaps for GC safepoints in the prologue.
@@ -1049,7 +1029,6 @@
const ExternalLabel* label,
PcDescriptors::Kind kind,
LocationSummary* locs) {
- ASSERT(!IsLeaf());
__ call(label);
AddCurrentDescriptor(kind, Isolate::kNoDeoptId, token_pos);
RecordSafepoint(locs);
@@ -1061,7 +1040,6 @@
const ExternalLabel* label,
PcDescriptors::Kind kind,
LocationSummary* locs) {
- ASSERT(!IsLeaf());
__ call(label);
AddCurrentDescriptor(kind, deopt_id, token_pos);
RecordSafepoint(locs);
@@ -1082,7 +1060,6 @@
void FlowGraphCompiler::GenerateCallRuntime(intptr_t token_pos,
const RuntimeEntry& entry,
LocationSummary* locs) {
- ASSERT(!IsLeaf());
__ CallRuntime(entry);
AddCurrentDescriptor(PcDescriptors::kOther, Isolate::kNoDeoptId, token_pos);
RecordSafepoint(locs);
@@ -1096,7 +1073,6 @@
intptr_t deopt_id,
intptr_t token_pos,
LocationSummary* locs) {
- ASSERT(!IsLeaf());
__ LoadObject(RBX, ic_data);
__ LoadObject(R10, arguments_descriptor);
GenerateDartCall(deopt_id,
@@ -1114,7 +1090,6 @@
intptr_t deopt_id,
intptr_t token_pos,
LocationSummary* locs) {
- ASSERT(!IsLeaf());
__ LoadObject(RBX, function);
__ LoadObject(R10, arguments_descriptor);
if (function.HasCode()) {
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.h ('k') | runtime/vm/flow_graph_optimizer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698