Modified: trunk/Source/_javascript_Core/ChangeLog (293019 => 293020)
--- trunk/Source/_javascript_Core/ChangeLog 2022-04-19 17:14:21 UTC (rev 293019)
+++ trunk/Source/_javascript_Core/ChangeLog 2022-04-19 17:19:43 UTC (rev 293020)
@@ -1,5 +1,15 @@
2022-04-19 Yusuke Suzuki <[email protected]>
+ Unreviewed, disable UnlinkedDFG code in x64
+ https://bugs.webkit.org/show_bug.cgi?id=237863
+
+ * dfg/DFGPlan.cpp:
+ (JSC::DFG::Plan::compileInThreadImpl):
+ * jit/GPRInfo.h:
+ (JSC::GPRInfo::toRegister):
+
+2022-04-19 Yusuke Suzuki <[email protected]>
+
Unreviewed, do not use RELEASE_ASSERT_NOT_REACHED in super hot path to suppress warnings
https://bugs.webkit.org/show_bug.cgi?id=239290
Modified: trunk/Source/_javascript_Core/dfg/DFGPlan.cpp (293019 => 293020)
--- trunk/Source/_javascript_Core/dfg/DFGPlan.cpp 2022-04-19 17:14:21 UTC (rev 293019)
+++ trunk/Source/_javascript_Core/dfg/DFGPlan.cpp 2022-04-19 17:19:43 UTC (rev 293020)
@@ -316,6 +316,10 @@
dfg.ensureCPSNaturalLoops();
}
+ // Currently, due to GPRInfo::numberOfRegisters issue, we cannot enable it on x64.
+ if (isX86_64())
+ RELEASE_ASSERT(m_mode != JITCompilationMode::UnlinkedDFG);
+
switch (m_mode) {
case JITCompilationMode::DFG:
case JITCompilationMode::UnlinkedDFG: {
Modified: trunk/Source/_javascript_Core/jit/GPRInfo.h (293019 => 293020)
--- trunk/Source/_javascript_Core/jit/GPRInfo.h 2022-04-19 17:14:21 UTC (rev 293019)
+++ trunk/Source/_javascript_Core/jit/GPRInfo.h 2022-04-19 17:19:43 UTC (rev 293020)
@@ -420,7 +420,7 @@
class GPRInfo {
public:
typedef GPRReg RegisterType;
- static constexpr unsigned numberOfRegisters = 10;
+ static constexpr unsigned numberOfRegisters = 11;
static constexpr unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS;
// These registers match the baseline JIT.
@@ -498,9 +498,9 @@
{
ASSERT(index < numberOfRegisters);
#if !OS(WINDOWS)
- static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regT6, regT7, regCS0, regCS1 };
+ static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regT6, regT7, regCS0, regCS1, regCS2 };
#else
- static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regCS0, regCS1, regCS2, regCS3 };
+ static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regCS0, regCS1, regCS2, regCS3, regCS4 };
#endif
return registerForIndex[index];
}