Mercurial > hg > truffle
changeset 17090:2e7b0bb73f2f
[SPARC] get rid of VIS3
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Tue, 09 Sep 2014 17:02:24 -0700 |
parents | 245c1ceb8221 |
children | bd26b71aa5fc |
files | graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java Tue Sep 09 15:50:47 2014 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java Tue Sep 09 17:02:24 2014 -0700 @@ -59,11 +59,15 @@ */ new Mov(l7, thread).emit(masm); + SPARCAddress lastJavaPc = new SPARCAddress(thread, threadLastJavaPcOffset); + + // We borrow the threads lastJavaPC to transfer the value from float to i0 + new Stdf(SPARCSaveRegistersOp.RETURN_REGISTER_STORAGE, lastJavaPc).emit(masm); + new Ldx(lastJavaPc, i0).emit(masm); + // Clear last Java frame values. + new Stx(g0, lastJavaPc).emit(masm); new Stx(g0, new SPARCAddress(thread, threadLastJavaSpOffset)).emit(masm); - new Stx(g0, new SPARCAddress(thread, threadLastJavaPcOffset)).emit(masm); new Stw(g0, new SPARCAddress(thread, threadJavaFrameAnchorFlagsOffset)).emit(masm); - - new Movdtox(SPARCSaveRegistersOp.RETURN_REGISTER_STORAGE, i0).emit(masm); } }