From 98ed6fab3f87ec91cdb3755756222c10bbfcf83d Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 29 Dec 2017 17:05:37 -0800 Subject: [PATCH] arm64jit: Fix spilling for more than one temp reg. Otherwise we hang trying to spill the same reg over and over. --- Core/MIPS/ARM64/Arm64RegCache.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Core/MIPS/ARM64/Arm64RegCache.cpp b/Core/MIPS/ARM64/Arm64RegCache.cpp index 903819a74f..f9c8167784 100644 --- a/Core/MIPS/ARM64/Arm64RegCache.cpp +++ b/Core/MIPS/ARM64/Arm64RegCache.cpp @@ -275,6 +275,8 @@ ARM64Reg Arm64RegCache::FindBestToSpill(bool unusedOnly, bool *clobbered) { ARM64Reg reg = allocOrder[i]; if (ar[reg].mipsReg != MIPS_REG_INVALID && mr[ar[reg].mipsReg].spillLock) continue; + if (ar[reg].tempLocked) + continue; // As it's in alloc-order, we know it's not static so we don't need to check for that.