Mercurial > hg > graal-jvmci-8
changeset 17104:b0146ab5b55f
[SPARC] Can now configure different prefetch modes
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Fri, 12 Sep 2014 12:55:49 -0700 |
parents | 69d8f4e45ee2 |
children | 0a21f24f9a65 |
files | graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java |
diffstat | 2 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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); } }