changeset 10963:af543b1e42b7

provide default (from AMD64) implementation for abstract PTX and HSAIL FrameMap methods
author twisti
date Sun, 04 Aug 2013 11:54:55 -0700
parents ebaef68b38f9
children 9024b2eb8434
files graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILFrameMap.java graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXFrameMap.java
diffstat 2 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILFrameMap.java	Sun Aug 04 11:29:03 2013 -0700
+++ b/graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILFrameMap.java	Sun Aug 04 11:54:55 2013 -0700
@@ -24,7 +24,6 @@
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
-import com.oracle.graal.graph.*;
 import com.oracle.graal.lir.*;
 
 /**
@@ -33,7 +32,7 @@
  * This is the format of a HSAIL stack frame:
  * 
  * <pre>
- * TODO
+ * TODO stack frame layout
  * </pre>
  */
 public final class HSAILFrameMap extends FrameMap {
@@ -44,17 +43,21 @@
 
     @Override
     public int totalFrameSize() {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        return frameSize() + returnAddressSize();
     }
 
     @Override
     public int currentFrameSize() {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        return alignFrameSize(outgoingSize + spillSize - returnAddressSize());
     }
 
     @Override
     protected int alignFrameSize(int size) {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        int x = size + returnAddressSize() + (target.stackAlignment - 1);
+        return (x / target.stackAlignment) * target.stackAlignment - returnAddressSize();
     }
 
     @Override
--- a/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXFrameMap.java	Sun Aug 04 11:29:03 2013 -0700
+++ b/graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXFrameMap.java	Sun Aug 04 11:54:55 2013 -0700
@@ -24,7 +24,6 @@
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
-import com.oracle.graal.graph.*;
 import com.oracle.graal.lir.*;
 
 /**
@@ -33,7 +32,7 @@
  * This is the format of a PTX stack frame:
  * 
  * <pre>
- * TODO
+ * TODO stack frame layout
  * </pre>
  */
 public final class PTXFrameMap extends FrameMap {
@@ -44,17 +43,21 @@
 
     @Override
     public int totalFrameSize() {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        return frameSize() + returnAddressSize();
     }
 
     @Override
     public int currentFrameSize() {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        return alignFrameSize(outgoingSize + spillSize - returnAddressSize());
     }
 
     @Override
     protected int alignFrameSize(int size) {
-        throw GraalInternalError.unimplemented();
+        // FIXME this is amd64 code
+        int x = size + returnAddressSize() + (target.stackAlignment - 1);
+        return (x / target.stackAlignment) * target.stackAlignment - returnAddressSize();
     }
 
     @Override