@@ -632,8 +632,10 @@ namespace Js
632
632
template <class T > void OP_ProfiledNewScArray_NoProfile (const unaligned OpLayoutDynamicProfile<T> * playout) { ProfiledNewScArray<false , T>(playout); }
633
633
void OP_NewScIntArray (const unaligned OpLayoutAuxiliary * playout);
634
634
void OP_NewScFltArray (const unaligned OpLayoutAuxiliary * playout);
635
- void OP_ProfiledNewScIntArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout);
636
- void OP_ProfiledNewScFltArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout);
635
+ template <bool Profiled> void ProfiledNewScIntArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout);
636
+ template <bool Profiled> void ProfiledNewScFltArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout);
637
+ void OP_ProfiledNewScIntArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout) { ProfiledNewScIntArray<true >(playout); }
638
+ void OP_ProfiledNewScFltArray (const unaligned OpLayoutDynamicProfile<OpLayoutAuxiliary> * playout) { ProfiledNewScFltArray<true >(playout); }
637
639
638
640
template <class T > void OP_LdArrayHeadSegment (const unaligned T* playout);
639
641
@@ -734,19 +736,21 @@ namespace Js
734
736
template <bool Profile, bool JITLoopBody> void ProfiledLoopBodyStart (uint32 loopNumber, LayoutSize layoutSize, bool isFirstIteration);
735
737
void OP_RecordImplicitCall (uint loopNumber);
736
738
template <class T , bool Profiled, bool ICIndex> void OP_NewScObject_Impl (const unaligned T* playout, InlineCacheIndex inlineCacheIndex = Js::Constants::NoInlineCacheIndex, const Js::AuxArray<uint32> *spreadIndices = nullptr );
737
- template <class T , bool Profiled> void OP_NewScObjArray_Impl (const unaligned T* playout, const Js::AuxArray<uint32> *spreadIndices = nullptr );
739
+ template <class T , bool Profiled, bool ICIndex> void OP_ProfiledNewScObject_Impl (const unaligned T* playout, InlineCacheIndex inlineCacheIndex = Js::Constants::NoInlineCacheIndex, const Js::AuxArray<uint32> *spreadIndices = nullptr ) { OP_NewScObject_Impl<T, Profiled, ICIndex>(playout, inlineCacheIndex, spreadIndices); }
740
+ template <class T , bool Profiled> void OP_NewScObjArray_Impl (const unaligned T* playout, const Js::AuxArray<uint32> *spreadIndices = nullptr ) { OP_NewScObject_Impl<T, Profiled, false >(playout, Js::Constants::NoInlineCacheIndex, spreadIndices); }
741
+ template <class T , bool Profiled> void OP_ProfiledNewScObjArray_Impl (const unaligned T* playout, const Js::AuxArray<uint32> *spreadIndices = nullptr );
738
742
template <class T > void OP_NewScObject (const unaligned T* playout) { OP_NewScObject_Impl<T, false , false >(playout); }
739
743
template <class T > void OP_NewScObjectNoCtorFull (const unaligned T* playout);
740
744
template <class T > void OP_NewScObjectSpread (const unaligned T* playout) { OP_NewScObject_Impl<T, false , false >(playout, Js::Constants::NoInlineCacheIndex, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
741
745
template <class T > void OP_NewScObjArray (const unaligned T* playout) { OP_NewScObjArray_Impl<T, false >(playout); }
742
746
template <class T > void OP_NewScObjArraySpread (const unaligned T* playout) { OP_NewScObjArray_Impl<T, false >(playout, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
743
- template <class T > void OP_ProfiledNewScObject (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_NewScObject_Impl <T, true , false >(playout); }
744
- template <class T > void OP_ProfiledNewScObjectSpread (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_NewScObject_Impl <T, true , false >(playout, Js::Constants::NoInlineCacheIndex, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
745
- template <class T > void OP_ProfiledNewScObjectWithICIndex (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_NewScObject_Impl <T, true , true >(playout, playout->inlineCacheIndex ); }
746
- template <class T > void OP_ProfiledNewScObjArray (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_NewScObjArray_Impl <T, true >(playout); }
747
- template <class T > void OP_ProfiledNewScObjArray_NoProfile (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_NewScObjArray_Impl <T, false >(playout); }
748
- template <class T > void OP_ProfiledNewScObjArraySpread (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_NewScObjArray_Impl <T, true >(playout, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
749
- template <class T > void OP_ProfiledNewScObjArraySpread_NoProfile (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_NewScObjArray_Impl <T, true >(playout, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
747
+ template <class T > void OP_ProfiledNewScObject (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_ProfiledNewScObject_Impl <T, true , false >(playout); }
748
+ template <class T > void OP_ProfiledNewScObjectSpread (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_ProfiledNewScObject_Impl <T, true , false >(playout, Js::Constants::NoInlineCacheIndex, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
749
+ template <class T > void OP_ProfiledNewScObjectWithICIndex (const unaligned OpLayoutDynamicProfile<T>* playout) { OP_ProfiledNewScObject_Impl <T, true , true >(playout, playout->inlineCacheIndex ); }
750
+ template <class T > void OP_ProfiledNewScObjArray (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_ProfiledNewScObjArray_Impl <T, true >(playout); }
751
+ template <class T > void OP_ProfiledNewScObjArray_NoProfile (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_ProfiledNewScObjArray_Impl <T, false >(playout); }
752
+ template <class T > void OP_ProfiledNewScObjArraySpread (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_ProfiledNewScObjArray_Impl <T, true >(playout, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
753
+ template <class T > void OP_ProfiledNewScObjArraySpread_NoProfile (const unaligned OpLayoutDynamicProfile2<T>* playout) { OP_ProfiledNewScObjArray_Impl <T, false >(playout, m_reader.ReadAuxArray <uint32>(playout->SpreadAuxOffset , this ->GetFunctionBody ())); }
750
754
Var NewScObject_Helper (Var target, ArgSlot ArgCount, const Js::AuxArray<uint32> *spreadIndices = nullptr );
751
755
Var ProfiledNewScObject_Helper (Var target, ArgSlot ArgCount, ProfileId profileId, InlineCacheIndex inlineCacheIndex, const Js::AuxArray<uint32> *spreadIndices = nullptr );
752
756
template <class T , bool Profiled, bool ICIndex> Var OP_NewScObjectNoArg_Impl (const unaligned T *playout, InlineCacheIndex inlineCacheIndex = Js::Constants::NoInlineCacheIndex);
0 commit comments