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(AllocateContext) \
13 V(AllocateObject) \
14 V(AllocateSubtypeTestCache) \
15 V(BreakpointRuntimeHandler) \
16 V(SingleStepHandler) \
17 V(CloneContext) \
18 V(GetFieldForDispatch) \
19 V(ResolveCallFunction) \
20 V(FixCallersTarget) \
21 V(FixCallersTargetMonomorphic) \
22 V(FixAllocationStubTarget) \
23 V(InlineCacheMissHandlerOneArg) \
24 V(InlineCacheMissHandlerTwoArgs) \
25 V(StaticCallMissHandlerOneArg) \
26 V(StaticCallMissHandlerTwoArgs) \
27 V(InterpretedInstanceCallMissHandler) \
28 V(Instanceof) \
29 V(SubtypeCheck) \
30 V(TypeCheck) \
31 V(NonBoolTypeError) \
32 V(InstantiateType) \
33 V(InstantiateTypeArguments) \
34 V(NoSuchMethodFromCallStub) \
35 V(NoSuchMethodFromPrologue) \
36 V(InvokeNoSuchMethod) \
37 V(OptimizeInvokedFunction) \
38 V(TraceICCall) \
39 V(PatchStaticCall) \
40 V(RangeError) \
41 V(NullError) \
42 V(NullErrorWithSelector) \
43 V(NullCastError) \
44 V(ArgumentNullError) \
45 V(ArgumentError) \
46 V(ArgumentErrorUnboxedInt64) \
47 V(IntegerDivisionByZeroException) \
48 V(ReThrow) \
49 V(StackOverflow) \
50 V(AllocateMint) \
51 V(Throw) \
52 V(DeoptimizeMaterialize) \
53 V(RewindPostDeopt) \
54 V(UpdateFieldCid) \
55 V(InitInstanceField) \
56 V(InitStaticField) \
57 V(LateInitializationError) \
58 V(CompileFunction) \
59 V(CompileInterpretedFunction) \
60 V(SwitchableCallMiss) \
61 V(NotLoaded)
62
63// Note: Leaf runtime function have C linkage, so they cannot pass C++ struct
64// values like ObjectPtr.
65
66#define LEAF_RUNTIME_ENTRY_LIST(V) \
67 V(intptr_t, DeoptimizeCopyFrame, uword, uword) \
68 V(void, DeoptimizeFillFrame, uword) \
69 V(void, StoreBufferBlockProcess, Thread*) \
70 V(void, MarkingStackBlockProcess, Thread*) \
71 V(void, RememberCard, uword /*ObjectPtr*/, ObjectPtr*) \
72 V(uword /*ObjectPtr*/, EnsureRememberedAndMarkingDeferred, \
73 uword /*ObjectPtr*/ object, Thread* thread) \
74 V(double, LibcPow, double, double) \
75 V(double, DartModulo, double, double) \
76 V(double, LibcFloor, double) \
77 V(double, LibcCeil, double) \
78 V(double, LibcTrunc, double) \
79 V(double, LibcRound, double) \
80 V(double, LibcCos, double) \
81 V(double, LibcSin, double) \
82 V(double, LibcTan, double) \
83 V(double, LibcAcos, double) \
84 V(double, LibcAsin, double) \
85 V(double, LibcAtan, double) \
86 V(double, LibcAtan2, double, double) \
87 V(uword /*BoolPtr*/, CaseInsensitiveCompareUCS2, uword /*StringPtr*/, \
88 uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
89 V(uword /*BoolPtr*/, CaseInsensitiveCompareUTF16, uword /*StringPtr*/, \
90 uword /*SmiPtr*/, uword /*SmiPtr*/, uword /*SmiPtr*/) \
91 V(void, EnterSafepoint) \
92 V(void, ExitSafepoint) \
93 V(ApiLocalScope*, EnterHandleScope, Thread*) \
94 V(void, ExitHandleScope, Thread*) \
95 V(LocalHandle*, AllocateHandle, ApiLocalScope*)
96
97} // namespace dart
98
99#endif // RUNTIME_VM_RUNTIME_ENTRY_LIST_H_
100