Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f93c606efccc5df180d461167efe78f1824ffb8
      
https://github.com/WebKit/WebKit/commit/7f93c606efccc5df180d461167efe78f1824ffb8
  Author: Justin Michaud <[email protected]>
  Date:   2024-04-25 (Thu, 25 Apr 2024)

  Changed paths:
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
    M Source/JavaScriptCore/jit/CallFrameShuffler.h

  Log Message:
  -----------
  Spurious assertion after direct call data ic on 32 bits
https://bugs.webkit.org/show_bug.cgi?id=273183

Reviewed by Yusuke Suzuki.

This assertion made sense before DataIC. It is asserting that we only see boxed 
ints,
because unboxed ints should use the other version of the addNew method that 
takes JSValueRegs.

Essentially, on 32-bit, we may have separate Tag and Payload recoveries that 
should map to the same
cachedRecovery. When we iterate over each register in CallFrameShuffler(), we 
lose this information, so
addNew really becomes addNew (or update the tag register).

Now though, recent DataIC changes mean the CallLinkInfo* needs to be mainained
by the call frame shuffler in the DirectTailCall case, unboxed. So, we just 
move the assertion to
the case where it actually matters.

* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* Source/JavaScriptCore/jit/CallFrameShuffler.h:
(JSC::CallFrameShuffler::addNew):

Canonical link: https://commits.webkit.org/277977@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to