diff src/share/vm/c1x/c1x_CodeInstaller.cpp @ 2049:7e09ea4a8f36

Added leaf method assumptions.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Mon, 10 Jan 2011 16:59:48 +0100
parents 177398c6147d
children b6d2c238e585
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_CodeInstaller.cpp	Mon Jan 10 10:50:22 2011 +0100
+++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp	Mon Jan 10 16:59:48 2011 +0100
@@ -313,7 +313,17 @@
 }
 
 void CodeInstaller::assumption_ConcreteMethod(oop assumption) {
-  fatal("unimplemented");
+  oop context_oop = CiAssumptions_ConcreteMethod::context(assumption);
+  oop method_oop = CiAssumptions_ConcreteMethod::method(assumption);
+  jlong context_oop_id = HotSpotMethodResolved::vmId(context_oop);
+  jlong method_oop_id = HotSpotMethodResolved::vmId(method_oop);
+  methodOop method = VmIds::get<methodOop>(method_oop_id);
+  methodOop context = VmIds::get<methodOop>(context_oop_id);
+
+  ciMethod* m = (ciMethod*) CURRENT_ENV->get_object(method);
+  ciMethod* c = (ciMethod*) CURRENT_ENV->get_object(context);
+  ciKlass* context_klass = c->holder();
+  _dependencies->assert_unique_concrete_method(context_klass, m);
 }
 
 void CodeInstaller::process_exception_handlers() {