JnHelperMethodList.h 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #ifndef HELPERCALL
  6. #error HELPERCALL must be defined before including this file
  7. #else
  8. #define HELPERCALL_FULL_OR_INPLACE(Name, Address, Attributes) \
  9. HELPERCALL(Name##, Address##, Attributes) \
  10. HELPERCALL(Name##_Full, Address##_Full, Attributes) \
  11. HELPERCALL(Name##InPlace, Address##_InPlace, Attributes)
  12. #if defined(SSE2MATH)
  13. #define HELPERCALL_MATH(Name, Address, SSE2Address, Attributes) \
  14. HELPERCALL(Name##, SSE2Address##, Attributes)
  15. #define HELPERCALL_FULL_OR_INPLACE_MATH(Name, Address, SSE2Address, Attributes) \
  16. HELPERCALL_FULL_OR_INPLACE(Name##, SSE2Address##, Attributes)
  17. #else
  18. #define HELPERCALL_MATH(Name, Address, SSE2Address, Attributes) \
  19. HELPERCALL(Name##, Address##, Attributes)
  20. #define HELPERCALL_FULL_OR_INPLACE_MATH(Name, Address, SSE2Address, Attributes) \
  21. HELPERCALL_FULL_OR_INPLACE(Name##, Address##, Attributes)
  22. #endif
  23. //HELPERCALL(Name, Address, Attributes)
  24. HELPERCALL(Invalid, nullptr, 0)
  25. HELPERCALL(ScrFunc_OP_NewScFunc, Js::ScriptFunction::OP_NewScFunc, 0)
  26. HELPERCALL(ScrFunc_OP_NewScGenFunc, Js::JavascriptGeneratorFunction::OP_NewScGenFunc, 0)
  27. HELPERCALL(ScrFunc_CheckAlignment, Js::JavascriptFunction::CheckAlignment, 0)
  28. HELPERCALL(ScrObj_LdHandlerScope, Js::JavascriptOperators::OP_LdHandlerScope, 0)
  29. HELPERCALL(ScrObj_LdFrameDisplay, Js::JavascriptOperators::OP_LdFrameDisplay, 0)
  30. HELPERCALL(ScrObj_LdFrameDisplayNoParent, Js::JavascriptOperators::OP_LdFrameDisplayNoParent, 0)
  31. HELPERCALL(ScrObj_LdStrictFrameDisplay, Js::JavascriptOperators::OP_LdStrictFrameDisplay, 0)
  32. HELPERCALL(ScrObj_LdStrictFrameDisplayNoParent, Js::JavascriptOperators::OP_LdStrictFrameDisplayNoParent, 0)
  33. HELPERCALL(ScrObj_LdInnerFrameDisplay, Js::JavascriptOperators::OP_LdInnerFrameDisplay, 0)
  34. HELPERCALL(ScrObj_LdInnerFrameDisplayNoParent, Js::JavascriptOperators::OP_LdInnerFrameDisplayNoParent, 0)
  35. HELPERCALL(ScrObj_LdStrictInnerFrameDisplay, Js::JavascriptOperators::OP_LdStrictInnerFrameDisplay, 0)
  36. HELPERCALL(ScrObj_LdStrictInnerFrameDisplayNoParent, Js::JavascriptOperators::OP_LdStrictInnerFrameDisplayNoParent, 0)
  37. HELPERCALL(ScrObj_OP_IsInst, Js::JavascriptOperators::OP_IsInst, AttrCanThrow)
  38. HELPERCALL(Op_IsIn, Js::JavascriptOperators::IsIn, AttrCanThrow)
  39. HELPERCALL(Op_IsObject, Js::JavascriptOperators::IsObject, AttrCanThrow)
  40. HELPERCALL(Op_IsClassConstructor, Js::JavascriptOperators::IsClassConstructor, AttrCanThrow)
  41. HELPERCALL(Op_LoadHeapArguments, Js::JavascriptOperators::LoadHeapArguments, 0)
  42. HELPERCALL(Op_LoadHeapArgsCached, Js::JavascriptOperators::LoadHeapArgsCached, 0)
  43. HELPERCALL(OP_InitCachedScope, Js::JavascriptOperators::OP_InitCachedScope, 0)
  44. HELPERCALL(OP_InitCachedFuncs, Js::JavascriptOperators::OP_InitCachedFuncs, 0)
  45. HELPERCALL(OP_InvalidateCachedScope, Js::JavascriptOperators::OP_InvalidateCachedScope, 0)
  46. HELPERCALL(OP_NewScopeObject, Js::JavascriptOperators::OP_NewScopeObject, 0)
  47. HELPERCALL(OP_NewScopeSlots, Js::JavascriptOperators::OP_NewScopeSlots, 0)
  48. HELPERCALL(OP_NewScopeSlotsWithoutPropIds, Js::JavascriptOperators::OP_NewScopeSlotsWithoutPropIds, 0)
  49. HELPERCALL(OP_NewBlockScope, Js::JavascriptOperators::OP_NewBlockScope, 0)
  50. HELPERCALL(OP_NewPseudoScope, Js::JavascriptOperators::OP_NewPseudoScope, 0)
  51. HELPERCALL(OP_CloneInnerScopeSlots, Js::JavascriptOperators::OP_CloneScopeSlots, 0)
  52. HELPERCALL(OP_CloneBlockScope, Js::JavascriptOperators::OP_CloneBlockScope, 0)
  53. HELPERCALL(LdThis, Js::JavascriptOperators::OP_GetThis, 0)
  54. HELPERCALL(LdThisNoFastPath, Js::JavascriptOperators::OP_GetThisNoFastPath, 0)
  55. HELPERCALL(StrictLdThis, Js::JavascriptOperators::OP_StrictGetThis, 0)
  56. HELPERCALL(Op_LdElemUndef, Js::JavascriptOperators::OP_LoadUndefinedToElement, 0)
  57. HELPERCALL(Op_LdElemUndefDynamic, Js::JavascriptOperators::OP_LoadUndefinedToElementDynamic, 0)
  58. HELPERCALL(Op_LdElemUndefScoped, Js::JavascriptOperators::OP_LoadUndefinedToElementScoped, 0)
  59. HELPERCALL(Op_EnsureNoRootProperty, Js::JavascriptOperators::OP_EnsureNoRootProperty, AttrCanThrow)
  60. HELPERCALL(Op_EnsureNoRootRedeclProperty, Js::JavascriptOperators::OP_EnsureNoRootRedeclProperty, AttrCanThrow)
  61. HELPERCALL(Op_EnsureNoRedeclPropertyScoped, Js::JavascriptOperators::OP_ScopedEnsureNoRedeclProperty, AttrCanThrow)
  62. HELPERCALL(Op_ToSpreadedFunctionArgument, Js::JavascriptOperators::OP_LdCustomSpreadIteratorList, AttrCanThrow)
  63. HELPERCALL(Op_ConvObject, Js::JavascriptOperators::ToObject, AttrCanThrow)
  64. HELPERCALL(Op_NewWithObject, Js::JavascriptOperators::ToWithObject, AttrCanThrow)
  65. HELPERCALL(SetComputedNameVar, Js::JavascriptOperators::OP_SetComputedNameVar, 0)
  66. HELPERCALL(Op_UnwrapWithObj, Js::JavascriptOperators::OP_UnwrapWithObj, 0)
  67. HELPERCALL(Op_ConvNumber_Full, Js::JavascriptOperators::ToNumber, AttrCanThrow)
  68. HELPERCALL(Op_ConvNumberInPlace, Js::JavascriptOperators::ToNumberInPlace, AttrCanThrow)
  69. HELPERCALL(Op_ConvNumber_Helper, Js::JavascriptConversion::ToNumber_Helper, 0)
  70. HELPERCALL(Op_ConvFloat_Helper, Js::JavascriptConversion::ToFloat_Helper, 0)
  71. HELPERCALL(Op_ConvNumber_FromPrimitive, Js::JavascriptConversion::ToNumber_FromPrimitive, 0)
  72. HELPERCALL(Op_Typeof, Js::JavascriptOperators::Typeof, 0)
  73. HELPERCALL(Op_TypeofElem, Js::JavascriptOperators::TypeofElem, AttrCanThrow)
  74. HELPERCALL(Op_TypeofElem_UInt32, Js::JavascriptOperators::TypeofElem_UInt32, 0)
  75. HELPERCALL(Op_TypeofElem_Int32, Js::JavascriptOperators::TypeofElem_Int32, 0)
  76. HELPERCALL(Op_TypeofPropertyScoped, Js::JavascriptOperators::OP_TypeofPropertyScoped, 0)
  77. HELPERCALL(Op_Rem_Double, Js::NumberUtilities::Modulus, 0)
  78. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Increment, Js::JavascriptMath::Increment, Js::SSE2::JavascriptMath::Increment, AttrCanThrow)
  79. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Decrement, Js::JavascriptMath::Decrement, Js::SSE2::JavascriptMath::Decrement, AttrCanThrow)
  80. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Negate, Js::JavascriptMath::Negate, Js::SSE2::JavascriptMath::Negate, AttrCanThrow)
  81. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Not, Js::JavascriptMath::Not, Js::SSE2::JavascriptMath::Not, AttrCanThrow)
  82. HELPERCALL_MATH(Op_AddLeftDead, Js::JavascriptMath::AddLeftDead, Js::SSE2::JavascriptMath::AddLeftDead, AttrCanThrow)
  83. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Add, Js::JavascriptMath::Add, Js::SSE2::JavascriptMath::Add, AttrCanThrow)
  84. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Divide, Js::JavascriptMath::Divide, Js::SSE2::JavascriptMath::Divide, AttrCanThrow)
  85. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Modulus, Js::JavascriptMath::Modulus, Js::SSE2::JavascriptMath::Modulus, AttrCanThrow)
  86. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Multiply, Js::JavascriptMath::Multiply, Js::SSE2::JavascriptMath::Multiply, AttrCanThrow)
  87. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Subtract, Js::JavascriptMath::Subtract, Js::SSE2::JavascriptMath::Subtract, AttrCanThrow)
  88. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Exponentiation, Js::JavascriptMath::Exponentiation, Js::SSE2::JavascriptMath::Exponentiation, AttrCanThrow)
  89. HELPERCALL_FULL_OR_INPLACE_MATH(Op_And, Js::JavascriptMath::And, Js::SSE2::JavascriptMath::And, AttrCanThrow)
  90. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Or, Js::JavascriptMath::Or, Js::SSE2::JavascriptMath::Or, AttrCanThrow)
  91. HELPERCALL_FULL_OR_INPLACE_MATH(Op_Xor, Js::JavascriptMath::Xor, Js::SSE2::JavascriptMath::Xor, AttrCanThrow)
  92. HELPERCALL_MATH(Op_MulAddLeft, Js::JavascriptMath::MulAddLeft, Js::SSE2::JavascriptMath::MulAddLeft, AttrCanThrow)
  93. HELPERCALL_MATH(Op_MulAddRight, Js::JavascriptMath::MulAddRight, Js::SSE2::JavascriptMath::MulAddRight, AttrCanThrow)
  94. HELPERCALL_MATH(Op_MulSubLeft, Js::JavascriptMath::MulSubLeft, Js::SSE2::JavascriptMath::MulSubLeft, AttrCanThrow)
  95. HELPERCALL_MATH(Op_MulSubRight, Js::JavascriptMath::MulSubRight, Js::SSE2::JavascriptMath::MulSubRight, AttrCanThrow)
  96. HELPERCALL_MATH(Op_ShiftLeft, Js::JavascriptMath::ShiftLeft, Js::SSE2::JavascriptMath::ShiftLeft, AttrCanThrow)
  97. HELPERCALL_MATH(Op_ShiftLeft_Full, Js::JavascriptMath::ShiftLeft_Full, Js::SSE2::JavascriptMath::ShiftLeft_Full, AttrCanThrow)
  98. HELPERCALL_MATH(Op_ShiftRight, Js::JavascriptMath::ShiftRight, Js::SSE2::JavascriptMath::ShiftRight, AttrCanThrow)
  99. HELPERCALL_MATH(Op_ShiftRight_Full, Js::JavascriptMath::ShiftRight_Full, Js::SSE2::JavascriptMath::ShiftRight_Full, AttrCanThrow)
  100. HELPERCALL_MATH(Op_ShiftRightU, Js::JavascriptMath::ShiftRightU, Js::SSE2::JavascriptMath::ShiftRightU, AttrCanThrow)
  101. HELPERCALL_MATH(Op_ShiftRightU_Full, Js::JavascriptMath::ShiftRightU_Full, Js::SSE2::JavascriptMath::ShiftRightU_Full, AttrCanThrow)
  102. HELPERCALL_MATH(Conv_ToInt32_Full, Js::JavascriptMath::ToInt32_Full, Js::SSE2::JavascriptMath::ToInt32_Full, AttrCanThrow)
  103. HELPERCALL_MATH(Conv_ToInt32, (int32 (*)(Js::Var, Js::ScriptContext *))Js::JavascriptMath::ToInt32, (int32 (*)(Js::Var, Js::ScriptContext *))Js::SSE2::JavascriptMath::ToInt32, AttrCanThrow)
  104. HELPERCALL_MATH(Op_FinishOddDivByPow2, Js::JavascriptMath::FinishOddDivByPow2, Js::SSE2::JavascriptMath::FinishOddDivByPow2, 0)
  105. HELPERCALL_MATH(Op_FinishOddDivByPow2InPlace, Js::JavascriptMath::FinishOddDivByPow2_InPlace, Js::SSE2::JavascriptMath::FinishOddDivByPow2_InPlace, 0)
  106. HELPERCALL_MATH(Conv_ToInt32Core, (int32 (*)(double))Js::JavascriptMath::ToInt32Core, (int32 (*)(double))Js::SSE2::JavascriptMath::ToInt32Core, 0)
  107. HELPERCALL_MATH(Conv_ToUInt32Core, (uint32(*)(double))Js::JavascriptMath::ToUInt32, (uint32(*)(double))Js::SSE2::JavascriptMath::ToUInt32, 0)
  108. HELPERCALL_MATH(Op_MaxInAnArray, Js::JavascriptMath::MaxInAnArray, Js::SSE2::JavascriptMath::MaxInAnArray, AttrCanThrow)
  109. HELPERCALL_MATH(Op_MinInAnArray, Js::JavascriptMath::MinInAnArray, Js::SSE2::JavascriptMath::MinInAnArray, AttrCanThrow)
  110. HELPERCALL(Op_ConvString, Js::JavascriptConversion::ToString, AttrCanThrow)
  111. HELPERCALL(Op_CoerseString, Js::JavascriptConversion::CoerseString, AttrCanThrow)
  112. HELPERCALL(Op_CoerseRegex, (Js::JavascriptRegExp* (*) (Js::Var aValue, Js::Var options, Js::ScriptContext *scriptContext))Js::JavascriptRegExp::CreateRegEx, AttrCanThrow)
  113. HELPERCALL(Op_ConvPrimitiveString, Js::JavascriptConversion::ToPrimitiveString, AttrCanThrow)
  114. HELPERCALL(Op_CompoundStringCloneForConcat, Js::CompoundString::JitClone, AttrCanThrow)
  115. HELPERCALL(Op_CompoundStringCloneForAppending, Js::CompoundString::JitCloneForAppending, AttrCanThrow)
  116. HELPERCALL(Op_Equal, Js::JavascriptOperators::Equal, 0)
  117. HELPERCALL(Op_Equal_Full, Js::JavascriptOperators::Equal_Full, 0)
  118. HELPERCALL(Op_Greater, Js::JavascriptOperators::Greater, AttrCanThrow)
  119. HELPERCALL(Op_Greater_Full, Js::JavascriptOperators::Greater_Full, AttrCanThrow)
  120. HELPERCALL(Op_GreaterEqual, Js::JavascriptOperators::GreaterEqual, AttrCanThrow)
  121. HELPERCALL(Op_Less, Js::JavascriptOperators::Less, AttrCanThrow)
  122. HELPERCALL(Op_LessEqual, Js::JavascriptOperators::LessEqual, AttrCanThrow)
  123. HELPERCALL(Op_NotEqual, Js::JavascriptOperators::NotEqual, 0)
  124. HELPERCALL(Op_StrictEqual, Js::JavascriptOperators::StrictEqual, 0)
  125. HELPERCALL(Op_StrictEqualString, Js::JavascriptOperators::StrictEqualString, 0)
  126. HELPERCALL(Op_StrictEqualEmptyString, Js::JavascriptOperators::StrictEqualEmptyString, 0)
  127. HELPERCALL(Op_NotStrictEqual, Js::JavascriptOperators::NotStrictEqual, 0)
  128. HELPERCALL(Op_SwitchStringLookUp, Js::JavascriptNativeOperators::Op_SwitchStringLookUp, 0)
  129. HELPERCALL(Op_HasProperty, Js::JavascriptOperators::OP_HasProperty, 0)
  130. HELPERCALL(Op_GetProperty, Js::JavascriptOperators::OP_GetProperty, AttrCanThrow)
  131. HELPERCALL(Op_GetInstanceScoped, Js::JavascriptOperators::OP_GetInstanceScoped, 0)
  132. HELPERCALL(Op_StFunctionExpression, Js::JavascriptOperators::OP_StFunctionExpression, 0)
  133. HELPERCALL(Op_InitUndeclRootLetFld, Js::JavascriptOperators::OP_InitUndeclRootLetProperty, AttrCanThrow)
  134. HELPERCALL(Op_InitUndeclRootConstFld, Js::JavascriptOperators::OP_InitUndeclRootConstProperty, AttrCanThrow)
  135. HELPERCALL(Op_InitUndeclConsoleLetFld, Js::JavascriptOperators::OP_InitUndeclConsoleLetProperty, AttrCanThrow)
  136. HELPERCALL(Op_InitUndeclConsoleConstFld, Js::JavascriptOperators::OP_InitUndeclConsoleConstProperty, AttrCanThrow)
  137. HELPERCALL(Op_InitLetFld, Js::JavascriptOperators::OP_InitLetProperty, AttrCanThrow)
  138. HELPERCALL(Op_InitConstFld, Js::JavascriptOperators::OP_InitConstProperty, AttrCanThrow)
  139. HELPERCALL(Op_InitClassMember, Js::JavascriptOperators::OP_InitClassMember, AttrCanThrow)
  140. HELPERCALL(Op_InitClassMemberSet, Js::JavascriptOperators::OP_InitClassMemberSet, AttrCanThrow)
  141. HELPERCALL(Op_InitClassMemberSetComputedName, Js::JavascriptOperators::OP_InitClassMemberSetComputedName, AttrCanThrow)
  142. HELPERCALL(Op_InitClassMemberGet, Js::JavascriptOperators::OP_InitClassMemberGet, AttrCanThrow)
  143. HELPERCALL(Op_InitClassMemberGetComputedName, Js::JavascriptOperators::OP_InitClassMemberGetComputedName, AttrCanThrow)
  144. HELPERCALL(Op_InitClassMemberComputedName, Js::JavascriptOperators::OP_InitClassMemberComputedName, AttrCanThrow)
  145. HELPERCALL(Op_InitFuncScoped, Js::JavascriptOperators::OP_InitFuncScoped, AttrCanThrow)
  146. HELPERCALL(Op_DeleteProperty, Js::JavascriptOperators::OP_DeleteProperty, AttrCanThrow)
  147. HELPERCALL(Op_DeleteRootProperty, Js::JavascriptOperators::OP_DeleteRootProperty, AttrCanThrow)
  148. HELPERCALL(Op_DeletePropertyScoped, Js::JavascriptOperators::OP_DeletePropertyScoped, AttrCanThrow)
  149. HELPERCALL(Op_GetElementI, Js::JavascriptOperators::OP_GetElementI_JIT, AttrCanThrow)
  150. HELPERCALL(Op_GetElementI_ExpectingNativeFloatArray, Js::JavascriptOperators::OP_GetElementI_JIT_ExpectingNativeFloatArray, AttrCanThrow)
  151. HELPERCALL(Op_GetElementI_ExpectingVarArray, Js::JavascriptOperators::OP_GetElementI_JIT_ExpectingVarArray, AttrCanThrow)
  152. HELPERCALL(Op_GetElementI_UInt32, Js::JavascriptOperators::OP_GetElementI_UInt32, AttrCanThrow)
  153. HELPERCALL(Op_GetElementI_UInt32_ExpectingNativeFloatArray, Js::JavascriptOperators::OP_GetElementI_UInt32_ExpectingNativeFloatArray, AttrCanThrow)
  154. HELPERCALL(Op_GetElementI_UInt32_ExpectingVarArray, Js::JavascriptOperators::OP_GetElementI_UInt32_ExpectingVarArray, AttrCanThrow)
  155. HELPERCALL(Op_GetElementI_Int32, Js::JavascriptOperators::OP_GetElementI_Int32, AttrCanThrow)
  156. HELPERCALL(Op_GetElementI_Int32_ExpectingNativeFloatArray, Js::JavascriptOperators::OP_GetElementI_Int32_ExpectingNativeFloatArray, AttrCanThrow)
  157. HELPERCALL(Op_GetElementI_Int32_ExpectingVarArray, Js::JavascriptOperators::OP_GetElementI_Int32_ExpectingVarArray, AttrCanThrow)
  158. HELPERCALL(Op_GetNativeIntElementI, Js::JavascriptOperators::OP_GetNativeIntElementI, AttrCanThrow)
  159. HELPERCALL(Op_GetNativeFloatElementI, Js::JavascriptOperators::OP_GetNativeFloatElementI, AttrCanThrow)
  160. HELPERCALL(Op_GetNativeIntElementI_Int32, Js::JavascriptOperators::OP_GetNativeIntElementI_Int32, AttrCanThrow)
  161. HELPERCALL(Op_GetNativeFloatElementI_Int32, Js::JavascriptOperators::OP_GetNativeFloatElementI_Int32, AttrCanThrow)
  162. HELPERCALL(Op_GetNativeIntElementI_UInt32, Js::JavascriptOperators::OP_GetNativeIntElementI_UInt32, AttrCanThrow)
  163. HELPERCALL(Op_GetNativeFloatElementI_UInt32, Js::JavascriptOperators::OP_GetNativeFloatElementI_UInt32, AttrCanThrow)
  164. HELPERCALL(Op_GetMethodElement, Js::JavascriptOperators::OP_GetMethodElement, AttrCanThrow)
  165. HELPERCALL(Op_GetMethodElement_UInt32, Js::JavascriptOperators::OP_GetMethodElement_UInt32, AttrCanThrow)
  166. HELPERCALL(Op_GetMethodElement_Int32, Js::JavascriptOperators::OP_GetMethodElement_Int32, AttrCanThrow)
  167. HELPERCALL(Op_SetElementI, Js::JavascriptOperators::OP_SetElementI_JIT, AttrCanThrow)
  168. HELPERCALL(Op_SetElementI_UInt32, Js::JavascriptOperators::OP_SetElementI_UInt32, AttrCanThrow)
  169. HELPERCALL(Op_SetElementI_Int32, Js::JavascriptOperators::OP_SetElementI_Int32, AttrCanThrow)
  170. HELPERCALL(Op_SetNativeIntElementI, Js::JavascriptOperators::OP_SetNativeIntElementI, AttrCanThrow)
  171. HELPERCALL(Op_SetNativeFloatElementI, Js::JavascriptOperators::OP_SetNativeFloatElementI, AttrCanThrow)
  172. HELPERCALL(Op_SetNativeIntElementI_Int32, Js::JavascriptOperators::OP_SetNativeIntElementI_Int32, AttrCanThrow)
  173. HELPERCALL(Op_SetNativeFloatElementI_Int32, Js::JavascriptOperators::OP_SetNativeFloatElementI_Int32, AttrCanThrow)
  174. HELPERCALL(Op_SetNativeIntElementI_UInt32, Js::JavascriptOperators::OP_SetNativeIntElementI_UInt32, AttrCanThrow)
  175. HELPERCALL(Op_SetNativeFloatElementI_UInt32, Js::JavascriptOperators::OP_SetNativeFloatElementI_UInt32, AttrCanThrow)
  176. HELPERCALL(ScrArr_SetNativeIntElementC, Js::JavascriptArray::OP_SetNativeIntElementC, AttrCanThrow)
  177. HELPERCALL(ScrArr_SetNativeFloatElementC, Js::JavascriptArray::OP_SetNativeFloatElementC, AttrCanThrow)
  178. HELPERCALL(Op_DeleteElementI, Js::JavascriptOperators::OP_DeleteElementI, AttrCanThrow)
  179. HELPERCALL(Op_DeleteElementI_UInt32, Js::JavascriptOperators::OP_DeleteElementI_UInt32, AttrCanThrow)
  180. HELPERCALL(Op_DeleteElementI_Int32, Js::JavascriptOperators::OP_DeleteElementI_Int32, AttrCanThrow)
  181. HELPERCALL(Op_Memset, Js::JavascriptOperators::OP_Memset, AttrCanThrow)
  182. HELPERCALL(Op_Memcopy, Js::JavascriptOperators::OP_Memcopy, AttrCanThrow)
  183. HELPERCALL(Op_PatchGetValue, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId))Js::JavascriptOperators::PatchGetValue<true, Js::InlineCache>), AttrCanThrow)
  184. HELPERCALL(Op_PatchGetValueWithThisPtr, ((Js::Var(*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchGetValueWithThisPtr<true, Js::InlineCache>), AttrCanThrow)
  185. HELPERCALL(Op_PatchGetValueForTypeOf, ((Js::Var(*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId))Js::JavascriptOperators::PatchGetValueForTypeOf<true, Js::InlineCache>), AttrCanThrow)
  186. HELPERCALL(Op_PatchGetValuePolymorphic, ((Js::Var (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId))Js::JavascriptOperators::PatchGetValue<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  187. HELPERCALL(Op_PatchGetValuePolymorphicWithThisPtr, ((Js::Var(*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchGetValueWithThisPtr<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  188. HELPERCALL(Op_PatchGetValuePolymorphicForTypeOf, ((Js::Var(*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId))Js::JavascriptOperators::PatchGetValueForTypeOf<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  189. HELPERCALL(Op_PatchGetRootValue, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::DynamicObject*, Js::PropertyId))Js::JavascriptOperators::PatchGetRootValue<true, Js::InlineCache>), AttrCanThrow)
  190. HELPERCALL(Op_PatchGetRootValuePolymorphic, ((Js::Var (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::DynamicObject*, Js::PropertyId))Js::JavascriptOperators::PatchGetRootValue<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  191. HELPERCALL(Op_PatchGetRootValueForTypeOf, ((Js::Var(*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::DynamicObject*, Js::PropertyId))Js::JavascriptOperators::PatchGetRootValueForTypeOf<true, Js::InlineCache>), AttrCanThrow)
  192. HELPERCALL(Op_PatchGetRootValuePolymorphicForTypeOf, ((Js::Var(*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::DynamicObject*, Js::PropertyId))Js::JavascriptOperators::PatchGetRootValueForTypeOf<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  193. HELPERCALL(Op_PatchGetPropertyScoped, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::FrameDisplay*, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchGetPropertyScoped<true, Js::InlineCache>), AttrCanThrow)
  194. HELPERCALL(Op_PatchGetPropertyForTypeOfScoped, ((Js::Var(*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::FrameDisplay*, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchGetPropertyForTypeOfScoped<true, Js::InlineCache>), AttrCanThrow)
  195. HELPERCALL(Op_PatchInitValue, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::RecyclableObject*, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchInitValue<true, Js::InlineCache>), AttrCanThrow)
  196. HELPERCALL(Op_PatchInitValuePolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::RecyclableObject*, Js::PropertyId, Js::Var))Js::JavascriptOperators::PatchInitValue<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  197. HELPERCALL(Op_PatchPutValue, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValue<true, Js::InlineCache>), AttrCanThrow)
  198. HELPERCALL(Op_PatchPutValueWithThisPtr, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueWithThisPtr<true, Js::InlineCache>), AttrCanThrow)
  199. HELPERCALL(Op_PatchPutValuePolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValue<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  200. HELPERCALL(Op_PatchPutValueWithThisPtrPolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueWithThisPtr<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  201. HELPERCALL(Op_PatchPutRootValue, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutRootValue<true, Js::InlineCache>), AttrCanThrow)
  202. HELPERCALL(Op_PatchPutRootValuePolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutRootValue<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  203. HELPERCALL(Op_PatchPutValueNoLocalFastPath, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueNoLocalFastPath<true, Js::InlineCache>), AttrCanThrow)
  204. HELPERCALL(Op_PatchPutValueWithThisPtrNoLocalFastPath, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueWithThisPtrNoLocalFastPath<true, Js::InlineCache>), AttrCanThrow)
  205. HELPERCALL(Op_PatchPutValueNoLocalFastPathPolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueNoLocalFastPath<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  206. HELPERCALL(Op_PatchPutValueWithThisPtrNoLocalFastPathPolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutValueWithThisPtrNoLocalFastPath<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  207. HELPERCALL(Op_PatchPutRootValueNoLocalFastPath, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutRootValueNoLocalFastPath<true, Js::InlineCache>), AttrCanThrow)
  208. HELPERCALL(Op_PatchPutRootValueNoLocalFastPathPolymorphic, ((void (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchPutRootValueNoLocalFastPath<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  209. HELPERCALL(Op_PatchSetPropertyScoped, ((void (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::FrameDisplay*, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchSetPropertyScoped<true, Js::InlineCache>), AttrCanThrow)
  210. HELPERCALL(Op_ConsolePatchSetPropertyScoped, ((void(*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::FrameDisplay*, Js::PropertyId, Js::Var, Js::Var, Js::PropertyOperationFlags))Js::JavascriptOperators::PatchSetPropertyScoped<true, Js::InlineCache>), AttrCanThrow)
  211. HELPERCALL(Op_PatchGetMethod, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchGetMethod<true, Js::InlineCache>), AttrCanThrow)
  212. HELPERCALL(Op_PatchGetMethodPolymorphic, ((Js::Var (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchGetMethod<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  213. HELPERCALL(Op_PatchGetRootMethod, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchGetRootMethod<true, Js::InlineCache>), AttrCanThrow)
  214. HELPERCALL(Op_PatchGetRootMethodPolymorphic, ((Js::Var (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchGetRootMethod<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  215. HELPERCALL(Op_ScopedGetMethod, ((Js::Var (*)(Js::FunctionBody *const, Js::InlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchScopedGetMethod<true, Js::InlineCache>), AttrCanThrow)
  216. HELPERCALL(Op_ScopedGetMethodPolymorphic, ((Js::Var (*)(Js::FunctionBody *const, Js::PolymorphicInlineCache *const, const Js::InlineCacheIndex, Js::Var, Js::PropertyId, bool))Js::JavascriptOperators::PatchScopedGetMethod<true, Js::PolymorphicInlineCache>), AttrCanThrow)
  217. HELPERCALL(CheckIfTypeIsEquivalent, Js::JavascriptOperators::CheckIfTypeIsEquivalent, 0)
  218. HELPERCALL(Op_Delete, Js::JavascriptOperators::Delete, AttrCanThrow)
  219. HELPERCALL(OP_InitSetter, Js::JavascriptOperators::OP_InitSetter, AttrCanThrow)
  220. HELPERCALL(OP_InitElemSetter, Js::JavascriptOperators::OP_InitElemSetter, AttrCanThrow)
  221. HELPERCALL(OP_InitGetter, Js::JavascriptOperators::OP_InitGetter, AttrCanThrow)
  222. HELPERCALL(OP_InitElemGetter, Js::JavascriptOperators::OP_InitElemGetter, AttrCanThrow)
  223. HELPERCALL(OP_InitComputedProperty, Js::JavascriptOperators::OP_InitComputedProperty, AttrCanThrow)
  224. HELPERCALL(OP_InitProto, Js::JavascriptOperators::OP_InitProto, AttrCanThrow)
  225. HELPERCALL(Op_OP_GetForInEnumerator, Js::JavascriptOperators::OP_GetForInEnumerator, 0)
  226. HELPERCALL(Op_OP_ReleaseForInEnumerator, Js::JavascriptOperators::OP_ReleaseForInEnumerator, 0)
  227. HELPERCALL(Op_OP_BrOnEmpty, Js::JavascriptOperators::OP_BrOnEmpty, 0)
  228. HELPERCALL(Op_OP_BrFncEqApply, Js::JavascriptOperators::OP_BrFncEqApply, 0)
  229. HELPERCALL(Op_OP_BrFncNeqApply, Js::JavascriptOperators::OP_BrFncNeqApply, 0)
  230. HELPERCALL(Op_OP_ApplyArgs, Js::JavascriptOperators::OP_ApplyArgs, 0)
  231. HELPERCALL(Conv_ToBoolean, Js::JavascriptConversion::ToBoolean, 0)
  232. HELPERCALL(ScrArr_ProfiledNewInstance, Js::JavascriptArray::ProfiledNewInstance, 0)
  233. HELPERCALL(ScrArr_ProfiledNewInstanceNoArg, Js::JavascriptArray::ProfiledNewInstanceNoArg, 0)
  234. HELPERCALL(ScrArr_OP_NewScArray, Js::JavascriptArray::OP_NewScArray, 0)
  235. HELPERCALL(ScrArr_ProfiledNewScArray, Js::JavascriptArray::ProfiledNewScArray, 0)
  236. HELPERCALL(ScrArr_OP_NewScArrayWithElements, Js::JavascriptArray::OP_NewScArrayWithElements, 0)
  237. HELPERCALL(ScrArr_OP_NewScArrayWithMissingValues, Js::JavascriptArray::OP_NewScArrayWithMissingValues, 0)
  238. HELPERCALL(ScrArr_OP_NewScIntArray, Js::JavascriptArray::OP_NewScIntArray, 0)
  239. HELPERCALL(ScrArr_ProfiledNewScIntArray, Js::JavascriptArray::ProfiledNewScIntArray, 0)
  240. HELPERCALL(ScrArr_OP_NewScFltArray, Js::JavascriptArray::OP_NewScFltArray, 0)
  241. HELPERCALL(ScrArr_ProfiledNewScFltArray, Js::JavascriptArray::ProfiledNewScFltArray, 0)
  242. HELPERCALL(ArraySegmentVars, Js::JavascriptOperators::AddVarsToArraySegment, 0)
  243. HELPERCALL(IntArr_ToNativeFloatArray, Js::JavascriptNativeIntArray::ToNativeFloatArray, AttrCanThrow)
  244. HELPERCALL(IntArr_ToVarArray, Js::JavascriptNativeIntArray::ToVarArray, AttrCanThrow)
  245. HELPERCALL(FloatArr_ToVarArray, Js::JavascriptNativeFloatArray::ToVarArray, AttrCanThrow)
  246. HELPERCALL(Array_Jit_GetArrayHeadSegmentForArrayOrObjectWithArray, Js::JavascriptArray::Jit_GetArrayHeadSegmentForArrayOrObjectWithArray, 0)
  247. HELPERCALL(Array_Jit_GetArrayHeadSegmentLength, Js::JavascriptArray::Jit_GetArrayHeadSegmentLength, 0)
  248. HELPERCALL(Array_Jit_OperationInvalidatedArrayHeadSegment, Js::JavascriptArray::Jit_OperationInvalidatedArrayHeadSegment, 0)
  249. HELPERCALL(Array_Jit_GetArrayLength, Js::JavascriptArray::Jit_GetArrayLength, 0)
  250. HELPERCALL(Array_Jit_OperationInvalidatedArrayLength, Js::JavascriptArray::Jit_OperationInvalidatedArrayLength, 0)
  251. HELPERCALL(Array_Jit_GetArrayFlagsForArrayOrObjectWithArray, Js::JavascriptArray::Jit_GetArrayFlagsForArrayOrObjectWithArray, 0)
  252. HELPERCALL(Array_Jit_OperationCreatedFirstMissingValue, Js::JavascriptArray::Jit_OperationCreatedFirstMissingValue, 0)
  253. HELPERCALL(AllocMemForConcatStringMulti, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::ConcatStringMulti>, 0)
  254. HELPERCALL(AllocMemForScObject, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::DynamicObject>, 0)
  255. HELPERCALL(AllocMemForJavascriptArray, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::JavascriptArray>, 0)
  256. HELPERCALL(AllocMemForJavascriptNativeIntArray, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::JavascriptNativeIntArray>, 0)
  257. HELPERCALL(AllocMemForJavascriptNativeFloatArray, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::JavascriptNativeFloatArray>, 0)
  258. HELPERCALL(AllocMemForSparseArraySegmentBase, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::SparseArraySegmentBase>, 0)
  259. HELPERCALL(AllocMemForFrameDisplay, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::FrameDisplay>, 0)
  260. HELPERCALL(AllocMemForVarArray, Js::JavascriptOperators::AllocMemForVarArray, 0)
  261. HELPERCALL(AllocMemForJavascriptRegExp, (void (*)(size_t, Recycler*))Js::JavascriptOperators::JitRecyclerAlloc<Js::JavascriptRegExp>, 0)
  262. HELPERCALL(NewJavascriptObjectNoArg, Js::JavascriptOperators::NewJavascriptObjectNoArg, 0)
  263. HELPERCALL(NewJavascriptArrayNoArg, Js::JavascriptOperators::NewJavascriptArrayNoArg, 0)
  264. HELPERCALL(NewScObjectNoArg, Js::JavascriptOperators::NewScObjectNoArg, 0)
  265. HELPERCALL(NewScObjectNoCtor, Js::JavascriptOperators::NewScObjectNoCtor, 0)
  266. HELPERCALL(NewScObjectNoCtorFull, Js::JavascriptOperators::NewScObjectNoCtorFull, 0)
  267. HELPERCALL(NewScObjectNoArgNoCtorFull, Js::JavascriptOperators::NewScObjectNoArgNoCtorFull, 0)
  268. HELPERCALL(NewScObjectNoArgNoCtor, Js::JavascriptOperators::NewScObjectNoArgNoCtor, 0)
  269. HELPERCALL(UpdateNewScObjectCache, Js::JavascriptOperators::UpdateNewScObjectCache, 0)
  270. HELPERCALL(EnsureObjectLiteralType, Js::JavascriptOperators::EnsureObjectLiteralType, 0)
  271. HELPERCALL(OP_InitClass, Js::JavascriptOperators::OP_InitClass, AttrCanThrow)
  272. HELPERCALL(OP_Freeze, Js::JavascriptOperators::OP_Freeze, AttrCanThrow)
  273. HELPERCALL(OP_ClearAttributes, Js::JavascriptOperators::OP_ClearAttributes, AttrCanThrow)
  274. HELPERCALL(OP_CmEq_A, Js::JavascriptOperators::OP_CmEq_A, 0)
  275. HELPERCALL(OP_CmNeq_A, Js::JavascriptOperators::OP_CmNeq_A, 0)
  276. HELPERCALL(OP_CmSrEq_A, Js::JavascriptOperators::OP_CmSrEq_A, 0)
  277. HELPERCALL(OP_CmSrEq_String, Js::JavascriptOperators::OP_CmSrEq_String, 0)
  278. HELPERCALL(OP_CmSrEq_EmptyString, Js::JavascriptOperators::OP_CmSrEq_EmptyString, 0)
  279. HELPERCALL(OP_CmSrNeq_A, Js::JavascriptOperators::OP_CmSrNeq_A, 0)
  280. HELPERCALL(OP_CmLt_A, Js::JavascriptOperators::OP_CmLt_A, AttrCanThrow)
  281. HELPERCALL(OP_CmLe_A, Js::JavascriptOperators::OP_CmLe_A, AttrCanThrow)
  282. HELPERCALL(OP_CmGt_A, Js::JavascriptOperators::OP_CmGt_A, AttrCanThrow)
  283. HELPERCALL(OP_CmGe_A, Js::JavascriptOperators::OP_CmGe_A, AttrCanThrow)
  284. HELPERCALL(Conv_ToUInt32_Full, Js::JavascriptConversion::ToUInt32_Full, AttrCanThrow)
  285. HELPERCALL(Conv_ToUInt32, (uint32 (*)(Js::Var, Js::ScriptContext *))Js::JavascriptConversion::ToUInt32, AttrCanThrow)
  286. #ifdef _M_IX86
  287. HELPERCALL(Op_Int32ToAtom, Js::JavascriptOperators::Int32ToVar, 0)
  288. HELPERCALL(Op_Int32ToAtomInPlace, Js::JavascriptOperators::Int32ToVarInPlace, 0)
  289. HELPERCALL(Op_UInt32ToAtom, Js::JavascriptOperators::UInt32ToVar, 0)
  290. HELPERCALL(Op_UInt32ToAtomInPlace, Js::JavascriptOperators::UInt32ToVarInPlace, 0)
  291. #endif
  292. #if !FLOATVAR
  293. HELPERCALL(AllocUninitializedNumber, Js::JavascriptOperators::AllocUninitializedNumber, 0)
  294. #endif
  295. // SIMD_JS
  296. HELPERCALL(AllocUninitializedSimdF4, Js::JavascriptSIMDFloat32x4::AllocUninitialized, 0)
  297. HELPERCALL(AllocUninitializedSimdI4, Js::JavascriptSIMDInt32x4::AllocUninitialized, 0)
  298. HELPERCALL(Op_TryCatch, nullptr, 0)
  299. HELPERCALL(Op_TryFinally, nullptr, AttrCanThrow)
  300. #if _M_X64
  301. HELPERCALL(Op_ReturnFromCallWithFakeFrame, amd64_ReturnFromCallWithFakeFrame, 0)
  302. #endif
  303. HELPERCALL(Op_Throw, Js::JavascriptExceptionOperators::OP_Throw, AttrCanThrow)
  304. HELPERCALL(Op_RuntimeTypeError, Js::JavascriptExceptionOperators::OP_RuntimeTypeError, AttrCanThrow)
  305. HELPERCALL(Op_RuntimeRangeError, Js::JavascriptExceptionOperators::OP_RuntimeRangeError, AttrCanThrow)
  306. HELPERCALL(Op_RuntimeReferenceError, Js::JavascriptExceptionOperators::OP_RuntimeReferenceError, AttrCanThrow)
  307. HELPERCALL(Op_OutOfMemoryError, Js::Throw::OutOfMemory, AttrCanThrow)
  308. HELPERCALL(Op_FatalInternalError, Js::Throw::FatalInternalError, AttrCanThrow)
  309. HELPERCALL(Op_InvokePut, Js::JavascriptOperators::OP_InvokePut, 0)
  310. #if ENABLE_REGEX_CONFIG_OPTIONS
  311. HELPERCALL(ScrRegEx_OP_NewRegEx, Js::JavascriptRegExp::OP_NewRegEx, 0)
  312. #endif
  313. HELPERCALL(ProbeCurrentStack, ThreadContext::ProbeCurrentStack, 0)
  314. HELPERCALL(ProbeCurrentStack2, ThreadContext::ProbeCurrentStack2, 0)
  315. HELPERCALL(AdjustSlots, Js::DynamicTypeHandler::AdjustSlots_Jit, 0)
  316. HELPERCALL(InvalidateProtoCaches, Js::JavascriptOperators::OP_InvalidateProtoCaches, 0)
  317. HELPERCALL(CheckProtoHasNonWritable, Js::JavascriptOperators::DoCheckIfPrototypeChainHasOnlyWritableDataProperties, 0)
  318. HELPERCALL(GetStringForChar, (Js::JavascriptString * (*)(Js::CharStringCache *, wchar_t))&Js::CharStringCache::GetStringForChar, 0)
  319. HELPERCALL(GetStringForCharCodePoint, (Js::JavascriptString * (*)(Js::CharStringCache *, codepoint_t))&Js::CharStringCache::GetStringForCharCodePoint, 0)
  320. HELPERCALL(ProfiledLdElem, Js::ProfilingHelpers::ProfiledLdElem, 0)
  321. HELPERCALL(ProfiledStElem_DefaultFlags, Js::ProfilingHelpers::ProfiledStElem_DefaultFlags, 0)
  322. HELPERCALL(ProfiledStElem, Js::ProfilingHelpers::ProfiledStElem, 0)
  323. HELPERCALL(ProfiledNewScArray, Js::ProfilingHelpers::ProfiledNewScArray, 0)
  324. HELPERCALL(ProfiledNewScObjArray, Js::ProfilingHelpers::ProfiledNewScObjArray_Jit, 0)
  325. HELPERCALL(ProfiledNewScObjArraySpread, Js::ProfilingHelpers::ProfiledNewScObjArraySpread_Jit, 0)
  326. HELPERCALL(ProfileLdSlot, Js::ProfilingHelpers::ProfileLdSlot, 0)
  327. HELPERCALL(ProfiledLdFld, Js::ProfilingHelpers::ProfiledLdFld_Jit, 0)
  328. HELPERCALL(ProfiledLdSuperFld, Js::ProfilingHelpers::ProfiledLdSuperFld_Jit, 0)
  329. HELPERCALL(ProfiledLdFldForTypeOf, Js::ProfilingHelpers::ProfiledLdFldForTypeOf_Jit, 0)
  330. HELPERCALL(ProfiledLdRootFldForTypeOf, Js::ProfilingHelpers::ProfiledLdRootFldForTypeOf_Jit, 0)
  331. HELPERCALL(ProfiledLdFld_CallApplyTarget, Js::ProfilingHelpers::ProfiledLdFld_CallApplyTarget_Jit, 0)
  332. HELPERCALL(ProfiledLdMethodFld, Js::ProfilingHelpers::ProfiledLdMethodFld_Jit, 0)
  333. HELPERCALL(ProfiledLdRootFld, Js::ProfilingHelpers::ProfiledLdRootFld_Jit, 0)
  334. HELPERCALL(ProfiledLdRootMethodFld, Js::ProfilingHelpers::ProfiledLdRootMethodFld_Jit, 0)
  335. HELPERCALL(ProfiledStFld, Js::ProfilingHelpers::ProfiledStFld_Jit, 0)
  336. HELPERCALL(ProfiledStSuperFld, Js::ProfilingHelpers::ProfiledStSuperFld_Jit, 0)
  337. HELPERCALL(ProfiledStFld_Strict, Js::ProfilingHelpers::ProfiledStFld_Strict_Jit, 0)
  338. HELPERCALL(ProfiledStRootFld, Js::ProfilingHelpers::ProfiledStRootFld_Jit, 0)
  339. HELPERCALL(ProfiledStRootFld_Strict, Js::ProfilingHelpers::ProfiledStRootFld_Strict_Jit, 0)
  340. HELPERCALL(ProfiledInitFld, Js::ProfilingHelpers::ProfiledInitFld_Jit, 0)
  341. HELPERCALL(TransitionFromSimpleJit, NativeCodeGenerator::Jit_TransitionFromSimpleJit, 0)
  342. HELPERCALL(SimpleProfileCall_DefaultInlineCacheIndex, Js::SimpleJitHelpers::ProfileCall_DefaultInlineCacheIndex, 0)
  343. HELPERCALL(SimpleProfileCall, Js::SimpleJitHelpers::ProfileCall, 0)
  344. HELPERCALL(SimpleProfileReturnTypeCall, Js::SimpleJitHelpers::ProfileReturnTypeCall, 0)
  345. HELPERCALL(SimpleProfiledLdLen, Js::SimpleJitHelpers::ProfiledLdLen_A, AttrCanThrow) //Can throw because it mirrors OP_GetProperty
  346. HELPERCALL(SimpleProfiledStrictLdThis, Js::SimpleJitHelpers::ProfiledStrictLdThis, 0)
  347. HELPERCALL(SimpleProfiledLdThis, Js::SimpleJitHelpers::ProfiledLdThis, 0)
  348. HELPERCALL(SimpleProfiledSwitch, Js::SimpleJitHelpers::ProfiledSwitch, 0)
  349. HELPERCALL(SimpleProfiledDivide, Js::SimpleJitHelpers::ProfiledDivide, 0)
  350. HELPERCALL(SimpleProfiledRemainder, Js::SimpleJitHelpers::ProfiledRemainder, 0)
  351. HELPERCALL(SimpleStoreArrayHelper, Js::SimpleJitHelpers::StoreArrayHelper, 0)
  352. HELPERCALL(SimpleStoreArraySegHelper, Js::SimpleJitHelpers::StoreArraySegHelper, 0)
  353. HELPERCALL(SimpleProfileParameters, Js::SimpleJitHelpers::ProfileParameters, 0)
  354. HELPERCALL(SimpleCleanImplicitCallFlags, Js::SimpleJitHelpers::CleanImplicitCallFlags, 0)
  355. HELPERCALL(SimpleGetScheduledEntryPoint, Js::SimpleJitHelpers::GetScheduledEntryPoint, 0)
  356. HELPERCALL(SimpleIsLoopCodeGenDone, Js::SimpleJitHelpers::IsLoopCodeGenDone, 0)
  357. HELPERCALL(SimpleRecordLoopImplicitCallFlags, Js::SimpleJitHelpers::RecordLoopImplicitCallFlags, 0)
  358. HELPERCALL(ScriptAbort, Js::JavascriptOperators::ScriptAbort, AttrCanThrow)
  359. HELPERCALL(NoSaveRegistersBailOutForElidedYield, BailOutRecord::BailOutForElidedYield, 0)
  360. // We don't want these functions to be valid iCall targets because they can be used to disclose stack addresses
  361. // which CFG cannot defend against. Instead, return these addresses in GetNonTableMethodAddress
  362. HELPERCALL(SaveAllRegistersAndBailOut, nullptr, 0)
  363. HELPERCALL(SaveAllRegistersAndBranchBailOut, nullptr, 0)
  364. #ifdef _M_IX86
  365. HELPERCALL(SaveAllRegistersNoSse2AndBailOut, nullptr, 0)
  366. HELPERCALL(SaveAllRegistersNoSse2AndBranchBailOut, nullptr, 0)
  367. #endif
  368. //Helpers for inlining built-ins
  369. HELPERCALL(Array_Concat, Js::JavascriptArray::EntryConcat, 0)
  370. HELPERCALL(Array_IndexOf, Js::JavascriptArray::EntryIndexOf, 0)
  371. HELPERCALL(Array_Includes, Js::JavascriptArray::EntryIncludes, 0)
  372. HELPERCALL(Array_Join, Js::JavascriptArray::EntryJoin, 0)
  373. HELPERCALL(Array_LastIndexOf, Js::JavascriptArray::EntryLastIndexOf, 0)
  374. HELPERCALL(Array_VarPush, Js::JavascriptArray::Push, 0)
  375. HELPERCALL(Array_NativeIntPush, Js::JavascriptNativeIntArray::Push, 0)
  376. HELPERCALL(Array_NativeFloatPush, Js::JavascriptNativeFloatArray::Push, 0)
  377. HELPERCALL(Array_VarPop, Js::JavascriptArray::Pop, 0)
  378. HELPERCALL(Array_NativePopWithNoDst, Js::JavascriptNativeArray::PopWithNoDst, 0)
  379. HELPERCALL(Array_NativeIntPop, Js::JavascriptNativeIntArray::Pop, 0)
  380. HELPERCALL(Array_NativeFloatPop, Js::JavascriptNativeFloatArray::Pop, 0)
  381. HELPERCALL(Array_Reverse, Js::JavascriptArray::EntryReverse, 0)
  382. HELPERCALL(Array_Shift, Js::JavascriptArray::EntryShift, 0)
  383. HELPERCALL(Array_Slice, Js::JavascriptArray::EntrySlice, 0)
  384. HELPERCALL(Array_Splice, Js::JavascriptArray::EntrySplice, 0)
  385. HELPERCALL(Array_Unshift, Js::JavascriptArray::EntryUnshift, 0)
  386. HELPERCALL(String_Concat, Js::JavascriptString::EntryConcat, 0)
  387. HELPERCALL(String_CharCodeAt, Js::JavascriptString::EntryCharCodeAt, 0)
  388. HELPERCALL(String_CharAt, Js::JavascriptString::EntryCharAt, 0)
  389. HELPERCALL(String_FromCharCode, Js::JavascriptString::EntryFromCharCode, 0)
  390. HELPERCALL(String_FromCodePoint, Js::JavascriptString::EntryFromCodePoint, 0)
  391. HELPERCALL(String_IndexOf, Js::JavascriptString::EntryIndexOf, 0)
  392. HELPERCALL(String_LastIndexOf, Js::JavascriptString::EntryLastIndexOf, 0)
  393. HELPERCALL(String_Link, Js::JavascriptString::EntryLink, 0)
  394. HELPERCALL(String_LocaleCompare, Js::JavascriptString::EntryLocaleCompare, 0)
  395. HELPERCALL(String_Match, Js::JavascriptString::EntryMatch, 0)
  396. HELPERCALL(String_Replace, Js::JavascriptString::EntryReplace, 0)
  397. HELPERCALL(String_Search, Js::JavascriptString::EntrySearch, 0)
  398. HELPERCALL(String_Slice, Js::JavascriptString::EntrySlice, 0)
  399. HELPERCALL(String_Split, Js::JavascriptString::EntrySplit, 0)
  400. HELPERCALL(String_Substr, Js::JavascriptString::EntrySubstr, 0)
  401. HELPERCALL(String_Substring, Js::JavascriptString::EntrySubstring, 0)
  402. HELPERCALL(String_ToLocaleLowerCase, Js::JavascriptString::EntryToLocaleLowerCase, 0)
  403. HELPERCALL(String_ToLocaleUpperCase, Js::JavascriptString::EntryToLocaleUpperCase, 0)
  404. HELPERCALL(String_ToLowerCase, Js::JavascriptString::EntryToLowerCase, 0)
  405. HELPERCALL(String_ToUpperCase, Js::JavascriptString::EntryToUpperCase, 0)
  406. HELPERCALL(String_Trim, Js::JavascriptString::EntryTrim, 0)
  407. HELPERCALL(String_TrimLeft, Js::JavascriptString::EntryTrimLeft, 0)
  408. HELPERCALL(String_TrimRight, Js::JavascriptString::EntryTrimRight, 0)
  409. HELPERCALL(String_GetSz, Js::JavascriptString::GetSzHelper, 0)
  410. HELPERCALL(GlobalObject_ParseInt, Js::GlobalObject::EntryParseInt, 0)
  411. HELPERCALL(RegExp_SplitResultUsed, Js::RegexHelper::RegexSplitResultUsed, 0)
  412. HELPERCALL(RegExp_SplitResultUsedAndMayBeTemp, Js::RegexHelper::RegexSplitResultUsedAndMayBeTemp, 0)
  413. HELPERCALL(RegExp_SplitResultNotUsed, Js::RegexHelper::RegexSplitResultNotUsed, 0)
  414. HELPERCALL(RegExp_MatchResultUsed, Js::RegexHelper::RegexMatchResultUsed, 0)
  415. HELPERCALL(RegExp_MatchResultUsedAndMayBeTemp, Js::RegexHelper::RegexMatchResultUsedAndMayBeTemp, 0)
  416. HELPERCALL(RegExp_MatchResultNotUsed, Js::RegexHelper::RegexMatchResultNotUsed, 0)
  417. HELPERCALL(RegExp_Exec, Js::JavascriptRegExp::EntryExec, 0)
  418. HELPERCALL(RegExp_ExecResultUsed, Js::RegexHelper::RegexExecResultUsed, 0)
  419. HELPERCALL(RegExp_ExecResultUsedAndMayBeTemp, Js::RegexHelper::RegexExecResultUsedAndMayBeTemp, 0)
  420. HELPERCALL(RegExp_ExecResultNotUsed, Js::RegexHelper::RegexExecResultNotUsed, 0)
  421. HELPERCALL(RegExp_ReplaceStringResultUsed, Js::RegexHelper::RegexReplaceResultUsed, 0)
  422. HELPERCALL(RegExp_ReplaceStringResultNotUsed, Js::RegexHelper::RegexReplaceResultNotUsed, 0)
  423. HELPERCALL(Uint8ClampedArraySetItem, (BOOL (*)(Js::Uint8ClampedArray * arr, uint32 index, Js::Var value))&Js::Uint8ClampedArray::DirectSetItem, 0)
  424. HELPERCALL(EnsureFunctionProxyDeferredPrototypeType, &Js::FunctionProxy::EnsureFunctionProxyDeferredPrototypeType, 0)
  425. HELPERCALL(SpreadArrayLiteral, Js::JavascriptArray::SpreadArrayArgs, 0)
  426. HELPERCALL(SpreadCall, Js::JavascriptFunction::EntrySpreadCall, 0)
  427. HELPERCALL(LdSuper, Js::JavascriptOperators::OP_LdSuper, 0)
  428. HELPERCALL(LdSuperCtor, Js::JavascriptOperators::OP_LdSuperCtor, 0)
  429. HELPERCALL(ScopedLdSuper, Js::JavascriptOperators::OP_ScopedLdSuper, 0)
  430. HELPERCALL(ScopedLdSuperCtor, Js::JavascriptOperators::OP_ScopedLdSuperCtor, 0)
  431. HELPERCALL(SetHomeObj, Js::JavascriptOperators::OP_SetHomeObj, 0)
  432. HELPERCALL(ResumeYield, Js::JavascriptOperators::OP_ResumeYield, AttrCanThrow)
  433. HELPERCALL(AsyncSpawn, Js::JavascriptOperators::OP_AsyncSpawn, AttrCanThrow)
  434. #include "ExternalHelperMethodList.h"
  435. #if !FLOATVAR
  436. HELPERCALL(BoxStackNumber, Js::JavascriptNumber::BoxStackNumber, 0)
  437. #endif
  438. HELPERCALL(GetNonzeroInt32Value_NoTaggedIntCheck, Js::JavascriptNumber::GetNonzeroInt32Value_NoTaggedIntCheck, 0)
  439. HELPERCALL(IsNegZero, Js::JavascriptNumber::IsNegZero, 0)
  440. HELPERCALL(DirectMath_Pow, (double(*)(double, double))Js::JavascriptNumber::DirectPow, 0)
  441. HELPERCALL_MATH(DirectMath_Random, (double(*)(Js::ScriptContext*))Js::JavascriptMath::Random, (double(*)(Js::ScriptContext*))Js::SSE2::JavascriptMath::Random, 0)
  442. //
  443. // Putting dllimport function ptr in JnHelperMethodAddresses will cause the table to be allocated in read-write memory
  444. // as dynamic initialization is require to load these addresses. Use nullptr instead and handle these function in GetNonTableMethodAddress().
  445. //
  446. HELPERCALL(MemCmp, nullptr, 0)
  447. HELPERCALL(MemCpy, nullptr, 0)
  448. #ifdef _M_IX86
  449. HELPERCALL(DirectMath_Acos, nullptr, 0)
  450. HELPERCALL(DirectMath_Asin, nullptr, 0)
  451. HELPERCALL(DirectMath_Atan, nullptr, 0)
  452. HELPERCALL(DirectMath_Atan2, nullptr, 0)
  453. HELPERCALL(DirectMath_Cos, nullptr, 0)
  454. HELPERCALL(DirectMath_Exp, nullptr, 0)
  455. HELPERCALL(DirectMath_Log, nullptr, 0)
  456. HELPERCALL(DirectMath_Sin, nullptr, 0)
  457. HELPERCALL(DirectMath_Tan, nullptr, 0)
  458. #elif defined(_M_X64)
  459. // AMD64 regular CRT calls -- on AMD64 calling convention is already what we want -- args in XMM0, XMM1 rather than on stack which is slower.
  460. HELPERCALL(DirectMath_Acos, nullptr, 0)
  461. HELPERCALL(DirectMath_Asin, nullptr, 0)
  462. HELPERCALL(DirectMath_Atan, nullptr, 0)
  463. HELPERCALL(DirectMath_Atan2, nullptr, 0)
  464. HELPERCALL(DirectMath_Cos, nullptr, 0)
  465. HELPERCALL(DirectMath_Exp, nullptr, 0)
  466. HELPERCALL(DirectMath_Log, nullptr, 0)
  467. HELPERCALL(DirectMath_Sin, nullptr, 0)
  468. HELPERCALL(DirectMath_Tan, nullptr, 0)
  469. HELPERCALL(DirectMath_FloorDb, nullptr, 0)
  470. HELPERCALL(DirectMath_FloorFlt, nullptr, 0)
  471. HELPERCALL(DirectMath_CeilDb, nullptr, 0)
  472. HELPERCALL(DirectMath_CeilFlt, nullptr, 0)
  473. #elif defined(_M_ARM32_OR_ARM64)
  474. // ARM is similar to AMD64 -- regular CRT calls as calling convention is already what we want -- args/result in VFP registers.
  475. HELPERCALL(DirectMath_Acos, nullptr, 0)
  476. HELPERCALL(DirectMath_Asin, nullptr, 0)
  477. HELPERCALL(DirectMath_Atan, nullptr, 0)
  478. HELPERCALL(DirectMath_Atan2, nullptr, 0)
  479. HELPERCALL(DirectMath_Cos, nullptr, 0)
  480. HELPERCALL(DirectMath_Exp, nullptr, 0)
  481. HELPERCALL(DirectMath_Log, nullptr, 0)
  482. HELPERCALL(DirectMath_Sin, nullptr, 0)
  483. HELPERCALL(DirectMath_Tan, nullptr, 0)
  484. #endif
  485. #ifdef _CONTROL_FLOW_GUARD
  486. HELPERCALL(GuardCheckCall, nullptr, 0)
  487. #endif
  488. // This is statically initialized.
  489. #ifdef _M_IX86
  490. HELPERCALL( CRT_chkstk, _chkstk, 0 )
  491. #else
  492. HELPERCALL(CRT_chkstk, __chkstk, 0)
  493. #endif
  494. #undef HELPERCALL_MATH
  495. #undef HELPERCALL_FULL_OR_INPLACE_MATH
  496. #endif