diff options
Diffstat (limited to 'js/src/jit/InlinableNatives.h')
-rw-r--r-- | js/src/jit/InlinableNatives.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/js/src/jit/InlinableNatives.h b/js/src/jit/InlinableNatives.h new file mode 100644 index 000000000..89c2ff0a4 --- /dev/null +++ b/js/src/jit/InlinableNatives.h @@ -0,0 +1,166 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * vim: set ts=8 sts=4 et sw=4 tw=99: + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef jit_InlinableNatives_h +#define jit_InlinableNatives_h + +#define INLINABLE_NATIVE_LIST(_) \ + _(Array) \ + _(ArrayIsArray) \ + _(ArrayJoin) \ + _(ArrayPop) \ + _(ArrayShift) \ + _(ArrayPush) \ + _(ArraySlice) \ + _(ArraySplice) \ + \ + _(AtomicsCompareExchange) \ + _(AtomicsExchange) \ + _(AtomicsLoad) \ + _(AtomicsStore) \ + _(AtomicsAdd) \ + _(AtomicsSub) \ + _(AtomicsAnd) \ + _(AtomicsOr) \ + _(AtomicsXor) \ + _(AtomicsIsLockFree) \ + \ + _(MathAbs) \ + _(MathFloor) \ + _(MathCeil) \ + _(MathRound) \ + _(MathClz32) \ + _(MathSqrt) \ + _(MathATan2) \ + _(MathHypot) \ + _(MathMax) \ + _(MathMin) \ + _(MathPow) \ + _(MathRandom) \ + _(MathImul) \ + _(MathFRound) \ + _(MathSin) \ + _(MathTan) \ + _(MathCos) \ + _(MathExp) \ + _(MathLog) \ + _(MathASin) \ + _(MathATan) \ + _(MathACos) \ + _(MathLog10) \ + _(MathLog2) \ + _(MathLog1P) \ + _(MathExpM1) \ + _(MathSinH) \ + _(MathTanH) \ + _(MathCosH) \ + _(MathASinH) \ + _(MathATanH) \ + _(MathACosH) \ + _(MathSign) \ + _(MathTrunc) \ + _(MathCbrt) \ + \ + _(RegExpMatcher) \ + _(RegExpSearcher) \ + _(RegExpTester) \ + _(IsRegExpObject) \ + _(RegExpPrototypeOptimizable) \ + _(RegExpInstanceOptimizable) \ + _(GetFirstDollarIndex) \ + \ + _(String) \ + _(StringCharCodeAt) \ + _(StringFromCharCode) \ + _(StringFromCodePoint) \ + _(StringCharAt) \ + \ + _(IntrinsicStringReplaceString) \ + _(IntrinsicStringSplitString) \ + \ + _(ObjectCreate) \ + \ + _(SimdInt32x4) \ + _(SimdUint32x4) \ + _(SimdInt16x8) \ + _(SimdUint16x8) \ + _(SimdInt8x16) \ + _(SimdUint8x16) \ + _(SimdFloat32x4) \ + _(SimdBool32x4) \ + _(SimdBool16x8) \ + _(SimdBool8x16) \ + \ + _(TestBailout) \ + _(TestAssertFloat32) \ + _(TestAssertRecoveredOnBailout) \ + \ + _(IntrinsicUnsafeSetReservedSlot) \ + _(IntrinsicUnsafeGetReservedSlot) \ + _(IntrinsicUnsafeGetObjectFromReservedSlot) \ + _(IntrinsicUnsafeGetInt32FromReservedSlot) \ + _(IntrinsicUnsafeGetStringFromReservedSlot) \ + _(IntrinsicUnsafeGetBooleanFromReservedSlot) \ + \ + _(IntrinsicIsCallable) \ + _(IntrinsicIsConstructor) \ + _(IntrinsicToObject) \ + _(IntrinsicIsObject) \ + _(IntrinsicIsWrappedArrayConstructor) \ + _(IntrinsicToInteger) \ + _(IntrinsicToString) \ + _(IntrinsicIsConstructing) \ + _(IntrinsicSubstringKernel) \ + _(IntrinsicDefineDataProperty) \ + _(IntrinsicObjectHasPrototype) \ + \ + _(IntrinsicIsArrayIterator) \ + _(IntrinsicIsMapIterator) \ + _(IntrinsicIsSetIterator) \ + _(IntrinsicIsStringIterator) \ + _(IntrinsicIsListIterator) \ + \ + _(IntrinsicGetNextMapEntryForIterator) \ + \ + _(IntrinsicGetNextSetEntryForIterator) \ + \ + _(IntrinsicArrayBufferByteLength) \ + _(IntrinsicPossiblyWrappedArrayBufferByteLength) \ + \ + _(TypedArrayConstructor) \ + _(IntrinsicIsTypedArray) \ + _(IntrinsicIsPossiblyWrappedTypedArray) \ + _(IntrinsicTypedArrayLength) \ + _(IntrinsicPossiblyWrappedTypedArrayLength) \ + _(IntrinsicSetDisjointTypedElements) \ + \ + _(IntrinsicObjectIsTypedObject) \ + _(IntrinsicObjectIsTransparentTypedObject) \ + _(IntrinsicObjectIsOpaqueTypedObject) \ + _(IntrinsicObjectIsTypeDescr) \ + _(IntrinsicTypeDescrIsSimpleType) \ + _(IntrinsicTypeDescrIsArrayType)\ + _(IntrinsicSetTypedObjectOffset) + +struct JSJitInfo; + +namespace js { +namespace jit { + +enum class InlinableNative : uint16_t { +#define ADD_NATIVE(native) native, + INLINABLE_NATIVE_LIST(ADD_NATIVE) +#undef ADD_NATIVE +}; + +#define ADD_NATIVE(native) extern const JSJitInfo JitInfo_##native; + INLINABLE_NATIVE_LIST(ADD_NATIVE) +#undef ADD_NATIVE + +} // namespace jit +} // namespace js + +#endif /* jit_InlinableNatives_h */ |