diff graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java @ 12529:23dc5dfdb9c7

Add OptimizedCallTarget.call(PackedFrame, Arguments) frame prologue injection
author Matthias Grimmer <grimmer@ssw.jku.at>
date Tue, 22 Oct 2013 13:25:37 +0200
parents 1a4dc163cd0a
children 7d5c3ffbee64
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java	Tue Oct 22 13:24:43 2013 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java	Tue Oct 22 13:25:37 2013 +0200
@@ -75,6 +75,14 @@
     }
 
     private Object callHelper(PackedFrame caller, Arguments args) {
+        if (compiledMethod != null && compiledMethod.isValid()) {
+            TruffleRuntime runtime = Truffle.getRuntime();
+            if (runtime instanceof GraalTruffleRuntime) {
+                OUT.printf("[truffle] reinstall OptimizedCallTarget.call code with frame prolog shortcut.");
+                OUT.println();
+                ((GraalTruffleRuntime) runtime).installOptimizedCallTargetCallMethod();
+            }
+        }
         if (TruffleCallTargetProfiling.getValue()) {
             callCount++;
         }