changeset 16703:fc9d2d081995

Merge.
author David Piorkowski <david.piorkowski@oracle.com>
date Tue, 05 Aug 2014 16:35:28 -0700
parents 2a5ec181dad4 (current diff) 86a687ee6bf8 (diff)
children 3cd605c98060
files
diffstat 2 files changed, 27 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultIndirectCallNode.java	Tue Aug 05 16:34:08 2014 -0700
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultIndirectCallNode.java	Tue Aug 05 16:35:28 2014 -0700
@@ -32,10 +32,32 @@
  * This is runtime specific API. Do not use in a guest language.
  */
 final class DefaultIndirectCallNode extends IndirectCallNode {
+    @Override
+    public Object call(final VirtualFrame frame, final CallTarget target, Object[] arguments) {
+        DefaultTruffleRuntime truffleRuntime = (DefaultTruffleRuntime) Truffle.getRuntime();
+        final CallTarget currentCallTarget = truffleRuntime.getCurrentFrame().getCallTarget();
+        FrameInstance frameInstance = new FrameInstance() {
+            public Frame getFrame(FrameAccess access, boolean slowPath) {
+                return frame;
+            }
 
-    @Override
-    public Object call(VirtualFrame frame, CallTarget target, Object[] arguments) {
-        return target.call(arguments);
+            public boolean isVirtualFrame() {
+                return false;
+            }
+
+            public Node getCallNode() {
+                return DefaultIndirectCallNode.this;
+            }
+
+            public CallTarget getCallTarget() {
+                return currentCallTarget;
+            }
+        };
+        truffleRuntime.pushFrame(frameInstance);
+        try {
+            return target.call(arguments);
+        } finally {
+            truffleRuntime.popFrame();
+        }
     }
-
 }
--- a/mx/mx_graal.py	Tue Aug 05 16:34:08 2014 -0700
+++ b/mx/mx_graal.py	Tue Aug 05 16:35:28 2014 -0700
@@ -1545,6 +1545,7 @@
     """install Truffle into your local Maven repository"""
     mx.archive(["@TRUFFLE"])
     mx.run(['mvn', 'install:install-file', '-DgroupId=com.oracle', '-DartifactId=truffle', '-Dversion=' + graal_version('SNAPSHOT'), '-Dpackaging=jar', '-Dfile=build/truffle.jar'])
+    mx.archive(["@TRUFFLE-DSL-PROCESSOR"])
     mx.run(['mvn', 'install:install-file', '-DgroupId=com.oracle', '-DartifactId=truffle-dsl-processor', '-Dversion=' + graal_version('SNAPSHOT'), '-Dpackaging=jar', '-Dfile=build/truffle-dsl-processor.jar'])
 
 def c1visualizer(args):