Files
sdk/runtime/vm/runtime_entry_list.h
T
Florian Schneider bac82e2592 VM: New calling convention for generated code.
Instead of calling code object directly, call indirectly and
pass the code object in a register. The object pool is then loaded from
the code object. This is another preparation step for making generated code
relocatable.

All non-ia32 platforms:
No entry patching.

ARM:
PC marker (now code object) moves to the same place as on x64 (below saved PP, above saved FP).
R9 is now used as PP, R10 as CODE_REG.

BUG=
R=koda@google.com, rmacnak@google.com

Committed: https://github.com/dart-lang/sdk/commit/1d343e5a7b75168fb6c9f86b64c55173cdbdc9b2

Review URL: https://codereview.chromium.org//1192103004 .
2015-09-19 13:21:09 +02:00

67 lines
4.5 KiB
C++

// Copyright (c) 2011, 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 VM_RUNTIME_ENTRY_LIST_H_
#define VM_RUNTIME_ENTRY_LIST_H_
namespace dart {
#define RUNTIME_ENTRY_LIST(V) \
V(AllocateArray) \
V(AllocateContext) \
V(AllocateObject) \
V(BreakpointRuntimeHandler) \
V(SingleStepHandler) \
V(CloneContext) \
V(FixCallersTarget) \
V(FixAllocationStubTarget) \
V(InlineCacheMissHandlerOneArg) \
V(InlineCacheMissHandlerTwoArgs) \
V(InlineCacheMissHandlerThreeArgs) \
V(StaticCallMissHandlerOneArg) \
V(StaticCallMissHandlerTwoArgs) \
V(Instanceof) \
V(TypeCheck) \
V(BadTypeError) \
V(NonBoolTypeError) \
V(InstantiateType) \
V(InstantiateTypeArguments) \
V(InvokeClosureNoSuchMethod) \
V(InvokeNoSuchMethodDispatcher) \
V(MegamorphicCacheMissHandler) \
V(OptimizeInvokedFunction) \
V(TraceICCall) \
V(PatchStaticCall) \
V(ReThrow) \
V(StackOverflow) \
V(Throw) \
V(TraceFunctionEntry) \
V(TraceFunctionExit) \
V(DeoptimizeMaterialize) \
V(UpdateFieldCid) \
V(InitStaticField) \
V(GrowRegExpStack) \
V(CompileFunction) \
#define LEAF_RUNTIME_ENTRY_LIST(V) \
V(void, PrintStopMessage, const char*) \
V(intptr_t, DeoptimizeCopyFrame, uword, uword) \
V(void, DeoptimizeFillFrame, uword) \
V(void, StoreBufferBlockProcess, Thread*) \
V(intptr_t, BigintCompare, RawBigint*, RawBigint*) \
V(double, LibcPow, double, double) \
V(double, DartModulo, double, double) \
V(double, LibcFloor, double) \
V(double, LibcCeil, double) \
V(double, LibcTrunc, double) \
V(double, LibcRound, double) \
V(double, LibcCos, double) \
V(double, LibcSin, double) \
V(RawBool*, CaseInsensitiveCompareUC16, \
RawString*, RawSmi*, RawSmi*, RawSmi*) \
} // namespace dart
#endif // VM_RUNTIME_ENTRY_LIST_H_