# HG changeset patch # User twisti # Date 1375642495 25200 # Node ID af543b1e42b7159b8ecfc79a882117dfb092d7a9 # Parent ebaef68b38f95bd6662193d9e9c1901c92064dbb provide default (from AMD64) implementation for abstract PTX and HSAIL FrameMap methods diff -r ebaef68b38f9 -r af543b1e42b7 graal/com.oracle.graal.lir.hsail/src/com/oracle/graal/lir/hsail/HSAILFrameMap.java --- 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: * *
- * TODO
+ * TODO stack frame layout
  * 
*/ 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 diff -r ebaef68b38f9 -r af543b1e42b7 graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXFrameMap.java --- 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: * *
- * TODO
+ * TODO stack frame layout
  * 
*/ 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