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

Changeset 202899 in webkit


Ignore:
Timestamp:
Jul 7, 2016, 1:32:50 AM (10 years ago)
Author:
Csaba Osztrogonác
Message:
[ARMv7] REGRESSION(r197655): ASSERTION FAILED: (cond == Zero)
(cond == NonZero)

https://bugs.webkit.org/show_bug.cgi?id=159419

Reviewed by Benjamin Poulain.

Allow Signed and PositiveOrZero conditions too because tst instruction updates N and Z flags.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchTest32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchTest32): Add assertions to avoid possible bugs in the future.

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r202896 r202899  
     12016-07-07  Csaba Osztrogonác  <ossy@webkit.org>
     2
     3        [ARMv7] REGRESSION(r197655): ASSERTION FAILED: (cond == Zero) || (cond == NonZero)
     4        https://bugs.webkit.org/show_bug.cgi?id=159419
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Allow Signed and PositiveOrZero conditions too because tst instruction updates N and Z flags.
     9
     10        * assembler/MacroAssemblerARM.h:
     11        (JSC::MacroAssemblerARM::branchTest32):
     12        * assembler/MacroAssemblerARMv7.h:
     13        (JSC::MacroAssemblerARMv7::branchTest32): Add assertions to avoid possible bugs in the future.
     14
    1152016-07-06  Youenn Fablet  <youenn@apple.com>
    216
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r198999 r202899  
    705705    Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask)
    706706    {
    707         ASSERT((cond == Zero) || (cond == NonZero));
     707        ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero);
    708708        m_assembler.tst(reg, mask);
    709709        return Jump(m_assembler.jmp(ARMCondition(cond)));
     
    712712    Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1))
    713713    {
    714         ASSERT((cond == Zero) || (cond == NonZero));
     714        ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero);
    715715        ARMWord w = m_assembler.getImm(mask.m_value, ARMRegisters::S0, true);
    716716        if (w & ARMAssembler::Op2InvertedImmediate)
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r202214 r202899  
    15071507    Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask)
    15081508    {
     1509        ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero);
    15091510        m_assembler.tst(reg, mask);
    15101511        return Jump(makeBranch(cond));
     
    15131514    Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1))
    15141515    {
     1516        ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero);
    15151517        test32(reg, mask);
    15161518        return Jump(makeBranch(cond));
Note: See TracChangeset for help on using the changeset viewer.