Skip to content

Commit 816fd20

Browse files
committed
[JSC] Do not skip the FPR path if either payload or tag GPR is unavailable.
1 parent 6b140c3 commit 816fd20

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

Source/JavaScriptCore/jit/CallFrameShuffler32_64.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ void CallFrameShuffler::emitLoad(CachedRecovery& location)
8888
bool tryFPR { true };
8989
JSValueRegs wantedJSValueRegs { location.wantedJSValueRegs() };
9090
if (wantedJSValueRegs) {
91-
if (wantedJSValueRegs.payloadGPR() != InvalidGPRReg
92-
&& !m_registers[wantedJSValueRegs.payloadGPR()]
93-
&& !m_lockedRegisters.contains(wantedJSValueRegs.payloadGPR(), IgnoreVectors))
94-
tryFPR = false;
95-
if (wantedJSValueRegs.tagGPR() != InvalidGPRReg
96-
&& !m_registers[wantedJSValueRegs.tagGPR()]
97-
&& !m_lockedRegisters.contains(wantedJSValueRegs.tagGPR(), IgnoreVectors))
91+
const auto isAvailable = [this](const GPRReg &reg) {
92+
return reg != InvalidGPRReg
93+
&& !m_registers[reg]
94+
&& !m_lockedRegisters.contains(reg, IgnoreVectors);
95+
};
96+
if (isAvailable(wantedJSValueRegs.payloadGPR())
97+
&& isAvailable(wantedJSValueRegs.tagGPR()))
9898
tryFPR = false;
9999
}
100100

0 commit comments

Comments
 (0)