Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 582cb0306b7c19a8a9ebd3846629d36280685858
      
https://github.com/WebKit/WebKit/commit/582cb0306b7c19a8a9ebd3846629d36280685858
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-02-09 (Mon, 09 Feb 2026)

  Changed paths:
    A JSTests/stress/int52-arith-div-logical-not.js
    A JSTests/stress/int52-arith-div-with-overflow-unchecked.js
    A JSTests/stress/int52-arith-div.js
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp
    M Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
    M Source/JavaScriptCore/dfg/DFGGraph.h
    M Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

  Log Message:
  -----------
  [JSC] Add ArithDiv(Int52Use, Int52Use) in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=307266
rdar://169906979

Reviewed by Sosuke Suzuki.

This patch adds ArithDiv(Int52Use, Int52Use) support in DFG / FTL.
Basically this is exactly similar to ArithDiv(Int32Use, Int32Use). But
one difference is that, because both are Int52, not Int64, we don't need
to consider about -INT64_MIN like overflow.

Tests: JSTests/stress/int52-arith-div-logical-not.js
       JSTests/stress/int52-arith-div-with-overflow-unchecked.js
       JSTests/stress/int52-arith-div.js

* JSTests/stress/int52-arith-div-logical-not.js: Added.
(divInt52LogicalNotDivByZero):
(divInt52LogicalNotMixed):
(divInt52LogicalNotNegInf):
(divInt52LogicalNotNaN):
(i.else):
(divInt52LogicalNotZeroResult):
(modInt52LogicalNotDivByZero):
* JSTests/stress/int52-arith-div-with-overflow-unchecked.js: Added.
(divInt52BitOr):
(divInt52DivByZeroBitOr):
(divInt52AlwaysZeroDivisorBitOr):
(divInt52NegZeroBitOr):
(divInt52BitAnd):
(divInt52BitXor):
(divInt52BitShift):
(divInt52VaryingBitOr):
(divInt52VaryingZeroBitOr):
(divInt52StressBitOr):
* JSTests/stress/int52-arith-div.js: Added.
(divideInt52):
(divideAnyIntAsDouble):
(divideSelf):
(divByOne):
(divByNegOne):
(divByPowerOfTwo):
(checkNegativeZero):
(checkPositiveZero):
(divNegZero1):
(divNegZero2):
(divPosZero1):
(divNonExact):
(divMaxInt52):
(divMinInt52):
(divMinInt52ByNegOne):
(divLargeExact1):
(divLargeExact2):
(divMixed1):
(divMixed2):
(divJustAboveInt32):
(divJustBelowInt32Min):
(divAlternating):
(divStress):
(divComputedInt52):
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::handleConstantDivOp):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupArithDiv):
* Source/JavaScriptCore/dfg/DFGGraph.h:
* Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArithDiv):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to