Flutter Engine
The Flutter Engine
runtime_entry_list.h
Go to the documentation of this file.
1// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#ifndef RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
6#define RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
7
8namespace dart {
9
10#define RUNTIME_ENTRY_LIST(V) \
11 V(AllocateArray) \
12 V(AllocateMint) \
13 V(AllocateDouble) \
14 V(AllocateFloat32x4) \
15 V(AllocateFloat64x2) \
16 V(AllocateInt32x4) \
17 V(AllocateTypedData) \
18 V(AllocateClosure) \
19 V(AllocateContext) \
20 V(AllocateObject) \
21 V(AllocateRecord) \
22 V(AllocateSmallRecord) \
23 V(AllocateSuspendState) \
24 V(BoxDouble) \
25 V(BoxFloat32x4) \
26 V(BoxFloat64x2) \
27 V(BreakpointRuntimeHandler) \
28 V(SingleStepHandler) \
29 V(CloneContext) \
30 V(CloneSuspendState) \
31 V(DoubleToInteger) \
32 V(FixCallersTarget) \
33 V(FixCallersTargetMonomorphic) \
34 V(FixAllocationStubTarget) \
35 V(InlineCacheMissHandlerOneArg) \
36 V(InlineCacheMissHandlerTwoArgs) \
37 V(StaticCallMissHandlerOneArg) \
38 V(StaticCallMissHandlerTwoArgs) \
39 V(Instanceof) \
40 V(SubtypeCheck) \
41 V(TypeCheck) \
42 V(NonBoolTypeError) \
43 V(InstantiateType) \
44 V(InstantiateTypeArguments) \
45 V(NoSuchMethodFromCallStub) \
46 V(NoSuchMethodFromPrologue) \
47 V(OptimizeInvokedFunction) \
48 V(TraceICCall) \
49 V(PatchStaticCall) \
50 V(RangeError) \
51 V(RangeErrorUnboxedInt64) \
52 V(WriteError) \
53 V(NullError) \
54 V(NullErrorWithSelector) \
55 V(NullCastError) \
56 V(ArgumentNullError) \
57 V(DispatchTableNullError) \
58 V(ArgumentError) \
59 V(ArgumentErrorUnboxedInt64) \
60 V(IntegerDivisionByZeroException) \
61 V(ReThrow) \
62 V(InterruptOrStackOverflow) \
63 V(Throw) \
64 V(DeoptimizeMaterialize) \
65 V(RewindPostDeopt) \
66 V(UpdateFieldCid) \
67 V(InitInstanceField) \
68 V(InitStaticField) \
69 V(LateFieldAssignedDuringInitializationError) \
70 V(LateFieldNotInitializedError) \
71 V(CompileFunction) \
72 V(ResumeFrame) \
73 V(SwitchableCallMiss) \
74 V(NotLoaded) \
75 V(FfiAsyncCallbackSend)
76
77// Note: Leaf runtime function have C linkage, so they cannot pass C++ struct
78// values like ObjectPtr.
79
80#define LEAF_RUNTIME_ENTRY_LIST(V) \
81 V(intptr_t, DeoptimizeCopyFrame, uword, uword) \
82 V(void, DeoptimizeFillFrame, uword) \
83 V(void, StoreBufferBlockProcess, Thread*) \
84 V(void, OldMarkingStackBlockProcess, Thread*) \
85 V(void, NewMarkingStackBlockProcess, Thread*) \
86 V(void, RememberCard, uword /*ObjectPtr*/, ObjectPtr*) \
87 V(uword /*ObjectPtr*/, EnsureRememberedAndMarkingDeferred, \
88 uword /*ObjectPtr*/ object, Thread* thread) \
89 V(double, LibcPow, double, double) \
90 V(double, DartModulo, double, double) \
91 V(double, LibcFmod, double, double) \
92 V(double, LibcFloor, double) \
93 V(double, LibcCeil, double) \
94 V(double, LibcTrunc, double) \
95 V(double, LibcRound, double) \
96 V(double, LibcCos, double) \
97 V(double, LibcSin, double) \
98 V(double, LibcTan, double) \
99 V(double, LibcAcos, double) \
100 V(double, LibcAsin, double) \
101 V(double, LibcAtan, double) \
102 V(double, LibcAtan2, double, double) \
103 V(double, LibcExp, double) \
104 V(double, LibcLog, double) \
105 V(uword /*BoolPtr*/, CaseInsensitiveCompareUCS2, uword /*StringPtr*/, \
106 uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
107 V(uword /*BoolPtr*/, CaseInsensitiveCompareUTF16, uword /*StringPtr*/, \
108 uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
109 V(void, EnterSafepoint) \
110 V(void, ExitSafepoint) \
111 V(void, ExitSafepointIgnoreUnwindInProgress) \
112 V(ApiLocalScope*, EnterHandleScope, Thread*) \
113 V(void, ExitHandleScope, Thread*) \
114 V(LocalHandle*, AllocateHandle, ApiLocalScope*) \
115 V(void, PropagateError, Dart_Handle) \
116 V(void, MsanUnpoison, void*, size_t) \
117 V(void, MsanUnpoisonParam, size_t) \
118 V(void, TsanLoadAcquire, void*) \
119 V(void, TsanStoreRelease, void*) \
120 V(bool, TryDoubleAsInteger, Thread*) \
121 V(void*, MemoryMove, void*, const void*, size_t)
122
123} // namespace dart
124
125#endif // RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
Definition: dart_vm.cc:33