< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator.java
Print this page
rev 52509 : [mq]: graal2
@@ -199,10 +199,20 @@
Variable result = getLIRGen().newVariable(resultLirKind);
getLIRGen().append(new AArch64FloatConvertOp(op, result, asAllocatable(inputVal)));
return result;
}
+ public Value emitAddSubShift(AArch64ArithmeticOp op, Value a, Value b, AArch64MacroAssembler.ShiftType shiftType, int shiftAmount) {
+ assert isNumericInteger(a.getPlatformKind());
+ assert isNumericInteger(b.getPlatformKind());
+ Variable result = getLIRGen().newVariable(LIRKind.combine(a, b));
+ AllocatableValue x = moveSp(asAllocatable(a));
+ AllocatableValue y = moveSp(asAllocatable(b));
+ getLIRGen().append(new AArch64ArithmeticOp.AddSubShiftOp(op, result, x, y, shiftType, shiftAmount));
+ return result;
+ }
+
private static PlatformKind getFloatConvertResultKind(FloatConvert op) {
switch (op) {
case F2I:
case D2I:
return AArch64Kind.DWORD;
< prev index next >