src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java Thu Jun 27 03:10:52 2019 +0200
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java Thu Jun 27 03:33:44 2019 +0200
@@ -433,7 +433,10 @@
}
static void reg2stack(CompilationResultBuilder crb, AArch64MacroAssembler masm, AllocatableValue result, AllocatableValue input) {
- AArch64Address dest = loadStackSlotAddress(crb, masm, asStackSlot(result), Value.ILLEGAL);
+ AArch64Address dest;
+ try (ScratchRegister scratch = masm.getScratchRegister()) {
+ dest = loadStackSlotAddress(crb, masm, asStackSlot(result), scratch.getRegister());
+ }
Register src = asRegister(input);
// use the slot kind to define the operand size
AArch64Kind kind = (AArch64Kind) result.getPlatformKind();