# HG changeset patch # User Josef Eisl # Date 1418723969 -3600 # Node ID d6c33eb93b9feccc55f19df5fe64855f40a04d2a # Parent 3f38534e9a10e00ef3e0b660756c3227f6156724 Use Register.asValue(LIRKind) where appropriate. diff -r 3f38534e9a10 -r d6c33eb93b9f graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java Mon Dec 15 17:53:36 2014 -0800 +++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java Tue Dec 16 10:59:29 2014 +0100 @@ -50,8 +50,9 @@ @Override protected void emitIndirectCall(IndirectCallTargetNode callTarget, Value result, Value[] parameters, Value[] temps, LIRFrameState callState) { - AllocatableValue targetAddress = AMD64.rax.asValue(); - gen.emitMove(targetAddress, operand(callTarget.computedAddress())); + Value targetAddressSrc = operand(callTarget.computedAddress()); + AllocatableValue targetAddress = AMD64.rax.asValue(targetAddressSrc.getLIRKind()); + gen.emitMove(targetAddress, targetAddressSrc); append(new AMD64Call.IndirectCallOp(callTarget.targetMethod(), result, parameters, temps, targetAddress, callState)); } diff -r 3f38534e9a10 -r d6c33eb93b9f graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Mon Dec 15 17:53:36 2014 -0800 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Tue Dec 16 10:59:29 2014 +0100 @@ -377,8 +377,9 @@ getResult().getFrameMapBuilder().callsMethod(nativeCallingConvention); // TODO(mg): in case a native function uses floating point varargs, the ABI requires that // RAX contains the length of the varargs - AllocatableValue numberOfFloatingPointArgumentsRegister = AMD64.rax.asValue(); - emitMove(numberOfFloatingPointArgumentsRegister, JavaConstant.forInt(numberOfFloatingPointArguments)); + PrimitiveConstant intConst = JavaConstant.forInt(numberOfFloatingPointArguments); + AllocatableValue numberOfFloatingPointArgumentsRegister = AMD64.rax.asValue(intConst.getLIRKind()); + emitMove(numberOfFloatingPointArgumentsRegister, intConst); for (int i = 0; i < args.length; i++) { Value arg = args[i]; AllocatableValue loc = nativeCallingConvention.getArgument(i); diff -r 3f38534e9a10 -r d6c33eb93b9f graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Mon Dec 15 17:53:36 2014 -0800 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotNodeLIRBuilder.java Tue Dec 16 10:59:29 2014 +0100 @@ -111,11 +111,13 @@ @Override protected void emitIndirectCall(IndirectCallTargetNode callTarget, Value result, Value[] parameters, Value[] temps, LIRFrameState callState) { - AllocatableValue metaspaceMethod = g5.asValue(); - gen.emitMove(metaspaceMethod, operand(((HotSpotIndirectCallTargetNode) callTarget).metaspaceMethod())); + Value metaspaceMethodSrc = operand(((HotSpotIndirectCallTargetNode) callTarget).metaspaceMethod()); + AllocatableValue metaspaceMethod = g5.asValue(metaspaceMethodSrc.getLIRKind()); + gen.emitMove(metaspaceMethod, metaspaceMethodSrc); - AllocatableValue targetAddress = o7.asValue(); - gen.emitMove(targetAddress, operand(callTarget.computedAddress())); + Value targetAddressSrc = operand(callTarget.computedAddress()); + AllocatableValue targetAddress = o7.asValue(targetAddressSrc.getLIRKind()); + gen.emitMove(targetAddress, targetAddressSrc); append(new SPARCIndirectCallOp(callTarget.targetMethod(), result, parameters, temps, metaspaceMethod, targetAddress, callState)); }