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

Unified Diff: runtime/vm/flow_graph_compiler_x64.cc

Issue 10381045: Improve type checking, remove unused stub (removed also in x64 in preparation of porting the better… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 7 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
Index: runtime/vm/flow_graph_compiler_x64.cc
===================================================================
--- runtime/vm/flow_graph_compiler_x64.cc (revision 7391)
+++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
@@ -158,12 +158,8 @@
__ movq(R10, FieldAddress(RAX, Object::class_offset()));
__ cmpq(R10, RCX);
__ j(EQUAL, is_instance);
- // RAX, RCX, and RDX are preserved in stub, result is in RBX.
- __ call(&StubCode::IsRawSubTypeLabel());
- // Result in RBX: 1 is raw subtype.
- __ cmpq(RBX, Immediate(1));
- __ j(EQUAL, is_instance);
- // Otherwise fall through to runtime call.
+ // TODO(srdjan): Finish implementation.
+ // Otherwise fall through to runtime call.
} else {
// However, for specific core library interfaces, we can check for
// specific core library classes.
@@ -216,15 +212,7 @@
__ cmpq(RCX, raw_null);
__ j(NOT_EQUAL, is_instance);
} else {
- __ LoadObject(RCX, type_class);
- // RAX: Instance (preserved).
- // RCX: test class (preserved).
- // RDX: instantiator type arguments (preserved).
- __ call(&StubCode::IsRawSubTypeLabel());
- // Result in RBX: 1 is raw subtype.
- __ cmpq(RBX, Immediate(1));
- __ j(EQUAL, is_instance);
- // Otherwise fallthrough to runtime call.
+ // TODO(srdjan): Finish implementation.
}
}
}
@@ -267,12 +255,7 @@
// Check that class of type has no type parameters.
__ cmpq(R10, raw_null);
__ j(NOT_EQUAL, &runtime_call, Assembler::kNearJump);
- // We have a non-parameterized class in RCX, compare with class of
- // value in RAX. RAX, RCX, and RDX are preserved in stub.
- __ call(&StubCode::IsRawSubTypeLabel());
- // Result in EBX: 1 is raw subtype.
- __ cmpq(RBX, Immediate(1));
- __ j(EQUAL, is_instance);
+ // TODO(srdjan): Implement subtype test cache.
// Fall through to runtime call.
}
}

Powered by Google App Engine
This is Rietveld 408576698