Mercurial > hg > graal-compiler
changeset 22825:c7753ef3467e
Update to latest jvmci version
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Thu Oct 15 11:58:34 2015 +0200 @@ -119,14 +119,14 @@ import static com.oracle.graal.asm.sparc.SPARCAssembler.Ops.ArithOp; import static com.oracle.graal.asm.sparc.SPARCAssembler.Ops.LdstOp; import static java.lang.String.format; -import static jdk.vm.ci.sparc.SPARC.INSTRUCTION_SIZE; +import static jdk.vm.ci.sparc.SPARC.CPU; +import static jdk.vm.ci.sparc.SPARC.FPUd; +import static jdk.vm.ci.sparc.SPARC.FPUs; import static jdk.vm.ci.sparc.SPARC.g0; -import static jdk.vm.ci.sparc.SPARC.isCPURegister; -import static jdk.vm.ci.sparc.SPARC.isDoubleFloatRegister; -import static jdk.vm.ci.sparc.SPARC.isSingleFloatRegister; -import static jdk.vm.ci.sparc.SPARC.r15; -import static jdk.vm.ci.sparc.SPARC.r2; -import static jdk.vm.ci.sparc.SPARC.r5; +import static jdk.vm.ci.sparc.SPARC.g2; +import static jdk.vm.ci.sparc.SPARC.g5; +import static jdk.vm.ci.sparc.SPARC.g7; +import static jdk.vm.ci.sparc.SPARC.o7; import java.util.ArrayList; import java.util.HashMap; @@ -163,6 +163,16 @@ super(target); } + /** + * Size of an SPARC assembler instruction in Bytes. + */ + public static final int INSTRUCTION_SIZE = 4; + + /** + * Size in bytes which are cleared by stxa %g0, [%rd] ASI_ST_BLKINIT_PRIMARY. + */ + public static final int BLOCK_ZERO_LENGTH = 64; + public static final int CCR_ICC_SHIFT = 0; public static final int CCR_XCC_SHIFT = 4; public static final int CCR_V_SHIFT = 1; @@ -621,7 +631,7 @@ } public static CC forKind(PlatformKind kind) { - if (kind.equals(SPARCKind.DWORD)) { + if (kind.equals(SPARCKind.XWORD)) { return Xcc; } else if (kind.equals(SPARCKind.WORD)) { return Icc; @@ -1630,6 +1640,31 @@ } } + public static boolean isCPURegister(Register... regs) { + for (Register reg : regs) { + if (!isCPURegister(reg)) { + return false; + } + } + return true; + } + + public static boolean isCPURegister(Register r) { + return r.getRegisterCategory().equals(CPU); + } + + public static boolean isGlobalRegister(Register r) { + return isCPURegister(r) && g0.number <= r.number && r.number <= g7.number; + } + + public static boolean isSingleFloatRegister(Register r) { + return r.getRegisterCategory().equals(FPUs); + } + + public static boolean isDoubleFloatRegister(Register r) { + return r.getRegisterCategory().equals(FPUd); + } + public boolean hasFeature(CPUFeature feature) { return ((SPARC) this.target.arch).features.contains(feature); } @@ -2309,7 +2344,7 @@ // A.44 Read State Register public void rdpc(Register rd) { - op3(Rd, r5, g0, rd); + op3(Rd, g5, g0, rd); } public void restore(Register rs1, Register rs2, Register rd) { @@ -2423,11 +2458,11 @@ } public void wrccr(Register rs1, Register rs2) { - op3(Wr, rs1, rs2, r2); + op3(Wr, rs1, rs2, g2); } public void wrccr(Register rs1, int simm13) { - op3(Wr, rs1, simm13, r2); + op3(Wr, rs1, simm13, g2); } public void xor(Register rs1, Register rs2, Register rd) { @@ -2499,7 +2534,7 @@ } public void ld(SPARCAddress src, Register dst, int bytes, boolean signExtend) { - if (SPARC.isCPURegister(dst)) { + if (isCPURegister(dst)) { if (signExtend) { switch (bytes) { case 1: @@ -2535,10 +2570,10 @@ throw new InternalError(); } } - } else if (SPARC.isDoubleFloatRegister(dst) && bytes == 8) { + } else if (isDoubleFloatRegister(dst) && bytes == 8) { assert !signExtend; ld(Lddf, src, dst); - } else if (SPARC.isSingleFloatRegister(dst) && bytes == 4) { + } else if (isSingleFloatRegister(dst) && bytes == 4) { assert !signExtend; ld(Ldf, src, dst); } else { @@ -2547,7 +2582,7 @@ } public void st(Register src, SPARCAddress dst, int bytes) { - if (SPARC.isCPURegister(src)) { + if (isCPURegister(src)) { switch (bytes) { case 1: st(Stb, src, dst); @@ -2564,9 +2599,9 @@ default: throw new InternalError(Integer.toString(bytes)); } - } else if (SPARC.isDoubleFloatRegister(src) && bytes == 8) { + } else if (isDoubleFloatRegister(src) && bytes == 8) { st(Stdf, src, dst); - } else if (SPARC.isSingleFloatRegister(src) && bytes == 4) { + } else if (isSingleFloatRegister(src) && bytes == 4) { st(Stf, src, dst); } else { throw new InternalError(String.format("src: %s dst: %s bytes: %d", src, dst, bytes)); @@ -2599,17 +2634,17 @@ } public void ldxa(Register rs1, Register rs2, Register rd, Asi asi) { - assert SPARC.isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); + assert isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); ld(Ldxa, new SPARCAddress(rs1, rs2), rd, asi); } public void lduwa(Register rs1, Register rs2, Register rd, Asi asi) { - assert SPARC.isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); + assert isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); ld(Lduwa, new SPARCAddress(rs1, rs2), rd, asi); } public void stxa(Register rd, Register rs1, Register rs2, Asi asi) { - assert SPARC.isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); + assert isCPURegister(rs1, rs2, rd) : format("%s %s %s", rs1, rs2, rd); ld(Stxa, new SPARCAddress(rs1, rs2), rd, asi); } @@ -2648,7 +2683,7 @@ } public void membar(int barriers) { - op3(Membar, r15, barriers, g0); + op3(Membar, o7, barriers, g0); } public void casa(Register rs1, Register rs2, Register rd, Asi asi) {
--- a/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java Thu Oct 15 11:58:34 2015 +0200 @@ -32,7 +32,6 @@ import static jdk.vm.ci.sparc.SPARC.g0; import static jdk.vm.ci.sparc.SPARC.g3; import static jdk.vm.ci.sparc.SPARC.i7; -import static jdk.vm.ci.sparc.SPARC.isCPURegister; import static jdk.vm.ci.sparc.SPARC.o7; import java.util.function.Consumer; @@ -40,7 +39,6 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.RegisterConfig; import jdk.vm.ci.code.TargetDescription; -import jdk.vm.ci.sparc.SPARC; import jdk.vm.ci.sparc.SPARC.CPUFeature; import com.oracle.graal.asm.AbstractAddress; @@ -423,7 +421,7 @@ int positionBefore = position(); delaySlotInstruction.run(); int positionAfter = position(); - assert positionBefore - positionAfter > SPARC.INSTRUCTION_SIZE : "Emitted more than one instruction into delay slot"; + assert positionBefore - positionAfter > INSTRUCTION_SIZE : "Emitted more than one instruction into delay slot"; } else { nop(); } @@ -449,7 +447,7 @@ int positionBefore = position(); delaySlotInstruction.run(); int positionAfter = position(); - assert positionBefore - positionAfter > SPARC.INSTRUCTION_SIZE : "Emitted more than one instruction into delay slot"; + assert positionBefore - positionAfter > INSTRUCTION_SIZE : "Emitted more than one instruction into delay slot"; } else { nop(); }
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCArithmeticLIRGenerator.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCArithmeticLIRGenerator.java Thu Oct 15 11:58:34 2015 +0200 @@ -59,7 +59,7 @@ import static jdk.vm.ci.meta.JavaConstant.forLong; import static jdk.vm.ci.sparc.SPARC.g0; import static jdk.vm.ci.sparc.SPARCKind.DOUBLE; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.SINGLE; import static jdk.vm.ci.sparc.SPARCKind.WORD; import jdk.vm.ci.common.JVMCIError; @@ -124,7 +124,7 @@ @Override public Variable emitBitScanReverse(Value operand) { Variable result = getLIRGen().newVariable(LIRKind.combine(operand).changeType(SPARCKind.WORD)); - if (operand.getPlatformKind() == SPARCKind.DWORD) { + if (operand.getPlatformKind() == SPARCKind.XWORD) { getLIRGen().append(new SPARCBitManipulationOp(LBSR, result, getLIRGen().asAllocatable(operand), getLIRGen())); } else { getLIRGen().append(new SPARCBitManipulationOp(IBSR, result, getLIRGen().asAllocatable(operand), getLIRGen())); @@ -261,7 +261,7 @@ if (isNumericInteger(aKind)) { if (setFlags) { Variable result = getLIRGen().newVariable(LIRKind.combine(a, b)); - if (aKind == DWORD) { + if (aKind == XWORD) { getLIRGen().append(new SPARCLMulccOp(result, getLIRGen().load(a), getLIRGen().load(b), getLIRGen())); } else if (aKind == WORD) { getLIRGen().append(new SPARCIMulccOp(result, getLIRGen().load(a), getLIRGen().load(b))); @@ -285,7 +285,7 @@ case WORD: opcode = MulHigh.IMUL; break; - case DWORD: + case XWORD: opcode = MulHigh.LMUL; break; default: @@ -302,7 +302,7 @@ Value bExtended = emitBinary(LIRKind.combine(b), Srl, b, 0); Value result = emitBinary(LIRKind.combine(a, b), Mulx, aExtended, bExtended); return emitBinary(LIRKind.combine(a, b), Srax, result, WORD.getSizeInBits()); - case DWORD: + case XWORD: return emitBinary(LIRKind.combine(a, b), UMulxhi, a, b); default: throw JVMCIError.shouldNotReachHere(); @@ -351,7 +351,7 @@ q3 = emitBinary(q2.getLIRKind(), Op3s.Mulx, q2, b); result = emitSub(q1, q3, false); break; - case DWORD: + case XWORD: aLoaded = getLIRGen().load(a); // Reuse the loaded value q1 = emitBinary(result.getLIRKind(), Sdivx, aLoaded, b, state); q2 = emitBinary(result.getLIRKind(), Mulx, q1, b); @@ -393,7 +393,7 @@ case WORD: opcode = Rem.IUREM; break; - case DWORD: + case XWORD: opcode = Rem.LUREM; break; default: @@ -413,7 +413,7 @@ actualA = emitZeroExtend(actualA, 32, 64); actualB = emitZeroExtend(actualB, 32, 64); break; - case DWORD: + case XWORD: break; default: throw JVMCIError.shouldNotReachHere(); @@ -448,7 +448,7 @@ case WORD: op = Op3s.Sll; break; - case DWORD: + case XWORD: op = Op3s.Sllx; break; default: @@ -466,7 +466,7 @@ case WORD: op = Op3s.Sra; break; - case DWORD: + case XWORD: op = Op3s.Srax; break; default: @@ -484,7 +484,7 @@ case WORD: op = Op3s.Srl; break; - case DWORD: + case XWORD: op = Op3s.Srlx; break; default: @@ -547,7 +547,7 @@ case F2L: { AllocatableValue convertedDoubleReg = getLIRGen().newVariable(LIRKind.combine(input).changeType(DOUBLE)); getLIRGen().append(new SPARCArithmetic.FloatConvertOp(FloatConvertOp.FloatConvert.F2L, input, convertedDoubleReg)); - AllocatableValue convertedLongReg = getLIRGen().newVariable(LIRKind.combine(convertedDoubleReg).changeType(DWORD)); + AllocatableValue convertedLongReg = getLIRGen().newVariable(LIRKind.combine(convertedDoubleReg).changeType(XWORD)); moveBetweenFpGp(convertedLongReg, convertedDoubleReg); result = convertedLongReg; break; @@ -563,7 +563,7 @@ case D2L: { AllocatableValue convertedDoubleReg = getLIRGen().newVariable(LIRKind.combine(input).changeType(DOUBLE)); getLIRGen().append(new SPARCArithmetic.FloatConvertOp(FloatConvertOp.FloatConvert.D2L, input, convertedDoubleReg)); - AllocatableValue convertedLongReg = getLIRGen().newVariable(LIRKind.combine(convertedDoubleReg).changeType(DWORD)); + AllocatableValue convertedLongReg = getLIRGen().newVariable(LIRKind.combine(convertedDoubleReg).changeType(XWORD)); moveBetweenFpGp(convertedLongReg, convertedDoubleReg); result = convertedLongReg; break; @@ -586,14 +586,14 @@ if (getLIRGen().getArchitecture().getFeatures().contains(CPUFeature.VIS3)) { tempSlot = AllocatableValue.ILLEGAL; } else { - tempSlot = getLIRGen().getTempSlot(LIRKind.value(DWORD)); + tempSlot = getLIRGen().getTempSlot(LIRKind.value(XWORD)); } getLIRGen().append(new MoveFpGp(dst, src, tempSlot)); } @Override public Value emitNarrow(Value inputVal, int bits) { - if (inputVal.getPlatformKind() == DWORD && bits <= 32) { + if (inputVal.getPlatformKind() == XWORD && bits <= 32) { LIRKind resultKind = LIRKind.combine(inputVal).changeType(WORD); Variable result = getLIRGen().newVariable(resultKind); getLIRGen().emitMove(result, inputVal); @@ -605,11 +605,11 @@ @Override public Value emitSignExtend(Value inputVal, int fromBits, int toBits) { - assert fromBits <= toBits && toBits <= DWORD.getSizeInBits(); + assert fromBits <= toBits && toBits <= XWORD.getSizeInBits(); LIRKind shiftKind = LIRKind.value(WORD); - LIRKind resultKind = LIRKind.combine(inputVal).changeType(toBits > 32 ? DWORD : WORD); + LIRKind resultKind = LIRKind.combine(inputVal).changeType(toBits > 32 ? XWORD : WORD); Value result; - int shiftCount = DWORD.getSizeInBits() - fromBits; + int shiftCount = XWORD.getSizeInBits() - fromBits; if (fromBits == toBits) { result = inputVal; } else if (isJavaConstant(inputVal)) { @@ -621,11 +621,11 @@ constant = javaConstant.asLong(); } return new ConstantValue(resultKind, JavaConstant.forLong((constant << shiftCount) >> shiftCount)); - } else if (fromBits == WORD.getSizeInBits() && toBits == DWORD.getSizeInBits()) { + } else if (fromBits == WORD.getSizeInBits() && toBits == XWORD.getSizeInBits()) { result = getLIRGen().newVariable(resultKind); getLIRGen().append(new SPARCOP3Op(Sra, inputVal, SPARC.g0.asValue(LIRKind.value(WORD)), result)); } else { - Variable tmp = getLIRGen().newVariable(resultKind.changeType(DWORD)); + Variable tmp = getLIRGen().newVariable(resultKind.changeType(XWORD)); result = getLIRGen().newVariable(resultKind); getLIRGen().append(new SPARCOP3Op(Sllx, inputVal, new ConstantValue(shiftKind, JavaConstant.forInt(shiftCount)), tmp)); getLIRGen().append(new SPARCOP3Op(Srax, tmp, new ConstantValue(shiftKind, JavaConstant.forInt(shiftCount)), result)); @@ -639,11 +639,11 @@ if (fromBits == toBits) { return inputVal; } - Variable result = getLIRGen().newVariable(LIRKind.combine(inputVal).changeType(toBits > WORD.getSizeInBits() ? DWORD : WORD)); + Variable result = getLIRGen().newVariable(LIRKind.combine(inputVal).changeType(toBits > WORD.getSizeInBits() ? XWORD : WORD)); if (fromBits == 32) { getLIRGen().append(new SPARCOP3Op(Srl, inputVal, g0.asValue(), result)); } else { - Value mask = getLIRGen().emitConstant(LIRKind.value(DWORD), forLong(mask(fromBits))); + Value mask = getLIRGen().emitConstant(LIRKind.value(XWORD), forLong(mask(fromBits))); getLIRGen().append(new SPARCOP3Op(And, inputVal, mask, result)); } return result;
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java Thu Oct 15 11:58:34 2015 +0200 @@ -33,7 +33,7 @@ import static com.oracle.graal.lir.LIRValueUtil.asJavaConstant; import static com.oracle.graal.lir.LIRValueUtil.isJavaConstant; import static jdk.vm.ci.code.ValueUtil.isStackSlotValue; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.SINGLE; import jdk.vm.ci.code.CallingConvention; import jdk.vm.ci.code.StackSlotValue; @@ -160,7 +160,7 @@ return JavaConstant.forShort((short) dead); case WORD: return JavaConstant.forInt((int) dead); - case DWORD: + case XWORD: return JavaConstant.forLong(dead); case SINGLE: case V32_BYTE: @@ -430,10 +430,10 @@ int compareBytes = cmpKind.getSizeInBytes(); // SPARC compares 32 or 64 bits if (compareBytes < left.getPlatformKind().getSizeInBytes()) { - left = arithmeticLIRGen.emitSignExtend(left, compareBytes * 8, DWORD.getSizeInBytes() * 8); + left = arithmeticLIRGen.emitSignExtend(left, compareBytes * 8, XWORD.getSizeInBytes() * 8); } if (compareBytes < right.getPlatformKind().getSizeInBytes()) { - right = arithmeticLIRGen.emitSignExtend(right, compareBytes * 8, DWORD.getSizeInBytes() * 8); + right = arithmeticLIRGen.emitSignExtend(right, compareBytes * 8, XWORD.getSizeInBytes() * 8); } append(SPARCOP3Op.newBinaryVoid(Subcc, left, right)); return mirrored; @@ -545,12 +545,12 @@ public void emitNullCheck(Value address, LIRFrameState state) { PlatformKind kind = address.getPlatformKind(); - assert kind == DWORD : address + " - " + kind + " not an object!"; + assert kind == XWORD : address + " - " + kind + " not an object!"; append(new NullCheckOp(asAddressValue(address), state)); } public void emitLoadConstantTableBase() { - constantTableBase = newVariable(LIRKind.value(DWORD)); + constantTableBase = newVariable(LIRKind.value(XWORD)); int nextPosition = getResult().getLIR().getLIRforBlock(getCurrentBlock()).size(); NoOp placeHolder = append(new NoOp(getCurrentBlock(), nextPosition)); loadConstantTableBaseOp = new SPARCLoadConstantTableBaseOp(constantTableBase, placeHolder);
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRKindTool.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRKindTool.java Thu Oct 15 11:58:34 2015 +0200 @@ -39,7 +39,7 @@ return LIRKind.value(SPARCKind.WORD); } else { assert bits <= 64; - return LIRKind.value(SPARCKind.DWORD); + return LIRKind.value(SPARCKind.XWORD); } } @@ -55,10 +55,10 @@ } public LIRKind getObjectKind() { - return LIRKind.reference(SPARCKind.DWORD); + return LIRKind.reference(SPARCKind.XWORD); } public LIRKind getWordKind() { - return LIRKind.value(SPARCKind.DWORD); + return LIRKind.value(SPARCKind.XWORD); } }
--- a/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCNodeMatchRules.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCNodeMatchRules.java Thu Oct 15 11:58:34 2015 +0200 @@ -24,7 +24,7 @@ package com.oracle.graal.compiler.sparc; import static jdk.vm.ci.sparc.SPARCKind.BYTE; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.HWORD; import static jdk.vm.ci.sparc.SPARCKind.WORD; import jdk.vm.ci.common.JVMCIError; @@ -65,7 +65,7 @@ if (fromBits == toBits) { return null; } else if (toBits > WORD.getSizeInBits()) { - toKind = DWORD; + toKind = XWORD; } else if (toBits > HWORD.getSizeInBits()) { toKind = WORD; } else if (toBits > BYTE.getSizeInBits()) { @@ -99,7 +99,7 @@ if (fromBits == toBits) { return null; } else if (toBits > WORD.getSizeInBits()) { - toKind = DWORD; + toKind = XWORD; } else if (toBits > HWORD.getSizeInBits()) { toKind = WORD; } else if (toBits > BYTE.getSizeInBits()) {
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java Thu Oct 15 11:58:34 2015 +0200 @@ -22,6 +22,7 @@ */ package com.oracle.graal.hotspot.sparc; +import static com.oracle.graal.asm.sparc.SPARCAssembler.isGlobalRegister; import static com.oracle.graal.asm.sparc.SPARCAssembler.Annul.NOT_ANNUL; import static com.oracle.graal.asm.sparc.SPARCAssembler.BranchPredict.PREDICT_NOT_TAKEN; import static com.oracle.graal.asm.sparc.SPARCAssembler.CC.Xcc; @@ -33,7 +34,6 @@ import static jdk.vm.ci.hotspot.HotSpotVMConfig.config; import static jdk.vm.ci.sparc.SPARC.g0; import static jdk.vm.ci.sparc.SPARC.g5; -import static jdk.vm.ci.sparc.SPARC.isGlobalRegister; import static jdk.vm.ci.sparc.SPARC.sp; import java.lang.reflect.Field;
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Thu Oct 15 11:58:34 2015 +0200 @@ -128,7 +128,8 @@ private static Value[] createNativeABICallerSaveRegisters(HotSpotVMConfig config, RegisterConfig regConfig) { Set<Register> callerSavedRegisters = new HashSet<>(); Collections.addAll(callerSavedRegisters, regConfig.getCalleeSaveRegisters()); - Collections.addAll(callerSavedRegisters, SPARC.fpuRegisters); + Collections.addAll(callerSavedRegisters, SPARC.fpusRegisters); + Collections.addAll(callerSavedRegisters, SPARC.fpudRegisters); callerSavedRegisters.add(SPARC.g1); callerSavedRegisters.add(SPARC.g4); callerSavedRegisters.add(SPARC.g5);
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallEpilogueOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallEpilogueOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -25,7 +25,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.REG; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.STACK; import static jdk.vm.ci.sparc.SPARC.g0; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import jdk.vm.ci.code.Register; import jdk.vm.ci.meta.LIRKind; import jdk.vm.ci.meta.Value; @@ -63,7 +63,7 @@ public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { // Restore the thread register when coming back from the runtime. - SPARCMove.move(crb, masm, thread.asValue(LIRKind.value(DWORD)), threadTemp, SPARCDelayedControlTransfer.DUMMY); + SPARCMove.move(crb, masm, thread.asValue(LIRKind.value(XWORD)), threadTemp, SPARCDelayedControlTransfer.DUMMY); // Reset last Java frame, last Java PC and flags. masm.stx(g0, new SPARCAddress(thread, threadLastJavaSpOffset));
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallPrologueOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallPrologueOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -26,7 +26,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.STACK; import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.sparc.SPARC.STACK_BIAS; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import jdk.vm.ci.code.Register; import jdk.vm.ci.meta.AllocatableValue; import jdk.vm.ci.meta.LIRKind; @@ -69,6 +69,6 @@ masm.stx(scratchRegister, new SPARCAddress(thread, threadLastJavaSpOffset)); // Save the thread register when calling out to the runtime. - SPARCMove.move(crb, masm, threadTemp, thread.asValue(LIRKind.value(DWORD)), getDelayedControlTransfer()); + SPARCMove.move(crb, masm, threadTemp, thread.asValue(LIRKind.value(XWORD)), getDelayedControlTransfer()); } }
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -56,7 +56,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { - Register addrRegister = asRegister(address, SPARCKind.DWORD); + Register addrRegister = asRegister(address, SPARCKind.XWORD); masm.jmp(addrRegister); masm.restoreWindow(); }
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java Thu Oct 15 11:58:34 2015 +0200 @@ -66,7 +66,7 @@ import static jdk.vm.ci.sparc.SPARC.g3; import static jdk.vm.ci.sparc.SPARC.g4; import static jdk.vm.ci.sparc.SPARC.g5; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.WORD; import java.util.Map; @@ -214,7 +214,7 @@ if (linkage.destroysRegisters() || hotspotLinkage.needsJavaFrameAnchor()) { HotSpotRegistersProvider registers = getProviders().getRegisters(); Register thread = registers.getThreadRegister(); - Value threadTemp = newVariable(LIRKind.value(SPARCKind.DWORD)); + Value threadTemp = newVariable(LIRKind.value(SPARCKind.XWORD)); Register stackPointer = registers.getStackPointerRegister(); Variable spScratch = newVariable(LIRKind.value(target().arch.getWordKind())); append(new SPARCHotSpotCRuntimeCallPrologueOp(config.threadLastJavaSpOffset(), thread, stackPointer, threadTemp, spScratch)); @@ -384,7 +384,7 @@ @Override public Value emitCompress(Value pointer, CompressEncoding encoding, boolean nonNull) { LIRKind inputKind = pointer.getLIRKind(); - assert inputKind.getPlatformKind() == DWORD : inputKind; + assert inputKind.getPlatformKind() == XWORD : inputKind; if (inputKind.isReference(0)) { // oop Variable result = newVariable(LIRKind.reference(WORD)); @@ -395,7 +395,7 @@ Variable result = newVariable(LIRKind.value(WORD)); AllocatableValue base = Value.ILLEGAL; if (encoding.base != 0) { - base = emitLoadConstant(LIRKind.value(DWORD), JavaConstant.forLong(encoding.base)); + base = emitLoadConstant(LIRKind.value(XWORD), JavaConstant.forLong(encoding.base)); } append(new SPARCHotSpotMove.CompressPointer(result, asAllocatable(pointer), base, encoding, nonNull)); return result; @@ -408,15 +408,15 @@ assert inputKind.getPlatformKind() == WORD; if (inputKind.isReference(0)) { // oop - Variable result = newVariable(LIRKind.reference(DWORD)); + Variable result = newVariable(LIRKind.reference(XWORD)); append(new SPARCHotSpotMove.UncompressPointer(result, asAllocatable(pointer), getProviders().getRegisters().getHeapBaseRegister().asValue(), encoding, nonNull)); return result; } else { // metaspace pointer - Variable result = newVariable(LIRKind.value(DWORD)); + Variable result = newVariable(LIRKind.value(XWORD)); AllocatableValue base = Value.ILLEGAL; if (encoding.base != 0) { - base = emitLoadConstant(LIRKind.value(DWORD), JavaConstant.forLong(encoding.base)); + base = emitLoadConstant(LIRKind.value(XWORD), JavaConstant.forLong(encoding.base)); } append(new SPARCHotSpotMove.UncompressPointer(result, asAllocatable(pointer), base, encoding, nonNull)); return result;
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Thu Oct 15 11:58:34 2015 +0200 @@ -71,7 +71,7 @@ @Override protected DebugInfoBuilder createDebugInfoBuilder(StructuredGraph graph, NodeValueMap nodeValueMap) { - HotSpotLockStack lockStack = new HotSpotLockStack(gen.getResult().getFrameMapBuilder(), LIRKind.value(SPARCKind.DWORD)); + HotSpotLockStack lockStack = new HotSpotLockStack(gen.getResult().getFrameMapBuilder(), LIRKind.value(SPARCKind.XWORD)); return new HotSpotDebugInfoBuilder(nodeValueMap, lockStack); }
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPatchReturnAddressOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPatchReturnAddressOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -25,7 +25,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.REG; import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.sparc.SPARC.i7; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import jdk.vm.ci.code.Register; import jdk.vm.ci.meta.AllocatableValue; @@ -53,7 +53,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { - Register addrRegister = asRegister(address, DWORD); + Register addrRegister = asRegister(address, XWORD); masm.sub(addrRegister, SPARCAssembler.PC_RETURN_OFFSET, i7); } }
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotStrategySwitchOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotStrategySwitchOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -23,6 +23,7 @@ package com.oracle.graal.hotspot.sparc; import static com.oracle.graal.asm.sparc.SPARCAssembler.CBCOND; +import static com.oracle.graal.asm.sparc.SPARCAssembler.INSTRUCTION_SIZE; import static com.oracle.graal.asm.sparc.SPARCAssembler.Annul.ANNUL; import static com.oracle.graal.asm.sparc.SPARCAssembler.BranchPredict.PREDICT_TAKEN; import static com.oracle.graal.lir.sparc.SPARCMove.loadFromConstantTable; @@ -33,7 +34,6 @@ import jdk.vm.ci.meta.AllocatableValue; import jdk.vm.ci.meta.Constant; import jdk.vm.ci.meta.Value; -import jdk.vm.ci.sparc.SPARC; import jdk.vm.ci.sparc.SPARC.CPUFeature; import com.oracle.graal.asm.Assembler.LabelHint; @@ -70,7 +70,7 @@ LabelHint hint = requestHint(masm, target); // Load constant takes one instruction - int cbCondPosition = masm.position() + SPARC.INSTRUCTION_SIZE; + int cbCondPosition = masm.position() + INSTRUCTION_SIZE; boolean canUseShortBranch = masm.hasFeature(CPUFeature.CBCOND) && SPARCControlFlow.isShortBranch(masm, cbCondPosition, hint, target); Register scratchRegister = asRegister(scratch);
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java Thu Oct 15 11:58:34 2015 +0200 @@ -42,7 +42,7 @@ import static jdk.vm.ci.code.ValueUtil.isRegister; import static jdk.vm.ci.sparc.SPARC.g0; import static jdk.vm.ci.sparc.SPARCKind.DOUBLE; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.SINGLE; import static jdk.vm.ci.sparc.SPARCKind.WORD; import jdk.vm.ci.code.Register; @@ -169,10 +169,10 @@ switch (opcode) { case LUREM: crb.recordImplicitException(masm.position(), state); - masm.udivx(asRegister(x, DWORD), crb.asIntConst(y), asRegister(scratch1, DWORD)); - masm.mulx(asRegister(scratch1, DWORD), crb.asIntConst(y), asRegister(scratch2, DWORD)); + masm.udivx(asRegister(x, XWORD), crb.asIntConst(y), asRegister(scratch1, XWORD)); + masm.mulx(asRegister(scratch1, XWORD), crb.asIntConst(y), asRegister(scratch2, XWORD)); getDelayedControlTransfer().emitControlTransfer(crb, masm); - masm.sub(asRegister(x, DWORD), asRegister(scratch2, DWORD), asRegister(result, DWORD)); + masm.sub(asRegister(x, XWORD), asRegister(scratch2, XWORD), asRegister(result, XWORD)); break; case IUREM: JVMCIError.unimplemented(); @@ -185,16 +185,16 @@ switch (opcode) { case LUREM: if (isJavaConstant(x)) { - new Setx(crb.asLongConst(x), asRegister(scratch2, DWORD), false).emit(masm); + new Setx(crb.asLongConst(x), asRegister(scratch2, XWORD), false).emit(masm); xLeft = scratch2; } - assert !asRegister(xLeft, DWORD).equals(asRegister(scratch1, DWORD)); - assert !asRegister(y, DWORD).equals(asRegister(scratch1, DWORD)); + assert !asRegister(xLeft, XWORD).equals(asRegister(scratch1, XWORD)); + assert !asRegister(y, XWORD).equals(asRegister(scratch1, XWORD)); crb.recordImplicitException(masm.position(), state); - masm.udivx(asRegister(xLeft, DWORD), asRegister(y, DWORD), asRegister(scratch1, DWORD)); - masm.mulx(asRegister(scratch1, DWORD), asRegister(y, DWORD), asRegister(scratch1, DWORD)); + masm.udivx(asRegister(xLeft, XWORD), asRegister(y, XWORD), asRegister(scratch1, XWORD)); + masm.mulx(asRegister(scratch1, XWORD), asRegister(y, XWORD), asRegister(scratch1, XWORD)); getDelayedControlTransfer().emitControlTransfer(crb, masm); - masm.sub(asRegister(xLeft, DWORD), asRegister(scratch1, DWORD), asRegister(result, DWORD)); + masm.sub(asRegister(xLeft, XWORD), asRegister(scratch1, XWORD), asRegister(result, XWORD)); break; case IUREM: assert !asRegister(result, WORD).equals(asRegister(scratch1, WORD)); @@ -270,21 +270,21 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { Label noOverflow = new Label(); - masm.mulx(asRegister(x, DWORD), asRegister(y, DWORD), asRegister(result, DWORD)); + masm.mulx(asRegister(x, XWORD), asRegister(y, XWORD), asRegister(result, XWORD)); // Calculate the upper 64 bit signed := (umulxhi product - (x{63}&y + y{63}&x)) - masm.umulxhi(asRegister(x, DWORD), asRegister(y, DWORD), asRegister(scratch1, DWORD)); - masm.srax(asRegister(x, DWORD), 63, asRegister(scratch2, DWORD)); - masm.and(asRegister(scratch2, DWORD), asRegister(y, DWORD), asRegister(scratch2, DWORD)); - masm.sub(asRegister(scratch1, DWORD), asRegister(scratch2, DWORD), asRegister(scratch1, DWORD)); + masm.umulxhi(asRegister(x, XWORD), asRegister(y, XWORD), asRegister(scratch1, XWORD)); + masm.srax(asRegister(x, XWORD), 63, asRegister(scratch2, XWORD)); + masm.and(asRegister(scratch2, XWORD), asRegister(y, XWORD), asRegister(scratch2, XWORD)); + masm.sub(asRegister(scratch1, XWORD), asRegister(scratch2, XWORD), asRegister(scratch1, XWORD)); - masm.srax(asRegister(y, DWORD), 63, asRegister(scratch2, DWORD)); - masm.and(asRegister(scratch2, DWORD), asRegister(x, DWORD), asRegister(scratch2, DWORD)); - masm.sub(asRegister(scratch1, DWORD), asRegister(scratch2, DWORD), asRegister(scratch1, DWORD)); + masm.srax(asRegister(y, XWORD), 63, asRegister(scratch2, XWORD)); + masm.and(asRegister(scratch2, XWORD), asRegister(x, XWORD), asRegister(scratch2, XWORD)); + masm.sub(asRegister(scratch1, XWORD), asRegister(scratch2, XWORD), asRegister(scratch1, XWORD)); // Now construct the lower half and compare - masm.srax(asRegister(result, DWORD), 63, asRegister(scratch2, DWORD)); - masm.cmp(asRegister(scratch1, DWORD), asRegister(scratch2, DWORD)); + masm.srax(asRegister(result, XWORD), 63, asRegister(scratch2, XWORD)); + masm.cmp(asRegister(scratch1, XWORD), asRegister(scratch2, XWORD)); masm.bpcc(Equal, NOT_ANNUL, noOverflow, Xcc, PREDICT_TAKEN); masm.nop(); masm.wrccr(g0, 1 << (CCR_XCC_SHIFT + CCR_V_SHIFT)); @@ -327,16 +327,16 @@ masm.srax(asRegister(result, WORD), 32, asRegister(result, WORD)); break; case LMUL: - assert !asRegister(scratch, DWORD).equals(asRegister(result, DWORD)); - masm.umulxhi(asRegister(x, DWORD), asRegister(y, DWORD), asRegister(result, DWORD)); + assert !asRegister(scratch, XWORD).equals(asRegister(result, XWORD)); + masm.umulxhi(asRegister(x, XWORD), asRegister(y, XWORD), asRegister(result, XWORD)); - masm.srlx(asRegister(x, DWORD), 63, asRegister(scratch, DWORD)); - masm.mulx(asRegister(scratch, DWORD), asRegister(y, DWORD), asRegister(scratch, DWORD)); - masm.sub(asRegister(result, DWORD), asRegister(scratch, DWORD), asRegister(result, DWORD)); + masm.srlx(asRegister(x, XWORD), 63, asRegister(scratch, XWORD)); + masm.mulx(asRegister(scratch, XWORD), asRegister(y, XWORD), asRegister(scratch, XWORD)); + masm.sub(asRegister(result, XWORD), asRegister(scratch, XWORD), asRegister(result, XWORD)); - masm.srlx(asRegister(y, DWORD), 63, asRegister(scratch, DWORD)); - masm.mulx(asRegister(scratch, DWORD), asRegister(x, DWORD), asRegister(scratch, DWORD)); - masm.sub(asRegister(result, DWORD), asRegister(scratch, DWORD), asRegister(result, DWORD)); + masm.srlx(asRegister(y, XWORD), 63, asRegister(scratch, XWORD)); + masm.mulx(asRegister(scratch, XWORD), asRegister(x, XWORD), asRegister(scratch, XWORD)); + masm.sub(asRegister(result, XWORD), asRegister(scratch, XWORD), asRegister(result, XWORD)); break; default: throw JVMCIError.shouldNotReachHere();
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -26,7 +26,7 @@ import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.code.ValueUtil.isRegister; import static jdk.vm.ci.sparc.SPARC.g0; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.WORD; import jdk.vm.ci.code.Register; import jdk.vm.ci.common.JVMCIError; @@ -82,7 +82,7 @@ masm.andn(dst, src, dst); masm.srl(dst, g0, dst); masm.popc(dst, dst); - } else if (tkind == DWORD) { + } else if (tkind == XWORD) { masm.sub(src, 1, dst); masm.andn(dst, src, dst); masm.popc(dst, dst); @@ -112,7 +112,7 @@ } case LBSR: { PlatformKind lkind = input.getPlatformKind(); - assert lkind == DWORD; + assert lkind == XWORD; Register tmp = asRegister(scratch); assert !tmp.equals(dst); masm.srlx(src, 1, tmp);
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java Thu Oct 15 11:58:34 2015 +0200 @@ -27,7 +27,7 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.STACK; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.UNINITIALIZED; import static jdk.vm.ci.code.ValueUtil.asRegister; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.WORD; import jdk.vm.ci.code.Register; import jdk.vm.ci.code.StackSlotValue; @@ -58,8 +58,8 @@ super(TYPE, SIZE); this.result = result; this.input = input; - this.tmpSlot = tool.getResult().getFrameMapBuilder().allocateSpillSlot(LIRKind.value(DWORD)); - this.tempIndex = tool.newVariable(LIRKind.value(DWORD)); + this.tmpSlot = tool.getResult().getFrameMapBuilder().allocateSpillSlot(LIRKind.value(XWORD)); + this.tempIndex = tool.newVariable(LIRKind.value(XWORD)); } @Override @@ -67,7 +67,7 @@ SPARCAddress addr = (SPARCAddress) crb.asAddress(tmpSlot); SPARCMove.emitStore(input, addr, result.getPlatformKind(), SPARCDelayedControlTransfer.DUMMY, null, crb, masm); if (addr.getIndex().equals(Register.None)) { - Register tempReg = ValueUtil.asRegister(tempIndex, DWORD); + Register tempReg = ValueUtil.asRegister(tempIndex, XWORD); new SPARCMacroAssembler.Setx(addr.getDisplacement(), tempReg, false).emit(masm); addr = new SPARCAddress(addr.getBase(), tempReg); } @@ -76,8 +76,8 @@ case WORD: masm.lduwa(addr.getBase(), addr.getIndex(), asRegister(result, WORD), Asi.ASI_PRIMARY_LITTLE); break; - case DWORD: - masm.ldxa(addr.getBase(), addr.getIndex(), asRegister(result, DWORD), Asi.ASI_PRIMARY_LITTLE); + case XWORD: + masm.ldxa(addr.getBase(), addr.getIndex(), asRegister(result, XWORD), Asi.ASI_PRIMARY_LITTLE); break; default: throw JVMCIError.shouldNotReachHere();
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Thu Oct 15 11:58:34 2015 +0200 @@ -23,6 +23,7 @@ package com.oracle.graal.lir.sparc; import static com.oracle.graal.asm.sparc.SPARCAssembler.CBCOND; +import static com.oracle.graal.asm.sparc.SPARCAssembler.INSTRUCTION_SIZE; import static com.oracle.graal.asm.sparc.SPARCAssembler.isSimm10; import static com.oracle.graal.asm.sparc.SPARCAssembler.isSimm11; import static com.oracle.graal.asm.sparc.SPARCAssembler.isSimm13; @@ -67,7 +68,7 @@ import static jdk.vm.ci.code.ValueUtil.asRegister; import static jdk.vm.ci.sparc.SPARC.CPU; import static jdk.vm.ci.sparc.SPARC.g0; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.WORD; import java.util.ArrayList; @@ -83,7 +84,6 @@ import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.PlatformKind; import jdk.vm.ci.meta.Value; -import jdk.vm.ci.sparc.SPARC; import jdk.vm.ci.sparc.SPARC.CPUFeature; import jdk.vm.ci.sparc.SPARCKind; @@ -140,7 +140,7 @@ public static final class CompareBranchOp extends SPARCBlockEndOp implements SPARCDelayedControlTransfer { public static final LIRInstructionClass<CompareBranchOp> TYPE = LIRInstructionClass.create(CompareBranchOp.class); public static final SizeEstimate SIZE = SizeEstimate.create(3); - static final EnumSet<SPARCKind> SUPPORTED_KINDS = EnumSet.of(DWORD, WORD); + static final EnumSet<SPARCKind> SUPPORTED_KINDS = EnumSet.of(XWORD, WORD); @Use({REG}) protected Value x; @Use({REG, CONST}) protected Value y; @@ -282,7 +282,7 @@ private void emitCBCond(SPARCMacroAssembler masm, Value actualX, Value actualY, Label actualTrueTarget, ConditionFlag cFlag) { PlatformKind xKind = actualX.getPlatformKind(); - boolean isLong = kind == SPARCKind.DWORD; + boolean isLong = kind == SPARCKind.XWORD; if (isJavaConstant(actualY)) { JavaConstant c = asJavaConstant(actualY); long constantY = c.isNull() ? 0 : c.asLong(); @@ -512,7 +512,7 @@ boolean isShortConstant = isSimm5(constant); int cbCondPosition = masm.position(); if (!isShortConstant) { // Load constant takes one instruction - cbCondPosition += SPARC.INSTRUCTION_SIZE; + cbCondPosition += INSTRUCTION_SIZE; } boolean canUseShortBranch = masm.hasFeature(CPUFeature.CBCOND) && isShortBranch(masm, cbCondPosition, hint, target); if (bits != null && canUseShortBranch) { @@ -586,7 +586,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { Register value = asRegister(index, SPARCKind.WORD); - Register scratchReg = asRegister(scratch, SPARCKind.DWORD); + Register scratchReg = asRegister(scratch, SPARCKind.XWORD); // Compare index against jump table bounds int highKey = lowKey + targets.length - 1;
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFrameMap.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFrameMap.java Thu Oct 15 11:58:34 2015 +0200 @@ -110,7 +110,7 @@ */ @Override public int spillSlotSize(LIRKind kind) { - return Math.max(kind.getPlatformKind().getSizeInBytes(), SPARC.MEMORY_ACCESS_ALIGN); + return kind.getPlatformKind().getSizeInBytes(); } @Override @@ -131,6 +131,6 @@ public StackSlot allocateDeoptimizationRescueSlot() { assert spillSize == initialSpillSize : "Deoptimization rescue slot must be the first stack slot"; - return allocateSpillSlot(LIRKind.value(SPARCKind.DWORD)); + return allocateSpillSlot(LIRKind.value(SPARCKind.XWORD)); } }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Wed Oct 14 15:18:44 2015 -0700 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Thu Oct 15 11:58:34 2015 +0200 @@ -23,7 +23,10 @@ package com.oracle.graal.lir.sparc; import static com.oracle.graal.asm.sparc.SPARCAssembler.MEMBAR_STORE_LOAD; +import static com.oracle.graal.asm.sparc.SPARCAssembler.isCPURegister; +import static com.oracle.graal.asm.sparc.SPARCAssembler.isDoubleFloatRegister; import static com.oracle.graal.asm.sparc.SPARCAssembler.isSimm13; +import static com.oracle.graal.asm.sparc.SPARCAssembler.isSingleFloatRegister; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.COMPOSITE; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.HINT; import static com.oracle.graal.lir.LIRInstruction.OperandFlag.ILLEGAL; @@ -39,7 +42,7 @@ import static jdk.vm.ci.code.ValueUtil.isStackSlot; import static jdk.vm.ci.sparc.SPARC.g0; import static jdk.vm.ci.sparc.SPARCKind.DOUBLE; -import static jdk.vm.ci.sparc.SPARCKind.DWORD; +import static jdk.vm.ci.sparc.SPARCKind.XWORD; import static jdk.vm.ci.sparc.SPARCKind.SINGLE; import static jdk.vm.ci.sparc.SPARCKind.WORD; @@ -222,7 +225,7 @@ if (inputKind == WORD) { masm.movxtod(asRegister(input, WORD), asRegister(result, DOUBLE)); } else { - masm.movxtod(asRegister(input, DWORD), asRegister(result, DOUBLE)); + masm.movxtod(asRegister(input, XWORD), asRegister(result, DOUBLE)); } } else if (inputKind == SINGLE) { if (resultKind == WORD) { @@ -231,8 +234,8 @@ masm.movstouw(asRegister(input, SINGLE), asRegister(result, WORD)); } } else if (inputKind == DOUBLE) { - if (resultKind == DWORD) { - masm.movdtox(asRegister(input, DOUBLE), asRegister(result, DWORD)); + if (resultKind == XWORD) { + masm.movdtox(asRegister(input, DOUBLE), asRegister(result, XWORD)); } else { throw JVMCIError.shouldNotReachHere(); } @@ -321,7 +324,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { SPARCAddress address = addressValue.toAddress(); - loadEffectiveAddress(crb, masm, address, asRegister(result, DWORD), getDelayedControlTransfer()); + loadEffectiveAddress(crb, masm, address, asRegister(result, XWORD), getDelayedControlTransfer()); } } @@ -448,7 +451,7 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { SPARCAddress address = (SPARCAddress) crb.asAddress(slot); - loadEffectiveAddress(crb, masm, address, asRegister(result, DWORD), getDelayedControlTransfer()); + loadEffectiveAddress(crb, masm, address, asRegister(result, XWORD), getDelayedControlTransfer()); } } @@ -593,11 +596,11 @@ return; } delaySlotLir.emitControlTransfer(crb, masm); - if (SPARC.isCPURegister(src) && SPARC.isCPURegister(dst)) { + if (isCPURegister(src) && isCPURegister(dst)) { masm.mov(src, dst); - } else if (SPARC.isSingleFloatRegister(src) && SPARC.isSingleFloatRegister(dst)) { + } else if (isSingleFloatRegister(src) && isSingleFloatRegister(dst)) { masm.fsrc2s(src, dst); - } else if (SPARC.isDoubleFloatRegister(src) && SPARC.isDoubleFloatRegister(dst)) { + } else if (isDoubleFloatRegister(src) && isDoubleFloatRegister(dst)) { masm.fsrc2d(src, dst); } else { throw JVMCIError.shouldNotReachHere(String.format("Trying to move between register domains src: %s dst: %s", src, dst)); @@ -716,7 +719,7 @@ case WORD: masm.cas(asRegister(address), asRegister(cmpValue), asRegister(newValue)); break; - case DWORD: + case XWORD: masm.casx(asRegister(address), asRegister(cmpValue), asRegister(newValue)); break; default:
--- a/mx.graal/suite.py Wed Oct 14 15:18:44 2015 -0700 +++ b/mx.graal/suite.py Thu Oct 15 11:58:34 2015 +0200 @@ -6,7 +6,7 @@ "suites": [ { "name" : "jvmci", - "version" : "c278790fa252e7e4d8eeecc560fa7a24cdf82651", + "version" : "5ba5ff0fda9ebb97467026749ca64d4bb0385152", "urls" : [ {"url" : "http://lafo.ssw.uni-linz.ac.at/hg/graal-jvmci-8", "kind" : "hg"}, {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},