| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| #ifndef RUNTIME_VM_STUB_CODE_LIST_H_ | |
| #define RUNTIME_VM_STUB_CODE_LIST_H_ | |
| namespace dart { | |
| #define VM_TYPE_TESTING_STUB_CODE_LIST(V) \ | |
| V(DefaultTypeTest) \ | |
| V(DefaultNullableTypeTest) \ | |
| V(TopTypeTypeTest) \ | |
| V(UnreachableTypeTest) \ | |
| V(TypeParameterTypeTest) \ | |
| V(NullableTypeParameterTypeTest) \ | |
| V(SlowTypeTest) \ | |
| V(LazySpecializeTypeTest) \ | |
| V(LazySpecializeNullableTypeTest) | |
| #if (defined(DART_TARGET_OS_LINUX) || defined(DART_TARGET_OS_ANDROID)) && \ | |
| (defined(TARGET_ARCH_X64) || defined(TARGET_ARCH_ARM64)) | |
| // Currently we support probe points only Linux and Android (X64 and ARM64). | |
| #define DART_TARGET_SUPPORTS_PROBE_POINTS 1 | |
| #endif | |
| #define PROBE_POINT_STUBS_LIST(V) V(AllocationProbePoint) | |
| // List of stubs created in the VM isolate, these stubs are shared by different | |
| // isolates running in this dart process. | |
| #define VM_STUB_CODE_LIST(V) \ | |
| V(JumpToFrame) \ | |
| V(RunExceptionHandler) \ | |
| V(RunExceptionHandlerUnbox) \ | |
| V(DeoptForRewind) \ | |
| V(WriteBarrier) \ | |
| V(WriteBarrierWrappers) \ | |
| V(ArrayWriteBarrier) \ | |
| PROBE_POINT_STUBS_LIST(V) \ | |
| V(AllocateArray) \ | |
| V(AllocateMint) \ | |
| V(AllocateDouble) \ | |
| V(AllocateFloat32x4) \ | |
| V(AllocateFloat64x2) \ | |
| V(AllocateInt32x4) \ | |
| V(AllocateInt8Array) \ | |
| V(AllocateUint8Array) \ | |
| V(AllocateUint8ClampedArray) \ | |
| V(AllocateInt16Array) \ | |
| V(AllocateUint16Array) \ | |
| V(AllocateInt32Array) \ | |
| V(AllocateUint32Array) \ | |
| V(AllocateInt64Array) \ | |
| V(AllocateUint64Array) \ | |
| V(AllocateFloat32Array) \ | |
| V(AllocateFloat64Array) \ | |
| V(AllocateFloat32x4Array) \ | |
| V(AllocateInt32x4Array) \ | |
| V(AllocateFloat64x2Array) \ | |
| V(AllocateMintSharedWithFPURegs) \ | |
| V(AllocateMintSharedWithoutFPURegs) \ | |
| V(AllocateClosure1) \ | |
| V(AllocateClosure2) \ | |
| V(AllocateClosure3) \ | |
| V(AllocateClosure4) \ | |
| V(AllocateContext) \ | |
| V(AllocateGrowableArray) \ | |
| V(AllocateObject) \ | |
| V(AllocateObjectParameterized) \ | |
| V(AllocateObjectSlow) \ | |
| V(AllocateRecord) \ | |
| V(AllocateRecord2) \ | |
| V(AllocateRecord2Named) \ | |
| V(AllocateRecord3) \ | |
| V(AllocateRecord3Named) \ | |
| V(AllocateUnhandledException) \ | |
| V(BoxDouble) \ | |
| V(BoxFloat32x4) \ | |
| V(BoxFloat64x2) \ | |
| V(BoxInt32x4) \ | |
| V(CloneContext) \ | |
| V(CallToRuntime) \ | |
| V(LazyCompile) \ | |
| V(InterpretCall) \ | |
| V(ResumeInterpreter) \ | |
| V(CallBootstrapNative) \ | |
| V(CallNoScopeNative) \ | |
| V(CallAutoScopeNative) \ | |
| V(FixCallersTarget) \ | |
| V(CallStaticFunction) \ | |
| V(OptimizeFunction) \ | |
| V(InvokeDartCode) \ | |
| V(InvokeDartCodeFromBytecode) \ | |
| V(DebugStepCheck) \ | |
| V(SwitchableCallMiss) \ | |
| V(MonomorphicSmiableCheck) \ | |
| V(SingleTargetCall) \ | |
| V(ICCallThroughCode) \ | |
| V(MegamorphicCall) \ | |
| V(FixAllocationStubTarget) \ | |
| V(FixParameterizedAllocationStubTarget) \ | |
| V(Deoptimize) \ | |
| V(DeoptimizeLazyFromReturn) \ | |
| V(DeoptimizeLazyFromThrow) \ | |
| V(UnoptimizedIdenticalWithNumberCheck) \ | |
| V(OptimizedIdenticalWithNumberCheck) \ | |
| V(ICCallBreakpoint) \ | |
| V(UnoptStaticCallBreakpoint) \ | |
| V(RuntimeCallBreakpoint) \ | |
| V(OneArgCheckInlineCache) \ | |
| V(TwoArgsCheckInlineCache) \ | |
| V(SmiAddInlineCache) \ | |
| V(SmiLessInlineCache) \ | |
| V(SmiEqualInlineCache) \ | |
| V(OneArgOptimizedCheckInlineCache) \ | |
| V(TwoArgsOptimizedCheckInlineCache) \ | |
| V(ZeroArgsUnoptimizedStaticCall) \ | |
| V(OneArgUnoptimizedStaticCall) \ | |
| V(TwoArgsUnoptimizedStaticCall) \ | |
| V(AssertSubtype) \ | |
| V(AssertAssignable) \ | |
| V(IsTopType) \ | |
| V(NullIsAssignableToType) \ | |
| V(Subtype1TestCache) \ | |
| V(Subtype2TestCache) \ | |
| V(Subtype3TestCache) \ | |
| V(Subtype4TestCache) \ | |
| V(Subtype6TestCache) \ | |
| V(Subtype7TestCache) \ | |
| VM_TYPE_TESTING_STUB_CODE_LIST(V) \ | |
| V(CallClosureNoSuchMethod) \ | |
| V(FrameAwaitingMaterialization) \ | |
| V(AsynchronousGapMarker) \ | |
| V(NotLoaded) \ | |
| V(DispatchTableNullError) \ | |
| V(LateInitializationErrorSharedWithFPURegs) \ | |
| V(LateInitializationErrorSharedWithoutFPURegs) \ | |
| V(NullErrorSharedWithFPURegs) \ | |
| V(NullErrorSharedWithoutFPURegs) \ | |
| V(NullArgErrorSharedWithFPURegs) \ | |
| V(NullArgErrorSharedWithoutFPURegs) \ | |
| V(NullCastErrorSharedWithFPURegs) \ | |
| V(NullCastErrorSharedWithoutFPURegs) \ | |
| V(RangeErrorSharedWithFPURegs) \ | |
| V(RangeErrorSharedWithoutFPURegs) \ | |
| V(WriteErrorSharedWithFPURegs) \ | |
| V(WriteErrorSharedWithoutFPURegs) \ | |
| V(FieldAccessErrorSharedWithFPURegs) \ | |
| V(FieldAccessErrorSharedWithoutFPURegs) \ | |
| V(StackOverflowSharedWithFPURegs) \ | |
| V(StackOverflowSharedWithoutFPURegs) \ | |
| V(DoubleToInteger) \ | |
| V(OneArgCheckInlineCacheWithExactnessCheck) \ | |
| V(OneArgOptimizedCheckInlineCacheWithExactnessCheck) \ | |
| V(EnterSafepoint) \ | |
| V(ExitSafepoint) \ | |
| V(CallNativeThroughSafepoint) \ | |
| V(FfiCallTrampoline) \ | |
| V(FfiCallbackTrampoline) \ | |
| V(InterpretedFfiCallbackTrampoline) \ | |
| V(InitStaticField) \ | |
| V(InitLateStaticField) \ | |
| V(InitLateFinalStaticField) \ | |
| V(InitInstanceField) \ | |
| V(InitLateInstanceField) \ | |
| V(InitLateFinalInstanceField) \ | |
| V(InitSharedLateStaticField) \ | |
| V(Throw) \ | |
| V(ReThrow) \ | |
| V(InstanceOf) \ | |
| V(InstantiateType) \ | |
| V(InstantiateTypeNonNullableClassTypeParameter) \ | |
| V(InstantiateTypeNullableClassTypeParameter) \ | |
| V(InstantiateTypeNonNullableFunctionTypeParameter) \ | |
| V(InstantiateTypeNullableFunctionTypeParameter) \ | |
| V(InstantiateTypeArguments) \ | |
| V(InstantiateTypeArgumentsMayShareInstantiatorTA) \ | |
| V(InstantiateTypeArgumentsMayShareFunctionTA) \ | |
| V(NoSuchMethodDispatcher) \ | |
| V(Await) \ | |
| V(AwaitWithTypeCheck) \ | |
| V(InitAsync) \ | |
| V(Resume) \ | |
| V(ReturnAsync) \ | |
| V(ReturnAsyncNotFuture) \ | |
| V(InitAsyncStar) \ | |
| V(YieldAsyncStar) \ | |
| V(ReturnAsyncStar) \ | |
| V(InitSyncStar) \ | |
| V(SuspendSyncStarAtStart) \ | |
| V(SuspendSyncStarAtYield) \ | |
| V(AsyncExceptionHandler) \ | |
| V(CloneSuspendState) \ | |
| V(FfiAsyncCallbackSend) \ | |
| V(CheckIsolateFieldAccess) \ | |
| V(CheckedStoreIntoShared) \ | |
| V(EnsureDeeplyImmutable) \ | |
| V(DynamicInvocationForwarder) \ | |
| V(UnknownDartCode) | |
| } // namespace dart | |
| #endif // RUNTIME_VM_STUB_CODE_LIST_H_ |