diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2009-10-28 19:25:22 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2009-10-28 19:25:22 +0100 |
commit | 50f45d14b475a42d304e7d9872f8d91ff3a013c2 (patch) | |
tree | 2e799be8cbddd016ef8432b4ed755247a466c0ba /deps/v8/src/code-stubs.h | |
parent | 35589528992e8bf5ca70271beaef05a6d82f9dcf (diff) | |
download | node-50f45d14b475a42d304e7d9872f8d91ff3a013c2.tar.gz |
Upgrade v8 to 1.3.17
Diffstat (limited to 'deps/v8/src/code-stubs.h')
-rw-r--r-- | deps/v8/src/code-stubs.h | 67 |
1 files changed, 46 insertions, 21 deletions
diff --git a/deps/v8/src/code-stubs.h b/deps/v8/src/code-stubs.h index 91d951f2f..63461bc0c 100644 --- a/deps/v8/src/code-stubs.h +++ b/deps/v8/src/code-stubs.h @@ -31,32 +31,51 @@ 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 + NoCache, // marker for stubs that do custom caching NUMBER_OF_IDS }; @@ -73,6 +92,12 @@ class CodeStub BASE_EMBEDDED { virtual ~CodeStub() {} + // Override these methods to provide a custom caching mechanism for + // an individual type of code stub. + virtual bool GetCustomCache(Code** code_out) { return false; } + virtual void SetCustomCache(Code* value) { } + virtual bool has_custom_cache() { return false; } + protected: static const int kMajorBits = 5; static const int kMinorBits = kBitsPerInt - kSmiTagSize - kMajorBits; |