Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: src/builtins.h

Issue 6894003: Better support for 'polymorphic' JS and external arrays (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: final review feedback Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm/stub-cache-arm.cc ('k') | src/builtins.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution. 11 // with the distribution.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 V(HandleApiCallAsFunction, NO_EXTRA_ARGUMENTS) \ 60 V(HandleApiCallAsFunction, NO_EXTRA_ARGUMENTS) \
61 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \ 61 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \
62 \ 62 \
63 V(StrictArgumentsCallee, NO_EXTRA_ARGUMENTS) \ 63 V(StrictArgumentsCallee, NO_EXTRA_ARGUMENTS) \
64 V(StrictArgumentsCaller, NO_EXTRA_ARGUMENTS) \ 64 V(StrictArgumentsCaller, NO_EXTRA_ARGUMENTS) \
65 V(StrictFunctionCaller, NO_EXTRA_ARGUMENTS) \ 65 V(StrictFunctionCaller, NO_EXTRA_ARGUMENTS) \
66 V(StrictFunctionArguments, NO_EXTRA_ARGUMENTS) 66 V(StrictFunctionArguments, NO_EXTRA_ARGUMENTS)
67 67
68 68
69 // Define list of builtins implemented in assembly. 69 // Define list of builtins implemented in assembly.
70 #define BUILTIN_LIST_A(V) \ 70 #define BUILTIN_LIST_A(V) \
71 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \ 71 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \
72 Code::kNoExtraICState) \ 72 Code::kNoExtraICState) \
73 V(JSConstructCall, BUILTIN, UNINITIALIZED, \ 73 V(JSConstructCall, BUILTIN, UNINITIALIZED, \
74 Code::kNoExtraICState) \ 74 Code::kNoExtraICState) \
75 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \ 75 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \
76 Code::kNoExtraICState) \ 76 Code::kNoExtraICState) \
77 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \ 77 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \
78 Code::kNoExtraICState) \ 78 Code::kNoExtraICState) \
79 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \ 79 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \
80 Code::kNoExtraICState) \ 80 Code::kNoExtraICState) \
81 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \ 81 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \
82 Code::kNoExtraICState) \ 82 Code::kNoExtraICState) \
83 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \ 83 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \
84 Code::kNoExtraICState) \ 84 Code::kNoExtraICState) \
85 V(LazyCompile, BUILTIN, UNINITIALIZED, \ 85 V(LazyCompile, BUILTIN, UNINITIALIZED, \
86 Code::kNoExtraICState) \ 86 Code::kNoExtraICState) \
87 V(LazyRecompile, BUILTIN, UNINITIALIZED, \ 87 V(LazyRecompile, BUILTIN, UNINITIALIZED, \
88 Code::kNoExtraICState) \ 88 Code::kNoExtraICState) \
89 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \ 89 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \
90 Code::kNoExtraICState) \ 90 Code::kNoExtraICState) \
91 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \ 91 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \
92 Code::kNoExtraICState) \ 92 Code::kNoExtraICState) \
93 V(NotifyOSR, BUILTIN, UNINITIALIZED, \ 93 V(NotifyOSR, BUILTIN, UNINITIALIZED, \
94 Code::kNoExtraICState) \ 94 Code::kNoExtraICState) \
95 \ 95 \
96 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \ 96 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \
97 Code::kNoExtraICState) \ 97 Code::kNoExtraICState) \
98 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \ 98 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \
99 Code::kNoExtraICState) \ 99 Code::kNoExtraICState) \
100 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \ 100 V(KeyedLoadIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
101 Code::kNoExtraICState) \ 101 Code::kNoExtraICState) \
102 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \ 102 V(KeyedLoadIC_Slow, BUILTIN, UNINITIALIZED, \
103 Code::kNoExtraICState) \ 103 Code::kNoExtraICState) \
104 \ 104 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \
105 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \ 105 Code::kNoExtraICState) \
106 Code::kNoExtraICState) \ 106 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \
107 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \ 107 Code::kNoExtraICState) \
108 Code::kNoExtraICState) \ 108 V(KeyedStoreIC_MissForceGeneric, BUILTIN, UNINITIALIZED, \
109 V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \ 109 Code::kNoExtraICState) \
110 Code::kNoExtraICState) \ 110 V(KeyedStoreIC_Slow, BUILTIN, UNINITIALIZED, \
111 V(LoadIC_ArrayLength, LOAD_IC, MONOMORPHIC, \ 111 Code::kNoExtraICState) \
112 Code::kNoExtraICState) \ 112 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \
113 V(LoadIC_StringLength, LOAD_IC, MONOMORPHIC, \ 113 Code::kNoExtraICState) \
114 Code::kNoExtraICState) \ 114 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \
115 V(LoadIC_StringWrapperLength, LOAD_IC, MONOMORPHIC, \ 115 Code::kNoExtraICState) \
116 Code::kNoExtraICState) \ 116 V(LoadIC_Normal, LOAD_IC, MONOMORPHIC, \
117 V(LoadIC_FunctionPrototype, LOAD_IC, MONOMORPHIC, \ 117 Code::kNoExtraICState) \
118 Code::kNoExtraICState) \ 118 V(LoadIC_ArrayLength, LOAD_IC, MONOMORPHIC, \
119 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \ 119 Code::kNoExtraICState) \
120 Code::kNoExtraICState) \ 120 V(LoadIC_StringLength, LOAD_IC, MONOMORPHIC, \
121 \ 121 Code::kNoExtraICState) \
122 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \ 122 V(LoadIC_StringWrapperLength, LOAD_IC, MONOMORPHIC, \
123 Code::kNoExtraICState) \ 123 Code::kNoExtraICState) \
124 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \ 124 V(LoadIC_FunctionPrototype, LOAD_IC, MONOMORPHIC, \
125 Code::kNoExtraICState) \ 125 Code::kNoExtraICState) \
126 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, MEGAMORPHIC, \ 126 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \
127 Code::kNoExtraICState) \ 127 Code::kNoExtraICState) \
128 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \ 128 \
129 Code::kNoExtraICState) \ 129 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \
130 V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MEGAMORPHIC, \ 130 Code::kNoExtraICState) \
131 Code::kNoExtraICState) \ 131 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \
132 \ 132 Code::kNoExtraICState) \
133 V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \ 133 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, MEGAMORPHIC, \
134 Code::kNoExtraICState) \ 134 Code::kNoExtraICState) \
135 V(StoreIC_ArrayLength, STORE_IC, MONOMORPHIC, \ 135 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \
136 Code::kNoExtraICState) \ 136 Code::kNoExtraICState) \
137 V(StoreIC_Normal, STORE_IC, MONOMORPHIC, \ 137 V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MEGAMORPHIC, \
138 Code::kNoExtraICState) \ 138 Code::kNoExtraICState) \
139 V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \ 139 \
140 Code::kNoExtraICState) \ 140 V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \
141 V(StoreIC_GlobalProxy, STORE_IC, MEGAMORPHIC, \ 141 Code::kNoExtraICState) \
142 Code::kNoExtraICState) \ 142 V(StoreIC_ArrayLength, STORE_IC, MONOMORPHIC, \
143 V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \ 143 Code::kNoExtraICState) \
144 kStrictMode) \ 144 V(StoreIC_Normal, STORE_IC, MONOMORPHIC, \
145 V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \ 145 Code::kNoExtraICState) \
146 kStrictMode) \ 146 V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \
147 V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \ 147 Code::kNoExtraICState) \
148 kStrictMode) \ 148 V(StoreIC_GlobalProxy, STORE_IC, MEGAMORPHIC, \
149 V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \ 149 Code::kNoExtraICState) \
150 kStrictMode) \ 150 V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \
151 V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \ 151 kStrictMode) \
152 kStrictMode) \ 152 V(StoreIC_ArrayLength_Strict, STORE_IC, MONOMORPHIC, \
153 \ 153 kStrictMode) \
154 V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \ 154 V(StoreIC_Normal_Strict, STORE_IC, MONOMORPHIC, \
155 Code::kNoExtraICState) \ 155 kStrictMode) \
156 V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \ 156 V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
157 Code::kNoExtraICState) \ 157 kStrictMode) \
158 \ 158 V(StoreIC_GlobalProxy_Strict, STORE_IC, MEGAMORPHIC, \
159 V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \ 159 kStrictMode) \
160 kStrictMode) \ 160 \
161 V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \ 161 V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
162 kStrictMode) \ 162 Code::kNoExtraICState) \
163 \ 163 V(KeyedStoreIC_Generic, KEYED_STORE_IC, MEGAMORPHIC, \
164 /* Uses KeyedLoadIC_Initialize; must be after in list. */ \ 164 Code::kNoExtraICState) \
165 V(FunctionCall, BUILTIN, UNINITIALIZED, \ 165 \
166 Code::kNoExtraICState) \ 166 V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \
167 V(FunctionApply, BUILTIN, UNINITIALIZED, \ 167 kStrictMode) \
168 Code::kNoExtraICState) \ 168 V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, MEGAMORPHIC, \
169 \ 169 kStrictMode) \
170 V(ArrayCode, BUILTIN, UNINITIALIZED, \ 170 \
171 Code::kNoExtraICState) \ 171 /* Uses KeyedLoadIC_Initialize; must be after in list. */ \
172 V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \ 172 V(FunctionCall, BUILTIN, UNINITIALIZED, \
173 Code::kNoExtraICState) \ 173 Code::kNoExtraICState) \
174 \ 174 V(FunctionApply, BUILTIN, UNINITIALIZED, \
175 V(StringConstructCode, BUILTIN, UNINITIALIZED, \ 175 Code::kNoExtraICState) \
176 Code::kNoExtraICState) \ 176 \
177 \ 177 V(ArrayCode, BUILTIN, UNINITIALIZED, \
178 V(OnStackReplacement, BUILTIN, UNINITIALIZED, \ 178 Code::kNoExtraICState) \
179 V(ArrayConstructCode, BUILTIN, UNINITIALIZED, \
180 Code::kNoExtraICState) \
181 \
182 V(StringConstructCode, BUILTIN, UNINITIALIZED, \
183 Code::kNoExtraICState) \
184 \
185 V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
179 Code::kNoExtraICState) 186 Code::kNoExtraICState)
180 187
181 188
182 #ifdef ENABLE_DEBUGGER_SUPPORT 189 #ifdef ENABLE_DEBUGGER_SUPPORT
183 // Define list of builtins used by the debugger implemented in assembly. 190 // Define list of builtins used by the debugger implemented in assembly.
184 #define BUILTIN_LIST_DEBUG_A(V) \ 191 #define BUILTIN_LIST_DEBUG_A(V) \
185 V(Return_DebugBreak, BUILTIN, DEBUG_BREAK, \ 192 V(Return_DebugBreak, BUILTIN, DEBUG_BREAK, \
186 Code::kNoExtraICState) \ 193 Code::kNoExtraICState) \
187 V(ConstructCall_DebugBreak, BUILTIN, DEBUG_BREAK, \ 194 V(ConstructCall_DebugBreak, BUILTIN, DEBUG_BREAK, \
188 Code::kNoExtraICState) \ 195 Code::kNoExtraICState) \
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 367
361 friend class BuiltinFunctionTable; 368 friend class BuiltinFunctionTable;
362 friend class Isolate; 369 friend class Isolate;
363 370
364 DISALLOW_COPY_AND_ASSIGN(Builtins); 371 DISALLOW_COPY_AND_ASSIGN(Builtins);
365 }; 372 };
366 373
367 } } // namespace v8::internal 374 } } // namespace v8::internal
368 375
369 #endif // V8_BUILTINS_H_ 376 #endif // V8_BUILTINS_H_
OLDNEW
« no previous file with comments | « src/arm/stub-cache-arm.cc ('k') | src/builtins.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698