Changeset 143800 in webkit


Ignore:
Timestamp:
Feb 22, 2013, 2:38:14 PM (12 years ago)
Author:
fpizlo@apple.com
Message:

REGRESSION(r143654): some fast/js test crashes on 32 bit build
https://bugs.webkit.org/show_bug.cgi?id=110590

Reviewed by Mark Hahnenberg.

In compileValueToInt32, the refactoring in r143654 undid one of the fixes from
r143314 due to a merge goof.

In speculateNumber, we were simply forgetting to indicate that we need a
ManualOperandSpeculation on a JSValueOperand. ManualOperandSpeculation should
be passed whenever you will be performing the type checks yourself rather than
using the operand class to do it for you.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::speculateNumber):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r143768 r143800  
     12013-02-22  Filip Pizlo  <fpizlo@apple.com>
     2
     3        REGRESSION(r143654): some fast/js test crashes on 32 bit build
     4        https://bugs.webkit.org/show_bug.cgi?id=110590
     5
     6        Reviewed by Mark Hahnenberg.
     7       
     8        In compileValueToInt32, the refactoring in r143654 undid one of the fixes from
     9        r143314 due to a merge goof.
     10       
     11        In speculateNumber, we were simply forgetting to indicate that we need a
     12        ManualOperandSpeculation on a JSValueOperand. ManualOperandSpeculation should
     13        be passed whenever you will be performing the type checks yourself rather than
     14        using the operand class to do it for you.
     15
     16        * dfg/DFGSpeculativeJIT.cpp:
     17        (JSC::DFG::SpeculativeJIT::compileValueToInt32):
     18        (JSC::DFG::SpeculativeJIT::speculateNumber):
     19
    1202013-02-22  Geoffrey Garen  <ggaren@apple.com>
    221
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

    r143654 r143800  
    22892289        }
    22902290        case GeneratedOperandTypeUnknown:
    2291             RELEASE_ASSERT_NOT_REACHED();
     2291            RELEASE_ASSERT(!m_compileOkay);
    22922292            return;
    22932293        }
     
    39453945    isInteger.link(&m_jit);
    39463946#else
    3947     JSValueOperand op1(this, edge);
     3947    JSValueOperand op1(this, edge, ManualOperandSpeculation);
    39483948    JITCompiler::Jump isInteger = m_jit.branch32(MacroAssembler::Equal, operand.tagGPR(), TrustedImm32(JSValue::Int32Tag));
    39493949    typeCheck(
Note: See TracChangeset for help on using the changeset viewer.