# HG changeset patch # User Erik Eckstein # Date 1395824677 -3600 # Node ID 164903a50a9a6d9dd12edb69496d5f5885c45115 # Parent b5cdbf6d793af9d60b45312a1cd60cee18830252 make ensureUniquePC an abstract method of the base Assembler class diff -r b5cdbf6d793a -r 164903a50a9a graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java --- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Tue Mar 25 16:37:28 2014 -0700 +++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Wed Mar 26 10:04:37 2014 +0100 @@ -1213,6 +1213,7 @@ emitByte(0xD0 | encode); } + @Override public final void ensureUniquePC() { nop(); } diff -r b5cdbf6d793a -r 164903a50a9a graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java --- a/graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java Tue Mar 25 16:37:28 2014 -0700 +++ b/graal/com.oracle.graal.asm.hsail/src/com/oracle/graal/asm/hsail/HSAILAssembler.java Wed Mar 26 10:04:37 2014 +0100 @@ -68,6 +68,11 @@ return null; } + @Override + public final void ensureUniquePC() { + throw GraalInternalError.unimplemented(); + } + public final void undefined(String str) { emitString("undefined operation " + str); } diff -r b5cdbf6d793a -r 164903a50a9a graal/com.oracle.graal.asm.ptx/src/com/oracle/graal/asm/ptx/PTXAssembler.java --- a/graal/com.oracle.graal.asm.ptx/src/com/oracle/graal/asm/ptx/PTXAssembler.java Tue Mar 25 16:37:28 2014 -0700 +++ b/graal/com.oracle.graal.asm.ptx/src/com/oracle/graal/asm/ptx/PTXAssembler.java Wed Mar 26 10:04:37 2014 +0100 @@ -696,6 +696,11 @@ } @Override + public final void ensureUniquePC() { + throw GraalInternalError.unimplemented(); + } + + @Override public void jmp(Label l) { String str = nameOf(l); bra(str); diff -r b5cdbf6d793a -r 164903a50a9a graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java --- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java Tue Mar 25 16:37:28 2014 -0700 +++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java Wed Mar 26 10:04:37 2014 +0100 @@ -74,6 +74,7 @@ return Placeholder; } + @Override public final void ensureUniquePC() { new Nop().emit(this); } diff -r b5cdbf6d793a -r 164903a50a9a graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java --- a/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java Tue Mar 25 16:37:28 2014 -0700 +++ b/graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java Wed Mar 26 10:04:37 2014 +0100 @@ -183,4 +183,9 @@ * Returns a target specific placeholder address that can be used for code patching. */ public abstract AbstractAddress getPlaceholder(); + + /** + * Emits a NOP instruction to advance the current PC. + */ + public abstract void ensureUniquePC(); }