# HG changeset patch # User Stefan Anzinger # Date 1410307344 25200 # Node ID 2e7b0bb73f2fc1013a9796e95426ef2443e677f6 # Parent 245c1ceb822128abdfec556ed8e873ac0bc4374f [SPARC] get rid of VIS3 diff -r 245c1ceb8221 -r 2e7b0bb73f2f graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java --- 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); } }