# HG changeset patch # User Stefan Anzinger # Date 1410967305 25200 # Node ID 60844c15ab277afab6fdc2c11b9f7bf13aa994b3 # Parent be9c24f5fa2bf4e684143cbce5b9750da872e61b [SPARC] Add nop again otherwise the information on pc is not unique diff -r be9c24f5fa2b -r 60844c15ab27 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java Tue Sep 16 17:49:43 2014 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java Wed Sep 17 08:21:45 2014 -0700 @@ -32,6 +32,7 @@ import com.oracle.graal.asm.sparc.SPARCAssembler.Call; import com.oracle.graal.asm.sparc.SPARCAssembler.Jmpl; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Jmp; +import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Nop; import com.oracle.graal.asm.sparc.SPARCMacroAssembler.Sethix; import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; @@ -159,27 +160,30 @@ } else { new Call(0).emit(masm); } - masm.ensureUniquePC(); + new Nop().emit(masm); // delay slot int after = masm.position(); crb.recordDirectCall(before, after, callTarget, info); crb.recordExceptionHandlers(after, info); + masm.ensureUniquePC(); } public static void indirectJmp(CompilationResultBuilder crb, SPARCMacroAssembler masm, Register dst, InvokeTarget target) { int before = masm.position(); new Sethix(0L, dst, true).emit(masm); new Jmp(new SPARCAddress(dst, 0)).emit(masm); - masm.ensureUniquePC(); + new Nop().emit(masm); // delay slot int after = masm.position(); crb.recordIndirectCall(before, after, target, null); + masm.ensureUniquePC(); } public static void indirectCall(CompilationResultBuilder crb, SPARCMacroAssembler masm, Register dst, InvokeTarget callTarget, LIRFrameState info) { int before = masm.position(); new Jmpl(dst, 0, o7).emit(masm); - masm.ensureUniquePC(); + new Nop().emit(masm); // delay slot int after = masm.position(); crb.recordIndirectCall(before, after, callTarget, info); crb.recordExceptionHandlers(after, info); + masm.ensureUniquePC(); } }