Title: [189074] branches/jsc-tailcall/Source/_javascript_Core
- Revision
- 189074
- Author
- msab...@apple.com
- Date
- 2015-08-27 16:53:17 -0700 (Thu, 27 Aug 2015)
Log Message
jsc-tailcall: ARM64 crashes running most any test
https://bugs.webkit.org/show_bug.cgi?id=148547
Reviewed by Basile Clement.
* jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::CallFrameShuffler): Exclude all callee save registers instead
of runtime registers as not all callee saves are enumerated in GPRInfo.
* jit/GPRInfo.h: Increased numberCalleeSaveRegisters for ARM64 to include all
architected callee saves, x19..x28.
Modified Paths
Diff
Modified: branches/jsc-tailcall/Source/_javascript_Core/ChangeLog (189073 => 189074)
--- branches/jsc-tailcall/Source/_javascript_Core/ChangeLog 2015-08-27 23:52:26 UTC (rev 189073)
+++ branches/jsc-tailcall/Source/_javascript_Core/ChangeLog 2015-08-27 23:53:17 UTC (rev 189074)
@@ -1,3 +1,16 @@
+2015-08-27 Michael Saboff <msab...@apple.com>
+
+ jsc-tailcall: ARM64 crashes running most any test
+ https://bugs.webkit.org/show_bug.cgi?id=148547
+
+ Reviewed by Basile Clement.
+
+ * jit/CallFrameShuffler.cpp:
+ (JSC::CallFrameShuffler::CallFrameShuffler): Exclude all callee save registers instead
+ of runtime registers as not all callee saves are enumerated in GPRInfo.
+ * jit/GPRInfo.h: Increased numberCalleeSaveRegisters for ARM64 to include all
+ architected callee saves, x19..x28.
+
2015-08-27 Basile Clement <basile_clem...@apple.com>
Unreviewed, revert r189049 which should never have been committed.
Modified: branches/jsc-tailcall/Source/_javascript_Core/jit/CallFrameShuffler.cpp (189073 => 189074)
--- branches/jsc-tailcall/Source/_javascript_Core/jit/CallFrameShuffler.cpp 2015-08-27 23:52:26 UTC (rev 189073)
+++ branches/jsc-tailcall/Source/_javascript_Core/jit/CallFrameShuffler.cpp 2015-08-27 23:53:17 UTC (rev 189074)
@@ -50,7 +50,7 @@
for (unsigned i = FPRInfo::numberOfRegisters; i--; )
m_lockedRegisters.clear(FPRInfo::toRegister(i));
// ... as well as the runtime registers.
- m_lockedRegisters.exclude(RegisterSet::runtimeRegisters());
+ m_lockedRegisters.exclude(RegisterSet::allVMCalleeSaveRegisters());
ASSERT(!data.callee.isInJSStack() || data.callee.virtualRegister().isLocal());
addNew(VirtualRegister(JSStack::Callee), data.callee);
Modified: branches/jsc-tailcall/Source/_javascript_Core/jit/GPRInfo.h (189073 => 189074)
--- branches/jsc-tailcall/Source/_javascript_Core/jit/GPRInfo.h 2015-08-27 23:52:26 UTC (rev 189073)
+++ branches/jsc-tailcall/Source/_javascript_Core/jit/GPRInfo.h 2015-08-27 23:53:17 UTC (rev 189074)
@@ -648,7 +648,7 @@
static const GPRReg nonPreservedNonArgumentGPR = ARM64Registers::x8;
static const GPRReg patchpointScratchRegister = ARM64Registers::ip0;
static const int numberOfLLIntBaselineCalleeSaveRegisters = 3; // x26 (LLInt only), x27 & x28
- static const int numberCalleeSaveRegisters = 3;
+ static const int numberCalleeSaveRegisters = 10;
// GPRReg mapping is direct, the machine regsiter numbers can
// be used directly as indices into the GPR RegisterBank.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes