WebKit Bugzilla
Attachment 368574 Details for
Bug 197420
: Fix failing ARM64E wasm tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197420-20190430095953.patch (text/plain), 2.98 KB, created by
Keith Miller
on 2019-04-30 10:00:04 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Keith Miller
Created:
2019-04-30 10:00:04 PDT
Size:
2.98 KB
patch
obsolete
>Subversion Revision: 244779 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 3247ca19fd54daea95474a38af5d36fae08a71a6..29de93af5fd9d20e965ad939be078af0b99b337d 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,21 @@ >+2019-04-30 Keith Miller <keith_miller@apple.com> >+ >+ Fix failing ARM64E wasm tests >+ https://bugs.webkit.org/show_bug.cgi?id=197420 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This patch fixes a bug in the slow path of our JS->Wasm IC bridge >+ where we wouldn't untag the link register before tail calling. >+ >+ Additionally, this patch fixes a broken assert when using setting >+ Options::useTailCalls=false. >+ >+ * bytecompiler/BytecodeGenerator.cpp: >+ (JSC::BytecodeGenerator::emitCallForwardArgumentsInTailPosition): >+ * wasm/js/WebAssemblyFunction.cpp: >+ (JSC::WebAssemblyFunction::jsCallEntrypointSlow): >+ > 2019-04-29 Saam Barati <sbarati@apple.com> > > Make JITType an enum class >diff --git a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp >index ba9b81579fe2aa67afc4bd8c3363be8b11649f0a..d0cb7d7b06880a33e7b19ba5a09933695c66f00f 100644 >--- a/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp >+++ b/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp >@@ -3285,7 +3285,8 @@ RegisterID* BytecodeGenerator::emitConstructVarargs(RegisterID* dst, RegisterID* > > RegisterID* BytecodeGenerator::emitCallForwardArgumentsInTailPosition(RegisterID* dst, RegisterID* func, RegisterID* thisRegister, RegisterID* firstFreeRegister, int32_t firstVarArgOffset, const JSTextPosition& divot, const JSTextPosition& divotStart, const JSTextPosition& divotEnd, DebuggableCall debuggableCall) > { >- ASSERT(m_inTailPosition); >+ // We must emit a tail call here because we did not allocate an arguments object thus we would otherwise have no way to correctly make this call. >+ ASSERT(m_inTailPosition || !Options::useTailCalls); > return emitCallVarargs<OpTailCallForwardArguments>(dst, func, thisRegister, nullptr, firstFreeRegister, firstVarArgOffset, divot, divotStart, divotEnd, debuggableCall); > } > >diff --git a/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp b/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp >index 02ef41e43ef30bdacf8f156b9de4c9c5134940b0..8f6e56db6e114b55784a66345278c7519ff7e86e 100644 >--- a/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp >+++ b/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp >@@ -470,6 +470,9 @@ MacroAssemblerCodePtr<JSEntryPtrTag> WebAssemblyFunction::jsCallEntrypointSlow() > emitRestoreCalleeSaves(); > jit.move(CCallHelpers::TrustedImmPtr(this), GPRInfo::regT0); > jit.emitFunctionEpilogue(); >+#if CPU(ARM64E) >+ jit.untagPtr(MacroAssembler::linkRegister, MacroAssembler::stackPointerRegister); >+#endif > auto jumpToHostCallThunk = jit.jump(); > > LinkBuffer linkBuffer(jit, nullptr, JITCompilationCanFail);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
saam
:
review+
keith_miller
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197420
: 368574