Title: [260346] trunk/Source/_javascript_Core
- Revision
- 260346
- Author
- [email protected]
- Date
- 2020-04-19 18:56:24 -0700 (Sun, 19 Apr 2020)
Log Message
[JSC] SlowPathCall is not supported by callOperation in Windows
https://bugs.webkit.org/show_bug.cgi?id=210727
Reviewed by Ross Kirsling.
In Windows, SlowPathCall should be handled by JITSlowPathCall, otherwise, stack is not correctly allocated.
* jit/JITCall.cpp:
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
* jit/SlowPathCall.h:
(JSC::JITSlowPathCall::call):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (260345 => 260346)
--- trunk/Source/_javascript_Core/ChangeLog 2020-04-20 00:59:00 UTC (rev 260345)
+++ trunk/Source/_javascript_Core/ChangeLog 2020-04-20 01:56:24 UTC (rev 260346)
@@ -1,5 +1,20 @@
2020-04-19 Yusuke Suzuki <[email protected]>
+ [JSC] SlowPathCall is not supported by callOperation in Windows
+ https://bugs.webkit.org/show_bug.cgi?id=210727
+
+ Reviewed by Ross Kirsling.
+
+ In Windows, SlowPathCall should be handled by JITSlowPathCall, otherwise, stack is not correctly allocated.
+
+ * jit/JITCall.cpp:
+ (JSC::JIT::emit_op_iterator_open):
+ (JSC::JIT::emit_op_iterator_next):
+ * jit/SlowPathCall.h:
+ (JSC::JITSlowPathCall::call):
+
+2020-04-19 Yusuke Suzuki <[email protected]>
+
[JSC] Enable BigInt
https://bugs.webkit.org/show_bug.cgi?id=210726
Modified: trunk/Source/_javascript_Core/jit/JITCall.cpp (260345 => 260346)
--- trunk/Source/_javascript_Core/jit/JITCall.cpp 2020-04-20 00:59:00 UTC (rev 260345)
+++ trunk/Source/_javascript_Core/jit/JITCall.cpp 2020-04-20 01:56:24 UTC (rev 260346)
@@ -393,8 +393,9 @@
default: RELEASE_ASSERT_NOT_REACHED();
}
})();
- setupArguments<decltype(tryFastFunction)>(instruction);
- appendCallWithExceptionCheck(tryFastFunction);
+
+ JITSlowPathCall slowPathCall(this, instruction, tryFastFunction);
+ slowPathCall.call();
Jump fastCase = branch32(NotEqual, GPRInfo::returnValueGPR2, TrustedImm32(static_cast<uint32_t>(IterationMode::Generic)));
compileOpCall<OpIteratorOpen>(instruction, m_callLinkInfoIndex++);
@@ -454,8 +455,9 @@
emitGetVirtualRegister(bytecode.m_next, regT0);
Jump genericCase = branchIfNotEmpty(regT0);
- setupArguments<decltype(tryFastFunction)>(instruction);
- appendCallWithExceptionCheck(tryFastFunction);
+
+ JITSlowPathCall slowPathCall(this, instruction, tryFastFunction);
+ slowPathCall.call();
Jump fastCase = branch32(NotEqual, GPRInfo::returnValueGPR2, TrustedImm32(static_cast<uint32_t>(IterationMode::Generic)));
genericCase.link(this);
Modified: trunk/Source/_javascript_Core/jit/SlowPathCall.h (260345 => 260346)
--- trunk/Source/_javascript_Core/jit/SlowPathCall.h 2020-04-20 00:59:00 UTC (rev 260345)
+++ trunk/Source/_javascript_Core/jit/SlowPathCall.h 2020-04-20 01:56:24 UTC (rev 260346)
@@ -64,6 +64,8 @@
#if CPU(X86_64) && OS(WINDOWS)
m_jit->pop(JIT::regT0); // vPC
m_jit->pop(JIT::regT1); // callFrame register
+ static_assert(JIT::regT0 == GPRInfo::returnValueGPR);
+ static_assert(JIT::regT1 == GPRInfo::returnValueGPR2);
#endif
#if ENABLE(OPCODE_SAMPLING)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes