⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 278662 in webkit


Ignore:
Timestamp:
Jun 9, 2021, 9:31:25 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

[JSC] Fix incorrect register reuse in 32bit after r278568
https://bugs.webkit.org/show_bug.cgi?id=226817

Patch by Xan Lopez <Xan Lopez> on 2021-06-09
Reviewed by Caio Araujo Neponoceno de Lima.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
The JSVALUE32_64 branch potentially needs both the tag and payload
registers for both left/right nodes, so we cannot reuse any of
them for the result since the first thing the code does is set it
zero. Just remove the Reuse construction.

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r278660 r278662  
     12021-06-09  Xan Lopez  <xan@igalia.com>
     2
     3        [JSC] Fix incorrect register reuse in 32bit after r278568
     4        https://bugs.webkit.org/show_bug.cgi?id=226817
     5
     6        Reviewed by Caio Araujo Neponoceno de Lima.
     7
     8        * dfg/DFGSpeculativeJIT.cpp:
     9        (JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
     10        The JSVALUE32_64 branch potentially needs both the tag and payload
     11        registers for both left/right nodes, so we cannot reuse any of
     12        them for the result since the first thing the code does is set it
     13        zero. Just remove the Reuse construction.
     14
    1152021-06-09  Mikhail R. Gadelha  <mikhail@igalia.com>
    216
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

    r278656 r278662  
    73867386    GPRTemporary result(this, Reuse, left, right);
    73877387#else
    7388     GPRTemporary result(this, Reuse, left, PayloadWord);
     7388    GPRTemporary result(this);
    73897389#endif
    73907390    JSValueRegs leftRegs = left.jsValueRegs();
Note: See TracChangeset for help on using the changeset viewer.