Changeset 87702 in webkit


Ignore:
Timestamp:
May 30, 2011 4:49:51 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-05-30 Hojong Han <hojong.han@samsung.com>

Reviewed by Geoffrey Garen.

[JSC] malfunction during arithmetic condition check with negative number (-2147483648)
https://bugs.webkit.org/show_bug.cgi?id=61416

  • assembler/MacroAssemblerARM.h: (JSC::MacroAssemblerARM::branch32):
  • tests/mozilla/ecma/Expressions/11.12-1.js: (getTestCases):
Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r87653 r87702  
     12011-05-30  Hojong Han  <hojong.han@samsung.com>
     2
     3        Reviewed by Geoffrey Garen.
     4
     5        [JSC] malfunction during arithmetic condition check with negative number (-2147483648)
     6        https://bugs.webkit.org/show_bug.cgi?id=61416
     7
     8        * assembler/MacroAssemblerARM.h:
     9        (JSC::MacroAssemblerARM::branch32):
     10        * tests/mozilla/ecma/Expressions/11.12-1.js:
     11        (getTestCases):
     12
    1132011-05-29  Geoffrey Garen  <ggaren@apple.com>
    214
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r87356 r87702  
    417417            m_assembler.cmp_r(left, ARMRegisters::S0);
    418418        } else {
    419             ARMWord tmp = m_assembler.getOp2(-right.m_value);
     419            ARMWord tmp = (right.m_value == 0x80000000) ? ARMAssembler::INVALID_IMM : m_assembler.getOp2(-right.m_value);
    420420            if (tmp != ARMAssembler::INVALID_IMM)
    421421                m_assembler.cmn_r(left, tmp);
  • trunk/Source/JavaScriptCore/tests/mozilla/ecma/Expressions/11.12-1.js

    r11995 r87702  
    7070    array[item++] = new TestCase( SECTION,    "var VAR = true ? , : 'FAILED'", "PASSED",           (VAR = true ? "PASSED" : "FAILED") );
    7171
     72    array[item++] = new TestCase( SECTION,    "item = " + item +"; VAR = (item < -2147483648) ? 'FAILED' : 'PASSED'", "PASSED",           (VAR = (item < -2147483648) ? "FAILED" : "PASSED") );
     73
    7274    return ( array );
    7375}
Note: See TracChangeset for help on using the changeset viewer.