# HG changeset patch # User Stefan Anzinger # Date 1410551749 25200 # Node ID b0146ab5b55fccee29146b14b4f9556bd8321359 # Parent 69d8f4e45ee235dd0454275006d4a5f9604cf508 [SPARC] Can now configure different prefetch modes diff -r 69d8f4e45ee2 -r b0146ab5b55f graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java --- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Fri Sep 12 12:54:06 2014 -0700 +++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Fri Sep 12 12:55:49 2014 -0700 @@ -3297,6 +3297,13 @@ } } + public static class Fsqrts extends Fmt3p { + + public Fsqrts(Register src2, Register dst) { + super(Ops.ArithOp, Op3s.Fpop1, Opfs.Fsqrts, SPARC.r0, src2, dst); + } + } + public static class Fsrc1d extends Fmt3p { public Fsrc1d(Register src1, Register dst) { @@ -3755,11 +3762,16 @@ public static class Prefetch extends Fmt11 { public enum Fcn { - SeveralReads(0), + SeveralWritesAndPossiblyReads(2), + SeveralReadsWeak(0), OneRead(1), - SeveralWritesAndPossiblyReads(2), OneWrite(3), - Page(4); + Page(4), + NearestUnifiedCache(17), + SeveralReadsStrong(20), + OneReadStrong(21), + SeveralWritesAndPossiblyReadsStrong(22), + OneWriteStrong(23); private final int value; diff -r 69d8f4e45ee2 -r b0146ab5b55f graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java Fri Sep 12 12:54:06 2014 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java Fri Sep 12 12:55:49 2014 -0700 @@ -42,7 +42,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { - assert instr == 0 : "only supported value is 0"; - new Prefetch(address.toAddress(), Prefetch.Fcn.SeveralWritesAndPossiblyReads).emit(masm); + assert instr >= 0 && instr < Prefetch.Fcn.values().length : instr; + new Prefetch(address.toAddress(), Prefetch.Fcn.values()[instr]).emit(masm); } }