Changeset 202899 in webkit
- Timestamp:
- Jul 7, 2016, 1:32:50 AM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
assembler/MacroAssemblerARM.h (modified) (2 diffs)
-
assembler/MacroAssemblerARMv7.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r202896 r202899 1 2016-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 1 15 2016-07-06 Youenn Fablet <youenn@apple.com> 2 16 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h
r198999 r202899 705 705 Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask) 706 706 { 707 ASSERT( (cond == Zero) || (cond == NonZero));707 ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero); 708 708 m_assembler.tst(reg, mask); 709 709 return Jump(m_assembler.jmp(ARMCondition(cond))); … … 712 712 Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1)) 713 713 { 714 ASSERT( (cond == Zero) || (cond == NonZero));714 ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero); 715 715 ARMWord w = m_assembler.getImm(mask.m_value, ARMRegisters::S0, true); 716 716 if (w & ARMAssembler::Op2InvertedImmediate) -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r202214 r202899 1507 1507 Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask) 1508 1508 { 1509 ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero); 1509 1510 m_assembler.tst(reg, mask); 1510 1511 return Jump(makeBranch(cond)); … … 1513 1514 Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1)) 1514 1515 { 1516 ASSERT(cond == Zero || cond == NonZero || cond == Signed || cond == PositiveOrZero); 1515 1517 test32(reg, mask); 1516 1518 return Jump(makeBranch(cond));
Note:
See TracChangeset
for help on using the changeset viewer.