Changeset 202792 in webkit


Ignore:
Timestamp:
Jul 3, 2016 12:34:55 PM (8 years ago)
Author:
fpizlo@apple.com
Message:

FTL should refer to B3 types directly
https://bugs.webkit.org/show_bug.cgi?id=159389

Reviewed by Saam Barati.

When we used LLVM, types were objects that were allocated by the LLVMContext. We had to
remember pointers to them or else call through the C API every time we wanted the type. We
stored the type pointers inside FTL::CommonValues.

But in B3, types are just members of an enum. We don't have to remember pointers to them.

This change replaces all prior uses of things like "m_out.int32" with just "Int32", and
likewise for m_out.boolean, m_out.int64, m_out.intPtr, m_out.floatType, m_out.doubleType,
and m_out.voidType.

We still use FTL::CommonValues for common constants that we have pre-hoisted. Hopefully we
will come up with a better story for those eventually, since that's still kinda ugly.

  • ftl/FTLCommonValues.cpp:

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

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

(JSC::FTL::DFG::LowerDFGToB3::createPhiVariables):
(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
(JSC::FTL::DFG::LowerDFGToB3::compileBooleanToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
(JSC::FTL::DFG::LowerDFGToB3::compileArithMinOrMax):
(JSC::FTL::DFG::LowerDFGToB3::compileArithPow):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayifyToStructure):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCopyRest):
(JSC::FTL::DFG::LowerDFGToB3::compileGetRestLength):
(JSC::FTL::DFG::LowerDFGToB3::compileNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::compileIsString):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckTypeInfoFlags):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToB3::compileCountExecution):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumerableLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorStructurePname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorGenericPname):
(JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStructureImmediate):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32):
(JSC::FTL::DFG::LowerDFGToB3::checkInferredType):
(JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):
(JSC::FTL::DFG::LowerDFGToB3::speculateTruthyObject):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::equalNullOrUndefined):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToB3::buildSwitch):
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::strictInt52ToJSValue):
(JSC::FTL::DFG::LowerDFGToB3::strictInt52ToInt52):
(JSC::FTL::DFG::LowerDFGToB3::unboxInt32):
(JSC::FTL::DFG::LowerDFGToB3::boxInt32):
(JSC::FTL::DFG::LowerDFGToB3::isCellOrMisc):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):
(JSC::FTL::DFG::LowerDFGToB3::boxDouble):
(JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::doubleToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::convertDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::callCheck):
(JSC::FTL::DFG::LowerDFGToB3::crash):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::bitCast):

