src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp.java
Print this page
*** 49,58 ****
--- 49,59 ----
ADD(ARITHMETIC),
ADDS(ARITHMETIC),
SUB(ARITHMETIC),
SUBS(ARITHMETIC),
MUL,
+ MULVS,
DIV,
SMULH,
UMULH,
REM,
UDIV,
*** 174,183 ****
--- 175,192 ----
// Don't use asInt() here, since we can't use asInt on a long variable, even
// if the constant easily fits as an int.
assert AArch64MacroAssembler.isArithmeticImmediate(b.asLong());
masm.sub(size, dst, src, (int) b.asLong());
break;
+ case ADDS:
+ assert AArch64MacroAssembler.isArithmeticImmediate(b.asLong());
+ masm.adds(size, dst, src, (int) b.asLong());
+ break;
+ case SUBS:
+ assert AArch64MacroAssembler.isArithmeticImmediate(b.asLong());
+ masm.subs(size, dst, src, (int) b.asLong());
+ break;
case AND:
// XXX Should this be handled somewhere else?
if (size == 32 && b.asLong() == 0xFFFF_FFFFL) {
masm.mov(size, dst, src);
} else {
*** 289,298 ****
--- 298,310 ----
masm.fmul(size, dst, src1, src2);
break;
case FDIV:
masm.fdiv(size, dst, src1, src2);
break;
+ case MULVS:
+ masm.mulvs(size, dst, src1, src2);
+ break;
default:
throw GraalError.shouldNotReachHere("op=" + op.name());
}
}
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File