Mercurial > hg > graal-compiler
changeset 22963:5914ee946cf7
[SPARC] Move of 32 bits between fp and gp registers via StackSlot as the latency is shorter
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Tue, 10 Nov 2015 16:08:21 +0100 |
parents | d710cf41f9a0 |
children | 4a0c4d0e75fa |
files | graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCArithmeticLIRGenerator.java |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCArithmeticLIRGenerator.java Tue Nov 10 11:47:54 2015 +0100 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCArithmeticLIRGenerator.java Tue Nov 10 16:08:21 2015 +0100 @@ -592,7 +592,9 @@ private void moveBetweenFpGp(AllocatableValue dst, AllocatableValue src) { AllocatableValue tempSlot; - if (getLIRGen().getArchitecture().getFeatures().contains(CPUFeature.VIS3)) { + PlatformKind dstKind = dst.getPlatformKind(); + PlatformKind srcKind = src.getPlatformKind(); + if (getLIRGen().getArchitecture().getFeatures().contains(CPUFeature.VIS3) && !(srcKind == WORD && dstKind == SINGLE) && !(srcKind == SINGLE && dstKind == WORD)) { tempSlot = AllocatableValue.ILLEGAL; } else { tempSlot = getTempSlot(LIRKind.value(XWORD));