haikuwebkit/Source/JavaScriptCore/interpreter
Keith Miller c44db5fb09 CallFrame::returnPC should untag the return address before passing it to ReturnAddressPtr
https://bugs.webkit.org/show_bug.cgi?id=228931

Reviewed by Mark Lam.

Source/JavaScriptCore:

Right now current debugging code expects that the JS return PC on
the stack is already unsigned. This is not true on arm64e.
This patch now properly unsigns the return PC before passing it to
the ReturnAddressPC constructor.

* assembler/MacroAssemblerCodeRef.h:
(JSC::ReturnAddressPtr::fromTaggedPC):
* interpreter/AbstractPC.cpp:
(JSC::AbstractPC::AbstractPC):
* interpreter/AbstractPC.h:
(JSC::AbstractPC::AbstractPC):
(JSC::AbstractPC::jitReturnAddress const):
* interpreter/CallFrame.h:
(JSC::CallFrame::returnPC const):

Source/WTF:

Add a new helper to untag the return pc from a stack frame.

* wtf/PtrTag.h:
(WTF::untagReturnPC):


Canonical link: https://commits.webkit.org/240399@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280858 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-10 18:17:15 +00:00
..
AbstractPC.cpp CallFrame::returnPC should untag the return address before passing it to ReturnAddressPtr 2021-08-10 18:17:15 +00:00
AbstractPC.h CallFrame::returnPC should untag the return address before passing it to ReturnAddressPtr 2021-08-10 18:17:15 +00:00
CLoopStack.cpp Replace LockHolder with Locker in local variables 2021-05-22 16:49:42 +00:00
CLoopStack.h
CLoopStackInlines.h
CachedCall.h
CallFrame.cpp [JSC] Call custom accessors / values with their holder's global object 2021-07-23 20:13:31 +00:00
CallFrame.h CallFrame::returnPC should untag the return address before passing it to ReturnAddressPtr 2021-08-10 18:17:15 +00:00
CallFrameClosure.h numCalleeLocals, numParameters, and numVars should be unsigned 2021-04-26 20:20:13 +00:00
CallFrameInlines.h
CalleeBits.h
CheckpointOSRExitSideState.h
EntryFrame.h
FrameTracers.h
Interpreter.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
Interpreter.h Implement the Top-level await proposal 2021-02-22 00:41:30 +00:00
InterpreterInlines.h Enable VMTraps checks in RETURN_IF_EXCEPTION. 2021-04-10 16:12:19 +00:00
ProtoCallFrame.h
ProtoCallFrameInlines.h numCalleeLocals, numParameters, and numVars should be unsigned 2021-04-26 20:20:13 +00:00
Register.h for-in should only emit one loop in bytecode 2021-08-07 21:38:59 +00:00
RegisterInlines.h for-in should only emit one loop in bytecode 2021-08-07 21:38:59 +00:00
ShadowChicken.cpp Fix exception assertions in light of the TerminationException. 2021-04-28 17:13:40 +00:00
ShadowChicken.h Implement a GC verifier. 2021-02-19 15:51:15 +00:00
ShadowChickenInlines.h
StackVisitor.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
StackVisitor.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
VMEntryRecord.h