Location:
trunk/Source/JavaScriptCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r202790 r202792  
     12016-07-03  Filip Pizlo  <fpizlo@apple.com>
     2
     3        FTL should refer to B3 types directly
     4        https://bugs.webkit.org/show_bug.cgi?id=159389
     5
     6        Reviewed by Saam Barati.
     7       
     8        When we used LLVM, types were objects that were allocated by the LLVMContext. We had to
     9        remember pointers to them or else call through the C API every time we wanted the type. We
     10        stored the type pointers inside FTL::CommonValues.
     11       
     12        But in B3, types are just members of an enum. We don't have to remember pointers to them.
     13       
     14        This change replaces all prior uses of things like "m_out.int32" with just "Int32", and
     15        likewise for m_out.boolean, m_out.int64, m_out.intPtr, m_out.floatType, m_out.doubleType,
     16        and m_out.voidType.
     17       
     18        We still use FTL::CommonValues for common constants that we have pre-hoisted. Hopefully we
     19        will come up with a better story for those eventually, since that's still kinda ugly.
     20
     21        * ftl/FTLCommonValues.cpp:
     22        (JSC::FTL::CommonValues::CommonValues):
     23        * ftl/FTLCommonValues.h:
     24        * ftl/FTLLowerDFGToB3.cpp:
     25        (JSC::FTL::DFG::LowerDFGToB3::createPhiVariables):
     26        (JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
     27        (JSC::FTL::DFG::LowerDFGToB3::compileBooleanToNumber):
     28        (JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
     29        (JSC::FTL::DFG::LowerDFGToB3::compileToThis):
     30        (JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
     31        (JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
     32        (JSC::FTL::DFG::LowerDFGToB3::compileArithMinOrMax):
     33        (JSC::FTL::DFG::LowerDFGToB3::compileArithPow):
     34        (JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
     35        (JSC::FTL::DFG::LowerDFGToB3::compileArrayifyToStructure):
     36        (JSC::FTL::DFG::LowerDFGToB3::compileGetById):
     37        (JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
     38        (JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
     39        (JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
     40        (JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
     41        (JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
     42        (JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
     43        (JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
     44        (JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
     45        (JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
     46        (JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
     47        (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
     48        (JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
     49        (JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
     50        (JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
     51        (JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
     52        (JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
     53        (JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
     54        (JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
     55        (JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
     56        (JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
     57        (JSC::FTL::DFG::LowerDFGToB3::compileCopyRest):
     58        (JSC::FTL::DFG::LowerDFGToB3::compileGetRestLength):
     59        (JSC::FTL::DFG::LowerDFGToB3::compileNewObject):
     60        (JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
     61        (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
     62        (JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
     63        (JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
     64        (JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
     65        (JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructor):
     66        (JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
     67        (JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
     68        (JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
     69        (JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
     70        (JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
     71        (JSC::FTL::DFG::LowerDFGToB3::compileGetByOffset):
     72        (JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
     73        (JSC::FTL::DFG::LowerDFGToB3::compilePutByOffset):
     74        (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
     75        (JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
     76        (JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
     77        (JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
     78        (JSC::FTL::DFG::LowerDFGToB3::compileIsString):
     79        (JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
     80        (JSC::FTL::DFG::LowerDFGToB3::compileIsObject):
     81        (JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
     82        (JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
     83        (JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
     84        (JSC::FTL::DFG::LowerDFGToB3::compileIsTypedArrayView):
     85        (JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
     86        (JSC::FTL::DFG::LowerDFGToB3::compileIn):
     87        (JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance):
     88        (JSC::FTL::DFG::LowerDFGToB3::compileCheckTypeInfoFlags):
     89        (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
     90        (JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
     91        (JSC::FTL::DFG::LowerDFGToB3::compileCountExecution):
     92        (JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
     93        (JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
     94        (JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
     95        (JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
     96        (JSC::FTL::DFG::LowerDFGToB3::compileGetEnumerableLength):
     97        (JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
     98        (JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorStructurePname):
     99        (JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorGenericPname):
     100        (JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
     101        (JSC::FTL::DFG::LowerDFGToB3::compileCheckStructureImmediate):
     102        (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
     103        (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
     104        (JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
     105        (JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32):
     106        (JSC::FTL::DFG::LowerDFGToB3::checkInferredType):
     107        (JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
     108        (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
     109        (JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
     110        (JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
     111        (JSC::FTL::DFG::LowerDFGToB3::getById):
     112        (JSC::FTL::DFG::LowerDFGToB3::compare):
     113        (JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
     114        (JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
     115        (JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):
     116        (JSC::FTL::DFG::LowerDFGToB3::speculateTruthyObject):
     117        (JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
     118        (JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
     119        (JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
     120        (JSC::FTL::DFG::LowerDFGToB3::allocateObject):
     121        (JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
     122        (JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
     123        (JSC::FTL::DFG::LowerDFGToB3::boolify):
     124        (JSC::FTL::DFG::LowerDFGToB3::equalNullOrUndefined):
     125        (JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
     126        (JSC::FTL::DFG::LowerDFGToB3::buildSwitch):
     127        (JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
     128        (JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
     129        (JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
     130        (JSC::FTL::DFG::LowerDFGToB3::strictInt52ToJSValue):
     131        (JSC::FTL::DFG::LowerDFGToB3::strictInt52ToInt52):
     132        (JSC::FTL::DFG::LowerDFGToB3::unboxInt32):
     133        (JSC::FTL::DFG::LowerDFGToB3::boxInt32):
     134        (JSC::FTL::DFG::LowerDFGToB3::isCellOrMisc):
     135        (JSC::FTL::DFG::LowerDFGToB3::unboxDouble):
     136        (JSC::FTL::DFG::LowerDFGToB3::boxDouble):
     137        (JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
     138        (JSC::FTL::DFG::LowerDFGToB3::doubleToStrictInt52):
     139        (JSC::FTL::DFG::LowerDFGToB3::convertDoubleToInt32):
     140        (JSC::FTL::DFG::LowerDFGToB3::callCheck):
     141        (JSC::FTL::DFG::LowerDFGToB3::crash):
     142        * ftl/FTLOutput.cpp:
     143        (JSC::FTL::Output::bitCast):
     144
    11452016-07-02  Filip Pizlo  <fpizlo@apple.com>
    2146
  • trunk/Source/JavaScriptCore/ftl/FTLCommonValues.cpp

    r196729 r202792  
    4343
    4444CommonValues::CommonValues()
    45     : voidType(B3::Void)
    46     , boolean(B3::Int32)
    47     , int32(B3::Int32)
    48     , int64(B3::Int64)
    49     , intPtr(B3::pointerType())
    50     , floatType(B3::Float)
    51     , doubleType(B3::Double)
    5245{
    5346}
  • trunk/Source/JavaScriptCore/ftl/FTLCommonValues.h

    r196729 r202792  
    4747    void initializeConstants(B3::Procedure&, B3::BasicBlock*);
    4848   
    49     const LType voidType;
    50     const LType boolean;
    51     const LType int32;
    52     const LType int64;
    53     const LType intPtr;
    54     const LType floatType;
    55     const LType doubleType;
    5649    LValue booleanTrue { nullptr };
    5750    LValue booleanFalse { nullptr };
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

    r202680 r202792  
    329329                switch (node->flags() & NodeResultMask) {
    330330                case NodeResultDouble:
    331                     type = m_out.doubleType;
     331                    type = Double;
    332332                    break;
    333333                case NodeResultInt32:
    334                     type = m_out.int32;
     334                    type = Int32;
    335335                    break;
    336336                case NodeResultInt52:
    337                     type = m_out.int64;
     337                    type = Int64;
    338338                    break;
    339339                case NodeResultBoolean:
    340                     type = m_out.boolean;
     340                    type = Int32;
    341341                    break;
    342342                case NodeResultJS:
    343                     type = m_out.int64;
     343                    type = Int64;
    344344                    break;
    345345                default:
     
    11581158            m_out.appendTo(continuation, lastNext);
    11591159           
    1160             setDouble(m_out.phi(m_out.doubleType, fastResult, slowResult));
     1160            setDouble(m_out.phi(Double, fastResult, slowResult));
    11611161            return;
    11621162        }
     
    12321232
    12331233                m_out.appendTo(continuation, lastNext);
    1234                 setDouble(m_out.phi(m_out.doubleType, intToDouble, unboxedDouble, convertedUndefined, convertedNull, convertedTrue, convertedFalse));
     1234                setDouble(m_out.phi(Double, intToDouble, unboxedDouble, convertedUndefined, convertedNull, convertedTrue, convertedFalse));
    12351235                return;
    12361236            }
     
    12411241            m_out.appendTo(continuation, lastNext);
    12421242
    1243             setDouble(m_out.phi(m_out.doubleType, intToDouble, unboxedDouble));
     1243            setDouble(m_out.phi(Double, intToDouble, unboxedDouble));
    12441244            return;
    12451245        }
     
    13541354        switch (m_node->child1().useKind()) {
    13551355        case BooleanUse: {
    1356             setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
     1356            setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), Int32));
    13571357            return;
    13581358        }
     
    13761376            LBasicBlock lastNext = m_out.appendTo(booleanCase, continuation);
    13771377            ValueFromBlock booleanResult = m_out.anchor(m_out.bitOr(
    1378                 m_out.zeroExt(unboxBoolean(value), m_out.int64), m_tagTypeNumber));
     1378                m_out.zeroExt(unboxBoolean(value), Int64), m_tagTypeNumber));
    13791379            m_out.jump(continuation);
    13801380           
    13811381            m_out.appendTo(continuation, lastNext);
    1382             setJSValue(m_out.phi(m_out.int64, booleanResult, notBooleanResult));
     1382            setJSValue(m_out.phi(Int64, booleanResult, notBooleanResult));
    13831383            return;
    13841384        }
     
    14871487
    14881488        m_out.appendTo(slowCase, continuation);
    1489         ValueFromBlock slowResult = m_out.anchor(vmCall(m_out.int64, m_out.operation(operationObjectConstructor), m_callFrame, m_out.constIntPtr(globalObject), value));
     1489        ValueFromBlock slowResult = m_out.anchor(vmCall(Int64, m_out.operation(operationObjectConstructor), m_callFrame, m_out.constIntPtr(globalObject), value));
    14901490        m_out.jump(continuation);
    14911491
    14921492        m_out.appendTo(continuation, lastNext);
    1493         setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     1493        setJSValue(m_out.phi(Int64, fastResult, slowResult));
    14941494    }
    14951495   
     
    15201520            function = operationToThis;
    15211521        ValueFromBlock slowResult = m_out.anchor(
    1522             vmCall(m_out.int64, m_out.operation(function), m_callFrame, value));
     1522            vmCall(Int64, m_out.operation(function), m_callFrame, value));
    15231523        m_out.jump(continuation);
    15241524       
    15251525        m_out.appendTo(continuation, lastNext);
    1526         setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     1526        setJSValue(m_out.phi(Int64, fastResult, slowResult));
    15271527    }
    15281528   
     
    15371537        if (m_node->child3()) {
    15381538            result = vmCall(
    1539                 m_out.int64, m_out.operation(operationStrCat3), m_callFrame,
     1539                Int64, m_out.operation(operationStrCat3), m_callFrame,
    15401540                lowJSValue(m_node->child1(), ManualOperandSpeculation),
    15411541                lowJSValue(m_node->child2(), ManualOperandSpeculation),
     
    15431543        } else {
    15441544            result = vmCall(
    1545                 m_out.int64, m_out.operation(operationStrCat2), m_callFrame,
     1545                Int64, m_out.operation(operationStrCat2), m_callFrame,
    15461546                lowJSValue(m_node->child1(), ManualOperandSpeculation),
    15471547                lowJSValue(m_node->child2(), ManualOperandSpeculation));
     
    18691869           
    18701870            m_out.appendTo(continuation, lastNext);
    1871             setDouble(m_out.phi(m_out.doubleType, results));
     1871            setDouble(m_out.phi(Double, results));
    18721872            break;
    18731873        }
     
    20432043
    20442044            m_out.appendTo(continuation, lastNext);
    2045             setDouble(m_out.phi(m_out.doubleType, powDoubleIntResult, zeroResultExponentIsOneHalf, sqrtResult, sqrtInfinityResult, oneOverSqrtZeroResult, oneOverSqrtResult, oneOverSqrtInfinityResult, powResult, pureNan));
     2045            setDouble(m_out.phi(Double, powDoubleIntResult, zeroResultExponentIsOneHalf, sqrtResult, sqrtInfinityResult, oneOverSqrtZeroResult, oneOverSqrtResult, oneOverSqrtInfinityResult, powResult, pureNan));
    20462046        }
    20472047    }
     
    21192119            m_out.appendTo(continuation, lastNext);
    21202120
    2121             result = m_out.phi(m_out.doubleType, integerValueResult, integerValueRoundedDownResult);
     2121            result = m_out.phi(Double, integerValueResult, integerValueRoundedDownResult);
    21222122        }
    21232123
     
    24202420        switch (m_node->arrayMode().type()) {
    24212421        case Array::Int32:
    2422             vmCall(m_out.voidType, m_out.operation(operationEnsureInt32), m_callFrame, cell);
     2422            vmCall(Void, m_out.operation(operationEnsureInt32), m_callFrame, cell);
    24232423            break;
    24242424        case Array::Double:
    2425             vmCall(m_out.voidType, m_out.operation(operationEnsureDouble), m_callFrame, cell);
     2425            vmCall(Void, m_out.operation(operationEnsureDouble), m_callFrame, cell);
    24262426            break;
    24272427        case Array::Contiguous:
    2428             vmCall(m_out.voidType, m_out.operation(operationEnsureContiguous), m_callFrame, cell);
     2428            vmCall(Void, m_out.operation(operationEnsureContiguous), m_callFrame, cell);
    24292429            break;
    24302430        case Array::ArrayStorage:
    24312431        case Array::SlowPutArrayStorage:
    2432             vmCall(m_out.voidType, m_out.operation(operationEnsureArrayStorage), m_callFrame, cell);
     2432            vmCall(Void, m_out.operation(operationEnsureArrayStorage), m_callFrame, cell);
    24332433            break;
    24342434        default:
     
    24962496            m_out.appendTo(notCellCase, continuation);
    24972497            ValueFromBlock notCellResult = m_out.anchor(vmCall(
    2498                 m_out.int64, m_out.operation(getByIdFunction),
     2498                Int64, m_out.operation(getByIdFunction),
    24992499                m_callFrame, value,
    25002500                m_out.constIntPtr(m_graph.identifiers()[m_node->identifierNumber()])));
     
    25022502           
    25032503            m_out.appendTo(continuation, lastNext);
    2504             setJSValue(m_out.phi(m_out.int64, cellResult, notCellResult));
     2504            setJSValue(m_out.phi(Int64, cellResult, notCellResult));
    25052505            return;
    25062506        }
     
    25162516        LValue base = lowJSValue(m_node->child1());
    25172517        LValue thisValue = lowJSValue(m_node->child2());
    2518         LValue result = vmCall(m_out.int64, m_out.operation(operationGetByIdWithThis), m_callFrame, base, thisValue, m_out.constIntPtr(m_graph.identifiers()[m_node->identifierNumber()]));
     2518        LValue result = vmCall(Int64, m_out.operation(operationGetByIdWithThis), m_callFrame, base, thisValue, m_out.constIntPtr(m_graph.identifiers()[m_node->identifierNumber()]));
    25192519        setJSValue(result);
    25202520    }
     
    25262526        LValue subscript = lowJSValue(m_node->child3());
    25272527
    2528         LValue result = vmCall(m_out.int64, m_out.operation(operationGetByValWithThis), m_callFrame, base, thisValue, subscript);
     2528        LValue result = vmCall(Int64, m_out.operation(operationGetByValWithThis), m_callFrame, base, thisValue, subscript);
    25292529        setJSValue(result);
    25302530    }
     
    25362536        LValue value = lowJSValue(m_node->child3());
    25372537
    2538         vmCall(m_out.voidType, m_out.operation(m_graph.isStrictModeFor(m_node->origin.semantic) ? operationPutByIdWithThisStrict : operationPutByIdWithThis),
     2538        vmCall(Void, m_out.operation(m_graph.isStrictModeFor(m_node->origin.semantic) ? operationPutByIdWithThisStrict : operationPutByIdWithThis),
    25392539            m_callFrame, base, thisValue, value, m_out.constIntPtr(m_graph.identifiers()[m_node->identifierNumber()]));
    25402540    }
     
    25472547        LValue value = lowJSValue(m_graph.varArgChild(m_node, 3));
    25482548
    2549         vmCall(m_out.voidType, m_out.operation(m_graph.isStrictModeFor(m_node->origin.semantic) ? operationPutByValWithThisStrict : operationPutByValWithThis),
     2549        vmCall(Void, m_out.operation(m_graph.isStrictModeFor(m_node->origin.semantic) ? operationPutByValWithThisStrict : operationPutByValWithThis),
    25502550            m_callFrame, base, thisValue, property, value);
    25512551    }
     
    26502650           
    26512651            ValueFromBlock slowResult = m_out.anchor(
    2652                 vmCall(m_out.intPtr, m_out.operation(operationResolveRope), m_callFrame, cell));
     2652                vmCall(pointerType(), m_out.operation(operationResolveRope), m_callFrame, cell));
    26532653           
    26542654            m_out.jump(continuation);
     
    26562656            m_out.appendTo(continuation, lastNext);
    26572657           
    2658             setStorage(m_out.loadPtr(m_out.phi(m_out.intPtr, fastResult, slowResult), m_heaps.StringImpl_data));
     2658            setStorage(m_out.loadPtr(m_out.phi(pointerType(), fastResult, slowResult), m_heaps.StringImpl_data));
    26592659            return;
    26602660        }
     
    27072707        m_out.appendTo(continuation, lastNext);
    27082708
    2709         setInt32(m_out.castToInt32(m_out.phi(m_out.intPtr, simpleOut, wastefulOut)));
     2709        setInt32(m_out.castToInt32(m_out.phi(pointerType(), simpleOut, wastefulOut)));
    27102710    }
    27112711   
     
    28082808            m_out.appendTo(slowCase, continuation);
    28092809            ValueFromBlock slowResult = m_out.anchor(
    2810                 vmCall(m_out.int64, m_out.operation(operationGetByValArrayInt), m_callFrame, base, index));
     2810                vmCall(Int64, m_out.operation(operationGetByValArrayInt), m_callFrame, base, index));
    28112811            m_out.jump(continuation);
    28122812           
    28132813            m_out.appendTo(continuation, lastNext);
    2814             setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     2814            setJSValue(m_out.phi(Int64, fastResult, slowResult));
    28152815            return;
    28162816        }
     
    28602860            m_out.appendTo(slowCase, continuation);
    28612861            ValueFromBlock slowResult = m_out.anchor(
    2862                 vmCall(m_out.int64, m_out.operation(operationGetByValArrayInt), m_callFrame, base, index));
     2862                vmCall(Int64, m_out.operation(operationGetByValArrayInt), m_callFrame, base, index));
    28632863            m_out.jump(continuation);
    28642864           
    28652865            m_out.appendTo(continuation, lastNext);
    2866             setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     2866            setJSValue(m_out.phi(Int64, fastResult, slowResult));
    28672867            return;
    28682868        }
     
    29442944           
    29452945            m_out.appendTo(continuation, lastNext);
    2946             setJSValue(m_out.phi(m_out.int64, namedResult, overflowResult));
     2946            setJSValue(m_out.phi(Int64, namedResult, overflowResult));
    29472947            return;
    29482948        }
     
    29502950        case Array::Generic: {
    29512951            setJSValue(vmCall(
    2952                 m_out.int64, m_out.operation(operationGetByVal), m_callFrame,
     2952                Int64, m_out.operation(operationGetByVal), m_callFrame,
    29532953                lowJSValue(m_node->child1()), lowJSValue(m_node->child2())));
    29542954            return;
     
    30043004                   
    30053005                    if (m_node->shouldSpeculateAnyInt()) {
    3006                         setStrictInt52(m_out.zeroExt(result, m_out.int64));
     3006                        setStrictInt52(m_out.zeroExt(result, Int64));
    30073007                        return;
    30083008                    }
     
    30783078        if (base) {
    30793079            LValue pointer = m_out.baseIndex(
    3080                 base.value(), m_out.zeroExt(index, m_out.intPtr), ScaleEight);
     3080                base.value(), m_out.zeroExt(index, pointerType()), ScaleEight);
    30813081            result = m_out.load64(TypedPointer(m_heaps.variables.atAnyIndex(), pointer));
    30823082        } else
     
    31183118               
    31193119            vmCall(
    3120                 m_out.voidType, m_out.operation(operation), m_callFrame,
     3120                Void, m_out.operation(operation), m_callFrame,
    31213121                lowJSValue(child1), lowJSValue(child2), lowJSValue(child3));
    31223122            return;
     
    32103210                        storage,
    32113211                        m_out.shl(
    3212                             m_out.zeroExt(index, m_out.intPtr),
     3212                            m_out.zeroExt(index, pointerType()),
    32133213                            m_out.constIntPtr(logElementSize(type)))));
    32143214               
     
    32473247                           
    32483248                            m_out.appendTo(continuation, lastNext);
    3249                             intValue = m_out.phi(m_out.int32, intValues);
     3249                            intValue = m_out.phi(Int32, intValues);
    32503250                        }
    32513251                        break;
     
    32793279                           
    32803280                            m_out.appendTo(continuation, lastNext);
    3281                             intValue = m_out.phi(m_out.int32, intValues);
     3281                            intValue = m_out.phi(Int32, intValues);
    32823282                        } else
    32833283                            intValue = doubleToInt32(doubleValue);
     
    33503350        auto uid = m_graph.identifiers()[m_node->identifierNumber()];
    33513351        vmCall(
    3352             m_out.voidType,
     3352            Void,
    33533353            m_out.operation(m_node->op() == PutGetterById ? operationPutGetterById : operationPutSetterById),
    33543354            m_callFrame, base, m_out.constIntPtr(uid), m_out.constInt32(m_node->accessorAttributes()), accessor);
     
    33623362        auto uid = m_graph.identifiers()[m_node->identifierNumber()];
    33633363        vmCall(
    3364             m_out.voidType, m_out.operation(operationPutGetterSetter),
     3364            Void, m_out.operation(operationPutGetterSetter),
    33653365            m_callFrame, base, m_out.constIntPtr(uid), m_out.constInt32(m_node->accessorAttributes()), getter, setter);
    33663366
     
    33733373        LValue accessor = lowCell(m_node->child3());
    33743374        vmCall(
    3375             m_out.voidType,
     3375            Void,
    33763376            m_out.operation(m_node->op() == PutGetterByVal ? operationPutGetterByVal : operationPutSetterByVal),
    33773377            m_callFrame, base, subscript, m_out.constInt32(m_node->accessorAttributes()), accessor);
     
    34343434                operation = m_out.operation(operationArrayPushDouble);
    34353435            ValueFromBlock slowResult = m_out.anchor(
    3436                 vmCall(m_out.int64, operation, m_callFrame, value, base));
     3436                vmCall(Int64, operation, m_callFrame, value, base));
    34373437            m_out.jump(continuation);
    34383438           
    34393439            m_out.appendTo(continuation, lastNext);
    3440             setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     3440            setJSValue(m_out.phi(Int64, fastResult, slowResult));
    34413441            return;
    34423442        }
     
    34913491            m_out.appendTo(slowCase, continuation);
    34923492            results.append(m_out.anchor(vmCall(
    3493                 m_out.int64, m_out.operation(operationArrayPopAndRecoverLength), m_callFrame, base)));
     3493                Int64, m_out.operation(operationArrayPopAndRecoverLength), m_callFrame, base)));
    34943494            m_out.jump(continuation);
    34953495           
    34963496            m_out.appendTo(continuation, lastNext);
    3497             setJSValue(m_out.phi(m_out.int64, results));
     3497            setJSValue(m_out.phi(Int64, results));
    34983498            return;
    34993499        }
     
    35143514        if (table->singletonScope()->isStillValid()) {
    35153515            LValue callResult = vmCall(
    3516                 m_out.int64,
     3516                Int64,
    35173517                m_out.operation(operationCreateActivationDirect), m_callFrame, weakPointer(structure),
    35183518                scope, weakPointer(table), m_out.constInt64(JSValue::encode(initializationValue)));
     
    35573557       
    35583558        m_out.appendTo(continuation, lastNext);
    3559         setJSValue(m_out.phi(m_out.intPtr, fastResult, slowResult));
     3559        setJSValue(m_out.phi(pointerType(), fastResult, slowResult));
    35603560    }
    35613561   
     
    35703570        if (executable->singletonFunction()->isStillValid()) {
    35713571            LValue callResult =
    3572                 isGeneratorFunction ? vmCall(m_out.int64, m_out.operation(operationNewGeneratorFunction), m_callFrame, scope, weakPointer(executable)) :
    3573                 vmCall(m_out.int64, m_out.operation(operationNewFunction), m_callFrame, scope, weakPointer(executable));
     3572                isGeneratorFunction ? vmCall(Int64, m_out.operation(operationNewGeneratorFunction), m_callFrame, scope, weakPointer(executable)) :
     3573                vmCall(Int64, m_out.operation(operationNewFunction), m_callFrame, scope, weakPointer(executable));
    35743574            setJSValue(callResult);
    35753575            return;
     
    36213621       
    36223622        m_out.appendTo(continuation, lastNext);
    3623         setJSValue(m_out.phi(m_out.intPtr, fastResult, slowResult));
     3623        setJSValue(m_out.phi(pointerType(), fastResult, slowResult));
    36243624    }
    36253625   
     
    36793679       
    36803680        m_out.appendTo(continuation, lastNext);
    3681         LValue result = m_out.phi(m_out.intPtr, fastResult, slowResult);
     3681        LValue result = m_out.phi(pointerType(), fastResult, slowResult);
    36823682
    36833683        m_out.storePtr(getCurrentCallee(), result, m_heaps.DirectArguments_callee);
     
    37123712           
    37133713            lastNext = m_out.appendTo(loop, end);
    3714             LValue previousIndex = m_out.phi(m_out.intPtr, originalLength);
     3714            LValue previousIndex = m_out.phi(pointerType(), originalLength);
    37153715            LValue index = m_out.sub(previousIndex, m_out.intPtrOne);
    37163716            m_out.store64(
     
    37323732       
    37333733        LValue result = vmCall(
    3734             m_out.int64, m_out.operation(operationCreateScopedArguments), m_callFrame,
     3734            Int64, m_out.operation(operationCreateScopedArguments), m_callFrame,
    37353735            weakPointer(
    37363736                m_graph.globalObjectFor(m_node->origin.semantic)->scopedArgumentsStructure()),
     
    37433743    {
    37443744        LValue result = vmCall(
    3745             m_out.int64, m_out.operation(operationCreateClonedArguments), m_callFrame,
     3745            Int64, m_out.operation(operationCreateClonedArguments), m_callFrame,
    37463746            weakPointer(
    37473747                m_graph.globalObjectFor(m_node->origin.semantic)->clonedArgumentsStructure()),
     
    37663766        LValue numberOfArgumentsToSkip = m_out.constInt32(m_node->numberOfArgumentsToSkip());
    37673767        vmCall(
    3768             m_out.voidType,m_out.operation(operationCopyRest), m_callFrame, lowCell(m_node->child1()),
     3768            Void,m_out.operation(operationCopyRest), m_callFrame, lowCell(m_node->child1()),
    37693769            getArgumentsStart(), numberOfArgumentsToSkip, arrayLength);
    37703770        m_out.jump(continuation);
     
    37903790       
    37913791        m_out.appendTo(continuation, lastNext);
    3792         setInt32(m_out.phi(m_out.int32, zeroLengthResult, nonZeroLengthResult));
     3792        setInt32(m_out.phi(Int32, zeroLengthResult, nonZeroLengthResult));
    37933793    }
    37943794   
     
    38523852        if (!m_node->numChildren()) {
    38533853            setJSValue(vmCall(
    3854                 m_out.int64, m_out.operation(operationNewEmptyArray), m_callFrame,
     3854                Int64, m_out.operation(operationNewEmptyArray), m_callFrame,
    38553855                m_out.constIntPtr(structure)));
    38563856            return;
     
    38733873       
    38743874        LValue result = vmCall(
    3875             m_out.int64, m_out.operation(operationNewArray), m_callFrame,
     3875            Int64, m_out.operation(operationNewArray), m_callFrame,
    38763876            m_out.constIntPtr(structure), m_out.constIntPtr(buffer),
    38773877            m_out.constIntPtr(m_node->numChildren()));
     
    39123912       
    39133913        setJSValue(vmCall(
    3914             m_out.int64, m_out.operation(operationNewArrayBuffer), m_callFrame,
     3914            Int64, m_out.operation(operationNewArrayBuffer), m_callFrame,
    39153915            m_out.constIntPtr(structure), m_out.constIntPtr(m_node->startConstant()),
    39163916            m_out.constIntPtr(m_node->numConstants())));
     
    39483948           
    39493949            LValue payloadSize =
    3950                 m_out.shl(m_out.zeroExt(vectorLength, m_out.intPtr), m_out.constIntPtr(3));
     3950                m_out.shl(m_out.zeroExt(vectorLength, pointerType()), m_out.constIntPtr(3));
    39513951           
    39523952            LValue butterflySize = m_out.add(
     
    39783978            m_out.appendTo(slowCase, continuation);
    39793979            LValue structureValue = m_out.phi(
    3980                 m_out.intPtr, largeStructure, failStructure);
     3980                pointerType(), largeStructure, failStructure);
    39813981            LValue slowResultValue = lazySlowPath(
    39823982                [=] (const Vector<Location>& locations) -> RefPtr<LazySlowPath::Generator> {
     
    39903990           
    39913991            m_out.appendTo(continuation, lastNext);
    3992             setJSValue(m_out.phi(m_out.intPtr, fastResult, slowResult));
     3992            setJSValue(m_out.phi(pointerType(), fastResult, slowResult));
    39933993            return;
    39943994        }
     
    39993999                globalObject->arrayStructureForIndexingTypeDuringAllocation(ArrayWithArrayStorage)),
    40004000            m_out.constIntPtr(structure));
    4001         setJSValue(vmCall(m_out.int64, m_out.operation(operationNewArrayWithSize), m_callFrame, structureValue, publicLength));
     4001        setJSValue(vmCall(Int64, m_out.operation(operationNewArrayWithSize), m_callFrame, structureValue, publicLength));
    40024002    }
    40034003
     
    40614061
    40624062            m_out.appendTo(continuation, lastNext);
    4063             setJSValue(m_out.phi(m_out.intPtr, fastResult, slowResult));
     4063            setJSValue(m_out.phi(pointerType(), fastResult, slowResult));
    40644064            return;
    40654065        }
     
    40694069
    40704070            LValue result = vmCall(
    4071                 m_out.intPtr, m_out.operation(operationNewTypedArrayWithOneArgumentForType(type)),
     4071                pointerType(), m_out.operation(operationNewTypedArrayWithOneArgumentForType(type)),
    40724072                m_callFrame, weakPointer(globalObject->typedArrayStructureConcurrently(type)), argument);
    40734073
     
    41044104
    41054105        if (!(abstractValue(m_node->child1()).m_type & SpecBytecodeNumber))
    4106             setJSValue(vmCall(m_out.int64, m_out.operation(operationToNumber), m_callFrame, value));
     4106            setJSValue(vmCall(Int64, m_out.operation(operationToNumber), m_callFrame, value));
    41074107        else {
    41084108            LBasicBlock notNumber = m_out.newBlock();
     
    41174117            // It means that converting non-numbers to numbers by this ToNumber is not rare.
    41184118            // Instead of the lazy slow path generator, we call the operation here.
    4119             ValueFromBlock slowResult = m_out.anchor(vmCall(m_out.int64, m_out.operation(operationToNumber), m_callFrame, value));
     4119            ValueFromBlock slowResult = m_out.anchor(vmCall(Int64, m_out.operation(operationToNumber), m_callFrame, value));
    41204120            m_out.jump(continuation);
    41214121
    41224122            // continuation case.
    41234123            m_out.appendTo(continuation, lastNext);
    4124             setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     4124            setJSValue(m_out.phi(Int64, fastResult, slowResult));
    41254125        }
    41264126    }
     
    41574157           
    41584158            m_out.appendTo(continuation, lastNext);
    4159             setJSValue(m_out.phi(m_out.int64, simpleResult, unboxedResult));
     4159            setJSValue(m_out.phi(Int64, simpleResult, unboxedResult));
    41604160           
    41614161            m_interpreter.filter(m_node->child1(), SpecString | SpecStringObject);
     
    41974197            else
    41984198                operation = m_out.operation(m_node->op() == ToString ? operationToString : operationCallStringConstructor);
    4199             ValueFromBlock convertedResult = m_out.anchor(vmCall(m_out.int64, operation, m_callFrame, value));
     4199            ValueFromBlock convertedResult = m_out.anchor(vmCall(Int64, operation, m_callFrame, value));
    42004200            m_out.jump(continuation);
    42014201           
    42024202            m_out.appendTo(continuation, lastNext);
    4203             setJSValue(m_out.phi(m_out.int64, simpleResult, convertedResult));
     4203            setJSValue(m_out.phi(Int64, simpleResult, convertedResult));
    42044204            return;
    42054205        }
     
    42334233        m_out.appendTo(isObjectCase, continuation);
    42344234        results.append(m_out.anchor(vmCall(
    4235             m_out.int64, m_out.operation(operationToPrimitive), m_callFrame, value)));
     4235            Int64, m_out.operation(operationToPrimitive), m_callFrame, value)));
    42364236        m_out.jump(continuation);
    42374237       
    42384238        m_out.appendTo(continuation, lastNext);
    4239         setJSValue(m_out.phi(m_out.int64, results));
     4239        setJSValue(m_out.phi(Int64, results));
    42404240    }
    42414241   
     
    43164316       
    43174317        m_out.appendTo(continuation, lastNext);
    4318         setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     4318        setJSValue(m_out.phi(Int64, fastResult, slowResult));
    43194319    }
    43204320   
     
    43724372        Vector<ValueFromBlock, 4> results;
    43734373        results.append(m_out.anchor(vmCall(
    4374             m_out.int64, m_out.operation(operationSingleCharacterString),
     4374            Int64, m_out.operation(operationSingleCharacterString),
    43754375            m_callFrame, char16BitValue)));
    43764376        m_out.jump(continuation);
     
    43784378        m_out.appendTo(bitsContinuation, slowPath);
    43794379           
    4380         LValue character = m_out.phi(m_out.int32, char8Bit, char16Bit);
     4380        LValue character = m_out.phi(Int32, char8Bit, char16Bit);
    43814381           
    43824382        LValue smallStrings = m_out.constIntPtr(vm().smallStrings.singleCharacterStrings());
     
    44184418               
    44194419            results.append(m_out.anchor(vmCall(
    4420                 m_out.int64, m_out.operation(operationGetByValStringInt), m_callFrame, base, index)));
     4420                Int64, m_out.operation(operationGetByValStringInt), m_callFrame, base, index)));
    44214421        }
    44224422           
     
    44244424           
    44254425        m_out.appendTo(continuation, lastNext);
    4426         setJSValue(m_out.phi(m_out.int64, results));
     4426        setJSValue(m_out.phi(Int64, results));
    44274427    }
    44284428   
     
    44684468        m_out.appendTo(continuation, lastNext);
    44694469       
    4470         setInt32(m_out.phi(m_out.int32, char8Bit, char16Bit));
     4470        setInt32(m_out.phi(Int32, char8Bit, char16Bit));
    44714471    }
    44724472
     
    44774477        if (childEdge.useKind() == UntypedUse) {
    44784478            LValue result = vmCall(
    4479                 m_out.int64, m_out.operation(operationStringFromCharCodeUntyped), m_callFrame,
     4479                Int64, m_out.operation(operationStringFromCharCodeUntyped), m_callFrame,
    44804480                lowJSValue(childEdge));
    44814481            setJSValue(result);
     
    45064506
    45074507        LValue slowResultValue = vmCall(
    4508             m_out.intPtr, m_out.operation(operationStringFromCharCode), m_callFrame, value);
     4508            pointerType(), m_out.operation(operationStringFromCharCode), m_callFrame, value);
    45094509        ValueFromBlock slowResult = m_out.anchor(slowResultValue);
    45104510        m_out.jump(continuation);
     
    45124512        m_out.appendTo(continuation, lastNext);
    45134513
    4514         setJSValue(m_out.phi(m_out.int64, fastResult, slowResult));
     4514        setJSValue(m_out.phi(Int64, fastResult, slowResult));
    45154515    }
    45164516   
     
    46104610       
    46114611        m_out.appendTo(continuation, lastNext);
    4612         setJSValue(m_out.phi(m_out.int64, results));
     4612        setJSValue(m_out.phi(Int64, results));
    46134613    }
    46144614   
     
    48814881
    48824882            m_out.appendTo(continuation, lastNext);
    4883             setBoolean(m_out.phi(m_out.boolean, fastResult, slowResult));
     4883            setBoolean(m_out.phi(Int32, fastResult, slowResult));
    48844884            return;
    48854885        }
     
    49734973           
    49744974            m_out.appendTo(continuation, lastNext);
    4975             setBoolean(m_out.phi(m_out.boolean, notCellResult, notStringResult, isStringResult));
     4975            setBoolean(m_out.phi(Int32, notCellResult, notStringResult, isStringResult));
    49764976            return;
    49774977        }
     
    55445544       
    55455545        LValue length = vmCall(
    5546             m_out.int32, m_out.operation(operationSizeOfVarargs), m_callFrame, jsArguments,
     5546            Int32, m_out.operation(operationSizeOfVarargs), m_callFrame, jsArguments,
    55475547            m_out.constInt32(data->offset));
    55485548       
     
    55685568       
    55695569        vmCall(
    5570             m_out.voidType, m_out.operation(operationLoadVarargs), m_callFrame,
     5570            Void, m_out.operation(operationLoadVarargs), m_callFrame,
    55715571            m_out.castToInt32(machineStart), jsArguments, m_out.constInt32(data->offset),
    55725572            length, m_out.constInt32(data->mandatoryMinimum));
     
    56065606       
    56075607        LBasicBlock lastNext = m_out.appendTo(undefinedLoop, mainLoopEntry);
    5608         LValue previousIndex = m_out.phi(m_out.intPtr, loopBound);
     5608        LValue previousIndex = m_out.phi(pointerType(), loopBound);
    56095609        LValue currentIndex = m_out.sub(previousIndex, m_out.intPtrOne);
    56105610        m_out.store64(
     
    56215621       
    56225622        m_out.appendTo(mainLoop, continuation);
    5623         previousIndex = m_out.phi(m_out.intPtr, loopBound);
     5623        previousIndex = m_out.phi(pointerType(), loopBound);
    56245624        currentIndex = m_out.sub(previousIndex, m_out.intPtrOne);
    56255625        LValue value = m_out.load64(
     
    57035703           
    57045704            m_out.appendTo(switchOnInts, lastNext);
    5705             buildSwitch(data, m_out.int32, m_out.phi(m_out.int32, intValues));
     5705            buildSwitch(data, Int32, m_out.phi(Int32, intValues));
    57065706            return;
    57075707        }
     
    57695769            m_out.appendTo(needResolution, resolved);
    57705770            values.append(m_out.anchor(
    5771                 vmCall(m_out.intPtr, m_out.operation(operationResolveRope), m_callFrame, stringValue)));
     5771                vmCall(pointerType(), m_out.operation(operationResolveRope), m_callFrame, stringValue)));
    57725772            m_out.jump(resolved);
    57735773           
    57745774            m_out.appendTo(resolved, is8Bit);
    5775             LValue value = m_out.phi(m_out.intPtr, values);
     5775            LValue value = m_out.phi(pointerType(), values);
    57765776            LValue characterData = m_out.loadPtr(value, m_heaps.StringImpl_data);
    57775777            m_out.branch(
     
    57915791           
    57925792            m_out.appendTo(continuation, lastNext);
    5793             buildSwitch(data, m_out.int32, m_out.phi(m_out.int32, characters));
     5793            buildSwitch(data, Int32, m_out.phi(Int32, characters));
    57945794            return;
    57955795        }
     
    58725872            }
    58735873           
    5874             buildSwitch(m_node->switchData(), m_out.intPtr, cell);
     5874            buildSwitch(m_node->switchData(), pointerType(), cell);
    58755875            return;
    58765876        } }
     
    59855985       
    59865986        m_out.appendTo(continuation, lastNext);
    5987         setBoolean(m_out.phi(m_out.boolean, notCellResult, cellResult));
     5987        setBoolean(m_out.phi(Int32, notCellResult, cellResult));
    59885988    }
    59895989
     
    60046004
    60056005        m_out.appendTo(continuation, lastNext);
    6006         setBoolean(m_out.phi(m_out.boolean, notCellResult, cellResult));
     6006        setBoolean(m_out.phi(Int32, notCellResult, cellResult));
    60076007    }
    60086008
     
    60236023
    60246024        m_out.appendTo(continuation, lastNext);
    6025         setBoolean(m_out.phi(m_out.boolean, notCellResult, cellResult));
     6025        setBoolean(m_out.phi(Int32, notCellResult, cellResult));
    60266026    }
    60276027
     
    60776077        m_out.appendTo(continuation, lastNext);
    60786078        LValue result = m_out.phi(
    6079             m_out.boolean,
     6079            Int32,
    60806080            isFunctionResult, notObjectResult, objectResult, slowResult, notCellResult);
    60816081        setBoolean(result);
     
    61226122        m_out.appendTo(continuation, lastNext);
    61236123        LValue result = m_out.phi(
    6124             m_out.boolean, notCellResult, functionResult, objectResult, slowResult);
     6124            Int32, notCellResult, functionResult, objectResult, slowResult);
    61256125        setBoolean(result);
    61266126    }
     
    61426142
    61436143        m_out.appendTo(continuation, lastNext);
    6144         setBoolean(m_out.phi(m_out.boolean, notCellResult, cellResult));
     6144        setBoolean(m_out.phi(Int32, notCellResult, cellResult));
    61456145    }
    61466146
     
    61606160
    61616161        m_out.appendTo(continuation, lastNext);
    6162         setBoolean(m_out.phi(m_out.boolean, notCellResult, cellResult));
     6162        setBoolean(m_out.phi(Int32, notCellResult, cellResult));
    61636163    }
    61646164
     
    61816181       
    61826182        m_out.appendTo(continuation, lastNext);
    6183         setJSValue(m_out.phi(m_out.int64, results));
     6183        setJSValue(m_out.phi(Int64, results));
    61846184    }
    61856185   
     
    62616261        }
    62626262
    6263         setJSValue(vmCall(m_out.int64, m_out.operation(operationGenericIn), m_callFrame, cell, lowJSValue(m_node->child1())));
     6263        setJSValue(vmCall(Int64, m_out.operation(operationGenericIn), m_callFrame, cell, lowJSValue(m_node->child1())));
    62646264    }
    62656265
     
    62886288
    62896289        m_out.appendTo(continuation, lastNext);
    6290         setBoolean(m_out.phi(m_out.boolean, implementsDefaultHasInstanceResult, notDefaultHasInstanceResult));
     6290        setBoolean(m_out.phi(Int32, implementsDefaultHasInstanceResult, notDefaultHasInstanceResult));
    62916291    }
    62926292
     
    63356335       
    63366336        m_out.appendTo(loop, loadPrototypeDirect);
    6337         LValue value = m_out.phi(m_out.int64, originalValue);
     6337        LValue value = m_out.phi(Int64, originalValue);
    63386338        LValue type = m_out.load8ZeroExt32(value, m_heaps.JSCell_typeInfoType);
    63396339        m_out.branch(
     
    63596359        // loop.
    63606360        ValueFromBlock defaultHasInstanceResult = m_out.anchor(
    6361             vmCall(m_out.boolean, m_out.operation(operationDefaultHasInstance), m_callFrame, value, prototype));
     6361            vmCall(Int32, m_out.operation(operationDefaultHasInstance), m_callFrame, value, prototype));
    63626362        m_out.jump(continuation);
    63636363       
    63646364        m_out.appendTo(continuation, lastNext);
    63656365        setBoolean(
    6366             m_out.phi(m_out.boolean, notCellResult, isInstanceResult, notInstanceResult, defaultHasInstanceResult));
     6366            m_out.phi(Int32, notCellResult, isInstanceResult, notInstanceResult, defaultHasInstanceResult));
    63676367    }
    63686368
     
    63736373        LValue hasInstance = lowJSValue(m_node->child3());
    63746374
    6375         setBoolean(m_out.logicalNot(m_out.equal(m_out.constInt32(0), vmCall(m_out.int32, m_out.operation(operationInstanceOfCustom), m_callFrame, value, constructor, hasInstance))));
     6375        setBoolean(m_out.logicalNot(m_out.equal(m_out.constInt32(0), vmCall(Int32, m_out.operation(operationInstanceOfCustom), m_callFrame, value, constructor, hasInstance))));
    63766376    }
    63776377   
     
    64206420            ValueFromBlock slowResult = m_out.anchor(m_out.equal(
    64216421                m_out.constInt64(JSValue::encode(jsBoolean(true))),
    6422                 vmCall(m_out.int64, m_out.operation(operationHasIndexedProperty), m_callFrame, base, index)));
     6422                vmCall(Int64, m_out.operation(operationHasIndexedProperty), m_callFrame, base, index)));
    64236423            m_out.jump(continuation);
    64246424
    64256425            m_out.appendTo(continuation, lastNext);
    6426             setBoolean(m_out.phi(m_out.boolean, checkHoleResult, slowResult));
     6426            setBoolean(m_out.phi(Int32, checkHoleResult, slowResult));
    64276427            return;
    64286428        }
     
    64556455            ValueFromBlock slowResult = m_out.anchor(m_out.equal(
    64566456                m_out.constInt64(JSValue::encode(jsBoolean(true))),
    6457                 vmCall(m_out.int64, m_out.operation(operationHasIndexedProperty), m_callFrame, base, index)));
     6457                vmCall(Int64, m_out.operation(operationHasIndexedProperty), m_callFrame, base, index)));
    64586458            m_out.jump(continuation);
    64596459           
    64606460            m_out.appendTo(continuation, lastNext);
    6461             setBoolean(m_out.phi(m_out.boolean, checkHoleResult, slowResult));
     6461            setBoolean(m_out.phi(Int32, checkHoleResult, slowResult));
    64626462            return;
    64636463        }
     
    64736473        LValue base = lowJSValue(m_node->child1());
    64746474        LValue property = lowCell(m_node->child2());
    6475         setJSValue(vmCall(m_out.int64, m_out.operation(operationHasGenericProperty), m_callFrame, base, property));
     6475        setJSValue(vmCall(Int64, m_out.operation(operationHasGenericProperty), m_callFrame, base, property));
    64766476    }
    64776477
     
    64996499            m_out.equal(
    65006500                m_out.constInt64(JSValue::encode(jsBoolean(true))),
    6501                 vmCall(m_out.int64, m_out.operation(operationHasGenericProperty), m_callFrame, base, property)));
     6501                vmCall(Int64, m_out.operation(operationHasGenericProperty), m_callFrame, base, property)));
    65026502        m_out.jump(continuation);
    65036503
    65046504        m_out.appendTo(continuation, lastNext);
    6505         setBoolean(m_out.phi(m_out.boolean, correctStructureResult, wrongStructureResult));
     6505        setBoolean(m_out.phi(Int32, correctStructureResult, wrongStructureResult));
    65066506    }
    65076507
     
    65316531        ValueFromBlock inlineResult = m_out.anchor(
    65326532            m_out.load64(m_out.baseIndex(m_heaps.properties.atAnyNumber(),
    6533                 base, m_out.zeroExt(index, m_out.int64), ScaleEight, JSObject::offsetOfInlineStorage())));
     6533                base, m_out.zeroExt(index, Int64), ScaleEight, JSObject::offsetOfInlineStorage())));
    65346534        m_out.jump(continuation);
    65356535
     
    65456545        m_out.appendTo(slowCase, continuation);
    65466546        ValueFromBlock slowCaseResult = m_out.anchor(
    6547             vmCall(m_out.int64, m_out.operation(operationGetByVal), m_callFrame, base, property));
     6547            vmCall(Int64, m_out.operation(operationGetByVal), m_callFrame, base, property));
    65486548        m_out.jump(continuation);
    65496549
    65506550        m_out.appendTo(continuation, lastNext);
    6551         setJSValue(m_out.phi(m_out.int64, inlineResult, outOfLineResult, slowCaseResult));
     6551        setJSValue(m_out.phi(Int64, inlineResult, outOfLineResult, slowCaseResult));
    65526552    }
    65536553
     
    65616561    {
    65626562        LValue base = lowCell(m_node->child1());
    6563         setJSValue(vmCall(m_out.int64, m_out.operation(operationGetPropertyEnumerator), m_callFrame, base));
     6563        setJSValue(vmCall(Int64, m_out.operation(operationGetPropertyEnumerator), m_callFrame, base));
    65646564    }
    65656565
     
    65876587       
    65886588        m_out.appendTo(continuation, lastNext);
    6589         setJSValue(m_out.phi(m_out.int64, inBoundsResult, outOfBoundsResult));
     6589        setJSValue(m_out.phi(Int64, inBoundsResult, outOfBoundsResult));
    65906590    }
    65916591
     
    66136613       
    66146614        m_out.appendTo(continuation, lastNext);
    6615         setJSValue(m_out.phi(m_out.int64, inBoundsResult, outOfBoundsResult));
     6615        setJSValue(m_out.phi(Int64, inBoundsResult, outOfBoundsResult));
    66166616    }
    66176617   
     
    66196619    {
    66206620        LValue index = lowInt32(m_node->child1());
    6621         setJSValue(vmCall(m_out.int64, m_out.operation(operationToIndexString), m_callFrame, index));
     6621        setJSValue(vmCall(Int64, m_out.operation(operationToIndexString), m_callFrame, index));
    66226622    }
    66236623   
     
    67596759                m_out.appendTo(continuation, lastNext);
    67606760               
    6761                 object = m_out.phi(m_out.intPtr, fastObject, slowObject);
    6762                 butterfly = m_out.phi(m_out.intPtr, fastButterfly, slowButterfly);
     6761                object = m_out.phi(pointerType(), fastObject, slowObject);
     6762                butterfly = m_out.phi(pointerType(), fastButterfly, slowButterfly);
    67636763
    67646764                m_out.store32(publicLength, butterfly, m_heaps.Butterfly_publicLength);
     
    68956895       
    68966896        m_out.appendTo(outerContinuation, outerLastNext);
    6897         setJSValue(m_out.phi(m_out.intPtr, results));
     6897        setJSValue(m_out.phi(pointerType(), results));
    68986898    }
    68996899
     
    69446944
    69456945        m_out.appendTo(continuation, lastNext);
    6946         LValue activation = m_out.phi(m_out.intPtr, fastResult, slowResult);
     6946        LValue activation = m_out.phi(pointerType(), fastResult, slowResult);
    69476947        RELEASE_ASSERT(data.m_properties.size() == table->scopeSize());
    69486948        for (unsigned i = 0; i < data.m_properties.size(); ++i) {
     
    70747074    void compileSetFunctionName()
    70757075    {
    7076         vmCall(m_out.voidType, m_out.operation(operationSetFunctionName), m_callFrame,
     7076        vmCall(Void, m_out.operation(operationSetFunctionName), m_callFrame,
    70777077            lowCell(m_node->child1()), lowJSValue(m_node->child2()));
    70787078    }
     
    73337333       
    73347334        m_out.appendTo(continuation, lastNext);
    7335         return m_out.phi(m_out.int32, results);
     7335        return m_out.phi(Int32, results);
    73367336    }
    73377337
     
    75297529       
    75307530        LBasicBlock initLastNext = m_out.appendTo(initLoop, initDone);
    7531         LValue index = m_out.phi(m_out.int32, originalIndex);
    7532         LValue pointer = m_out.phi(m_out.intPtr, originalPointer);
     7531        LValue index = m_out.phi(Int32, originalIndex);
     7532        LValue pointer = m_out.phi(pointerType(), originalPointer);
    75337533       
    75347534        m_out.store64(
     
    75497549        if (previousStructure->couldHaveIndexingHeader()) {
    75507550            return vmCall(
    7551                 m_out.intPtr,
     7551                pointerType(),
    75527552                m_out.operation(
    75537553                    operationReallocateButterflyToHavePropertyStorageWithInitialCapacity),
     
    75707570        if (previous->couldHaveIndexingHeader()) {
    75717571            LValue newAllocSize = m_out.constIntPtr(newSize);                   
    7572             return vmCall(m_out.intPtr, m_out.operation(operationReallocateButterflyToGrowPropertyStorage), m_callFrame, object, newAllocSize);
     7572            return vmCall(pointerType(), m_out.operation(operationReallocateButterflyToGrowPropertyStorage), m_callFrame, object, newAllocSize);
    75737573        }
    75747574       
     
    76287628        m_out.appendTo(continuation, lastNext);
    76297629       
    7630         return m_out.phi(m_out.intPtr, fastButterfly, slowButterfly);
     7630        return m_out.phi(pointerType(), fastButterfly, slowButterfly);
    76317631    }
    76327632   
     
    77527752            LValue left = lowStringIdent(m_node->child1());
    77537753            LValue right = lowStringIdent(m_node->child2());
    7754             setBoolean(m_out.callWithoutSideEffects(m_out.boolean, stringIdentFunction, left, right));
     7754            setBoolean(m_out.callWithoutSideEffects(Int32, stringIdentFunction, left, right));
    77557755            return;
    77567756        }
     
    77637763
    77647764            LValue result = vmCall(
    7765                 m_out.boolean, m_out.operation(stringFunction),
     7765                Int32, m_out.operation(stringFunction),
    77667766                m_callFrame, left, right);
    77677767            setBoolean(result);
     
    77807780    {
    77817781        UniquedStringImpl* uid = m_graph.identifiers()[m_node->identifierNumber()];
    7782         setJSValue(vmCall(m_out.intPtr, m_out.operation(operationResolveScope),
     7782        setJSValue(vmCall(pointerType(), m_out.operation(operationResolveScope),
    77837783            m_callFrame, lowCell(m_node->child1()), m_out.constIntPtr(uid)));
    77847784    }
     
    77877787    {
    77887788        UniquedStringImpl* uid = m_graph.identifiers()[m_node->identifierNumber()];
    7789         setJSValue(vmCall(m_out.int64, m_out.operation(operationGetDynamicVar),
     7789        setJSValue(vmCall(Int64, m_out.operation(operationGetDynamicVar),
    77907790            m_callFrame, lowCell(m_node->child1()), m_out.constIntPtr(uid), m_out.constInt32(m_node->getPutInfo())));
    77917791    }
     
    78377837       
    78387838        m_out.appendTo(continuation, lastNext);
    7839         setBoolean(m_out.phi(m_out.boolean, cellResult, notCellResult));
     7839        setBoolean(m_out.phi(Int32, cellResult, notCellResult));
    78407840    }
    78417841   
     
    78777877        m_out.appendTo(slowPath, continuation);
    78787878        ValueFromBlock slowResult = m_out.anchor(m_out.notNull(vmCall(
    7879             m_out.intPtr, m_out.operation(helperFunction), m_callFrame, left, right)));
     7879            pointerType(), m_out.operation(helperFunction), m_callFrame, left, right)));
    78807880        m_out.jump(continuation);
    78817881       
    78827882        m_out.appendTo(continuation, lastNext);
    7883         setBoolean(m_out.phi(m_out.boolean, fastResult, slowResult));
     7883        setBoolean(m_out.phi(Int32, fastResult, slowResult));
    78847884    }
    78857885
     
    79477947        m_out.appendTo(loop, bytesEqual);
    79487948
    7949         LValue indexAtLoopTop = m_out.phi(m_out.int32, indexAtStart);
     7949        LValue indexAtLoopTop = m_out.phi(Int32, indexAtStart);
    79507950        LValue indexInLoop = m_out.sub(indexAtLoopTop, m_out.int32One);
    79517951
     
    79767976
    79777977        LValue slowResultValue = vmCall(
    7978             m_out.int64, m_out.operation(operationCompareStringEq), m_callFrame,
     7978            Int64, m_out.operation(operationCompareStringEq), m_callFrame,
    79797979            leftJSString, rightJSString);
    79807980        ValueFromBlock slowResult = m_out.anchor(unboxBoolean(slowResultValue));
     
    79827982
    79837983        m_out.appendTo(continuation, lastNext);
    7984         return m_out.phi(m_out.boolean, trueResult, falseResult, slowResult);
     7984        return m_out.phi(Int32, trueResult, falseResult, slowResult);
    79857985    }
    79867986
     
    82688268       
    82698269        m_out.appendTo(continuation, lastNext);
    8270         LValue allocator = m_out.phi(m_out.intPtr, smallAllocator, largeAllocator);
     8270        LValue allocator = m_out.phi(pointerType(), smallAllocator, largeAllocator);
    82718271       
    82728272        return allocateObject(allocator, structure, butterfly, slowPath);
     
    83268326       
    83278327        m_out.appendTo(continuation, lastNext);
    8328         return m_out.phi(m_out.intPtr, fastResult, slowResult);
     8328        return m_out.phi(pointerType(), fastResult, slowResult);
    83298329    }
    83308330   
     
    84108410       
    84118411        return ArrayValues(
    8412             m_out.phi(m_out.intPtr, fastArray, slowArray),
    8413             m_out.phi(m_out.intPtr, fastButterfly, slowButterfly));
     8412            m_out.phi(pointerType(), fastArray, slowArray),
     8413            m_out.phi(pointerType(), fastButterfly, slowButterfly));
    84148414    }
    84158415   
     
    85858585           
    85868586            m_out.appendTo(continuation, lastNext);
    8587             return m_out.phi(m_out.boolean, results);
     8587            return m_out.phi(Int32, results);
    85888588        }
    85898589        default:
     
    86808680        m_out.appendTo(continuation, lastNext);
    86818681       
    8682         return m_out.phi(m_out.boolean, results);
     8682        return m_out.phi(Int32, results);
    86838683    }
    86848684   
     
    87168716                   
    87178717                vmCall(
    8718                     m_out.voidType, m_out.operation(slowPathFunction),
     8718                    Void, m_out.operation(slowPathFunction),
    87198719                    m_callFrame, base, index, value);
    87208720                   
     
    87358735    void buildSwitch(SwitchData* data, LType type, LValue switchValue)
    87368736    {
    8737         ASSERT(type == m_out.intPtr || type == m_out.int32);
     8737        ASSERT(type == pointerType() || type == Int32);
    87388738
    87398739        Vector<SwitchCase> cases;
     
    87418741            SwitchCase newCase;
    87428742
    8743             if (type == m_out.intPtr) {
     8743            if (type == pointerType()) {
    87448744                newCase = SwitchCase(m_out.constIntPtr(data->cases[i].value.switchLookupValue(data->kind)),
    87458745                    lowBlock(data->cases[i].target.block), Weight(data->cases[i].target.count));
    8746             } else if (type == m_out.int32) {
     8746            } else if (type == Int32) {
    87478747                newCase = SwitchCase(m_out.constInt32(data->cases[i].value.switchLookupValue(data->kind)),
    87488748                    lowBlock(data->cases[i].target.block), Weight(data->cases[i].target.count));
     
    89928992       
    89938993        LValue branchOffset = vmCall(
    8994             m_out.int32, m_out.operation(operationSwitchStringAndGetBranchOffset),
     8994            Int32, m_out.operation(operationSwitchStringAndGetBranchOffset),
    89958995            m_callFrame, m_out.constIntPtr(data->switchTableIndex), string);
    89968996       
     
    92179217       
    92189218        m_out.appendTo(slowPath, continuation);
    9219         results.append(m_out.anchor(m_out.call(m_out.int32, m_out.operation(operationToInt32), doubleValue)));
     9219        results.append(m_out.anchor(m_out.call(Int32, m_out.operation(operationToInt32), doubleValue)));
    92209220        m_out.jump(continuation);
    92219221       
    92229222        m_out.appendTo(continuation, lastNext);
    9223         return m_out.phi(m_out.int32, results);
     9223        return m_out.phi(Int32, results);
    92249224    }
    92259225   
     
    92469246        LBasicBlock lastNext = m_out.appendTo(slowPath, continuation);
    92479247        ValueFromBlock slowResult = m_out.anchor(
    9248             m_out.call(m_out.int32, m_out.operation(operationToInt32), doubleValue));
     9248            m_out.call(Int32, m_out.operation(operationToInt32), doubleValue));
    92499249        m_out.jump(continuation);
    92509250       
    92519251        m_out.appendTo(continuation, lastNext);
    9252         return m_out.phi(m_out.int32, fastResult, slowResult);
     9252        return m_out.phi(Int32, fastResult, slowResult);
    92539253    }
    92549254
     
    97729772       
    97739773        m_out.appendTo(continuation, lastNext);
    9774         return m_out.phi(m_out.int64, results);
     9774        return m_out.phi(Int64, results);
    97759775    }
    97769776   
     
    98039803    LValue boxInt32(LValue value)
    98049804    {
    9805         return m_out.add(m_out.zeroExt(value, m_out.int64), m_tagTypeNumber);
     9805        return m_out.add(m_out.zeroExt(value, Int64), m_tagTypeNumber);
    98069806    }
    98079807   
     
    98219821    LValue unboxDouble(LValue jsValue)
    98229822    {
    9823         return m_out.bitCast(m_out.add(jsValue, m_tagTypeNumber), m_out.doubleType);
     9823        return m_out.bitCast(m_out.add(jsValue, m_tagTypeNumber), Double);
    98249824    }
    98259825    LValue boxDouble(LValue doubleValue)
    98269826    {
    9827         return m_out.sub(m_out.bitCast(doubleValue, m_out.int64), m_tagTypeNumber);
     9827        return m_out.sub(m_out.bitCast(doubleValue, Int64), m_tagTypeNumber);
    98289828    }
    98299829   
     
    98529852       
    98539853        LValue possibleResult = m_out.call(
    9854             m_out.int64, m_out.operation(operationConvertBoxedDoubleToInt52), boxedValue);
     9854            Int64, m_out.operation(operationConvertBoxedDoubleToInt52), boxedValue);
    98559855        FTL_TYPE_CHECK(
    98569856            jsValueValue(boxedValue), edge, SpecInt32Only | SpecAnyIntAsDouble,
     
    98629862        m_out.appendTo(continuation, lastNext);
    98639863           
    9864         return m_out.phi(m_out.int64, intToInt52, doubleToInt52);
     9864        return m_out.phi(Int64, intToInt52, doubleToInt52);
    98659865    }
    98669866   
     
    98689868    {
    98699869        LValue possibleResult = m_out.call(
    9870             m_out.int64, m_out.operation(operationConvertDoubleToInt52), value);
     9870            Int64, m_out.operation(operationConvertDoubleToInt52), value);
    98719871        FTL_TYPE_CHECK_WITH_EXIT_KIND(Int52Overflow,
    98729872            doubleValue(value), edge, SpecAnyIntAsDouble,
     
    98909890            LBasicBlock lastNext = m_out.appendTo(valueIsZero, continuation);
    98919891
    9892             LValue doubleBitcastToInt64 = m_out.bitCast(value, m_out.int64);
     9892            LValue doubleBitcastToInt64 = m_out.bitCast(value, Int64);
    98939893            LValue signBitSet = m_out.lessThan(doubleBitcastToInt64, m_out.constInt64(0));
    98949894
     
    1070910709    {
    1071010710        if (Options::useExceptionFuzz())
    10711             m_out.call(m_out.voidType, m_out.operation(operationExceptionFuzz), m_callFrame);
     10711            m_out.call(Void, m_out.operation(operationExceptionFuzz), m_callFrame);
    1071210712       
    1071310713        LValue exception = m_out.load64(m_out.absolute(vm().addressOfException()));
     
    1129511295#else
    1129611296        m_out.call(
    11297             m_out.voidType,
     11297            Void,
    1129811298            m_out.constIntPtr(ftlUnreachable),
    1129911299            m_out.constIntPtr(codeBlock()), m_out.constInt32(blockIndex),
  • trunk/Source/JavaScriptCore/ftl/FTLOutput.cpp

    r202007 r202792  
    650650LValue Output::bitCast(LValue value, LType type)
    651651{
    652     ASSERT_UNUSED(type, type == int64 || type == doubleType);
     652    ASSERT_UNUSED(type, type == Int64 || type == Double);
    653653    return m_block->appendNew<B3::Value>(m_proc, B3::BitwiseCast, origin(), value);
    654654}
Note: See TracChangeset for help on using the changeset viewer.