Ignore:
Timestamp:
Jan 29, 2019, 2:41:27 AM (6 years ago)
Author:
[email protected]
Message:

[ARM] Check for negative zero instead of just zero
https://bugs.webkit.org/show_bug.cgi?id=193689

Reviewed by Mark Lam.

ARM now performs a negative zero check in branchConvertDoubleToInt32 instead
of just bailing out for zero.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r238543 r240650  
    12531253        failureCases.append(branchDouble(DoubleNotEqualOrUnordered, src, fpTempRegister));
    12541254
    1255         // If the result is zero, it might have been -0.0, and the double comparison won't catch this!
    1256         if (negZeroCheck)
    1257             failureCases.append(branchTest32(Zero, dest));
     1255        // Test for negative zero.
     1256        if (negZeroCheck) {
     1257            Jump valueIsNonZero = branchTest32(NonZero, dest);
     1258            m_assembler.vmov(dataTempRegister, ARMRegisters::asSingleUpper(src));
     1259            failureCases.append(branch32(LessThan, dataTempRegister, TrustedImm32(0)));
     1260            valueIsNonZero.link(this);
     1261        }
    12581262    }
    12591263
Note: See TracChangeset for help on using the changeset viewer.