Ignore:
Timestamp:
Sep 7, 2013, 2:13:55 PM (12 years ago)
Author:
[email protected]
Message:

FTL should support typed array GetByVal and related ops
https://bugs.webkit.org/show_bug.cgi?id=120965

Reviewed by Oliver Hunt.

This adds support for typed array instantiations of the following DFG IR ops:

  • GetByVal


  • GetIndexedPropertyStorage


  • CheckArray


  • GetArrayLength


This also adds CheckArray for Int32/Double/Contiguous arrays.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::toIndexingShape):

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::shapeMask):

  • ftl/FTLAbbreviations.h:

(JSC::FTL::floatType):
(JSC::FTL::buildSExt):
(JSC::FTL::buildFPCast):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCommonValues.cpp:

(JSC::FTL::CommonValues::CommonValues):

  • ftl/FTLCommonValues.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetIndexedPropertyStorage):
(JSC::FTL::LowerDFGToLLVM::compileCheckArray):
(JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
(JSC::FTL::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::LowerDFGToLLVM::isArrayType):
(JSC::FTL::LowerDFGToLLVM::hasClassInfo):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::signExt):
(JSC::FTL::Output::fpCast):
(JSC::FTL::Output::loadFloat):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGArrayMode.h

    r154305 r155260  
    105105const char* arrayConversionToString(Array::Conversion);
    106106
     107IndexingType toIndexingShape(Array::Type);
     108
    107109TypedArrayType toTypedArrayType(Array::Type);
    108110Array::Type toArrayType(TypedArrayType);
     
    384386    }
    385387   
     388    IndexingType shapeMask() const
     389    {
     390        return toIndexingShape(type());
     391    }
     392   
    386393    TypedArrayType typedArrayType() const
    387394    {
Note: See TracChangeset for help on using the changeset viewer.