| // 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(GetCStackPointer) \ |
| V(JumpToFrame) \ |
| V(RunExceptionHandler) \ |
| 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(AllocateClosure) \ |
| V(AllocateClosureGeneric) \ |
| V(AllocateClosureTA) \ |
| V(AllocateClosureTAGeneric) \ |
| 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(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(TypeIsTopTypeForSubtyping) \ |
| 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(StackOverflowSharedWithFPURegs) \ |
| V(StackOverflowSharedWithoutFPURegs) \ |
| V(DoubleToInteger) \ |
| V(OneArgCheckInlineCacheWithExactnessCheck) \ |
| V(OneArgOptimizedCheckInlineCacheWithExactnessCheck) \ |
| V(EnterSafepoint) \ |
| V(ExitSafepoint) \ |
| V(ExitSafepointIgnoreUnwindInProgress) \ |
| V(CallNativeThroughSafepoint) \ |
| V(FfiCallbackTrampoline) \ |
| V(InitStaticField) \ |
| V(InitLateStaticField) \ |
| V(InitLateFinalStaticField) \ |
| V(InitInstanceField) \ |
| V(InitLateInstanceField) \ |
| V(InitLateFinalInstanceField) \ |
| V(InitSharedLateStaticField) \ |
| V(InitSharedLateFinalStaticField) \ |
| 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(UnknownDartCode) |
| |
| } // namespace dart |
| |
| #endif // RUNTIME_VM_STUB_CODE_LIST_H_ |