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 | |
8 | namespace 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 | |