Changeset 157482 in webkit


Ignore:
Timestamp:
Oct 15, 2013 8:59:12 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

FTL: add support for Int52ToValue and fix putByVal of int52s.
https://bugs.webkit.org/show_bug.cgi?id=122873

Patch by Nadav Rotem <nrotem@apple.com> on 2013-10-15
Reviewed by Filip Pizlo.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileInt52ToValue):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r157481 r157482  
     12013-10-15  Nadav Rotem  <nrotem@apple.com>
     2
     3        FTL: add support for Int52ToValue and fix putByVal of int52s.
     4        https://bugs.webkit.org/show_bug.cgi?id=122873
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * ftl/FTLCapabilities.cpp:
     9        (JSC::FTL::canCompile):
     10        * ftl/FTLLowerDFGToLLVM.cpp:
     11        (JSC::FTL::LowerDFGToLLVM::compileNode):
     12        (JSC::FTL::LowerDFGToLLVM::compileInt52ToValue):
     13        (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
     14
    1152013-10-15  Filip Pizlo  <fpizlo@apple.com>
    216
  • trunk/Source/JavaScriptCore/ftl/FTLCapabilities.cpp

    r157429 r157482  
    9696    case PutClosureVar:
    9797    case GetById:
     98    case Int52ToValue:
    9899        // These are OK.
    99100        break;
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp

    r157429 r157482  
    450450            compileValueToInt32();
    451451            break;
     452        case Int52ToValue:
     453            compileInt52ToValue();
     454            break;
    452455        default:
    453456            RELEASE_ASSERT_NOT_REACHED();
     
    472475        setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
    473476    }
    474    
     477
     478    void compileInt52ToValue()
     479    {
     480        setJSValue(lowJSValue(m_node->child1()));
     481    }
     482
    475483    void compileUpsilon()
    476484    {
     
    15311539                    LValue intValue;
    15321540                    switch (child3.useKind()) {
     1541                    case MachineIntUse:
    15331542                    case Int32Use: {
    1534                         intValue = lowInt32(child3);
     1543                        if (child3.useKind() == Int32Use)
     1544                            intValue = lowInt32(child3);
     1545                        else
     1546                            intValue = m_out.castToInt32(lowInt52(child3));
     1547
    15351548                        if (isClamped(type)) {
    15361549                            ASSERT(elementSize(type) == 1);
Note: See TracChangeset for help on using the changeset viewer.