Index: src/code-stubs.h |
=================================================================== |
--- src/code-stubs.h (revision 3119) |
+++ src/code-stubs.h (working copy) |
@@ -31,32 +31,50 @@ |
namespace v8 { |
namespace internal { |
+// List of code stubs used on all platforms. The order in this list is important |
+// as only the stubs up to and including RecordWrite allows nested stub calls. |
+#define CODE_STUB_LIST_ALL(V) \ |
+ V(CallFunction) \ |
+ V(GenericBinaryOp) \ |
+ V(SmiOp) \ |
+ V(Compare) \ |
+ V(RecordWrite) \ |
+ V(ConvertToDouble) \ |
+ V(WriteInt32ToHeapNumber) \ |
+ V(StackCheck) \ |
+ V(UnarySub) \ |
+ V(RevertToNumber) \ |
+ V(ToBoolean) \ |
+ V(Instanceof) \ |
+ V(CounterOp) \ |
+ V(ArgumentsAccess) \ |
+ V(Runtime) \ |
+ V(CEntry) \ |
+ V(JSEntry) |
+// List of code stubs only used on ARM platforms. |
+#ifdef V8_TARGET_ARCH_ARM |
+#define CODE_STUB_LIST_ARM(V) \ |
+ V(GetProperty) \ |
+ V(SetProperty) \ |
+ V(InvokeBuiltin) \ |
+ V(RegExpCEntry) |
+#else |
+#define CODE_STUB_LIST_ARM(V) |
+#endif |
+ |
+// Combined list of code stubs. |
+#define CODE_STUB_LIST(V) \ |
+ CODE_STUB_LIST_ALL(V) \ |
+ CODE_STUB_LIST_ARM(V) |
+ |
// Stub is base classes of all stubs. |
class CodeStub BASE_EMBEDDED { |
public: |
enum Major { |
- CallFunction, |
- GenericBinaryOp, |
- SmiOp, |
- Compare, |
- RecordWrite, // Last stub that allows stub calls inside. |
- ConvertToDouble, |
- WriteInt32ToHeapNumber, |
- StackCheck, |
- UnarySub, |
- RevertToNumber, |
- ToBoolean, |
- Instanceof, |
- CounterOp, |
- ArgumentsAccess, |
- Runtime, |
- CEntry, |
- JSEntry, |
- GetProperty, // ARM only |
- SetProperty, // ARM only |
- InvokeBuiltin, // ARM only |
- RegExpCEntry, // ARM only |
+#define DEF_ENUM(name) name, |
+ CODE_STUB_LIST(DEF_ENUM) |
+#undef DEF_ENUM |
NUMBER_OF_IDS |
}; |