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

Side by Side Diff: src/builtins.h

Issue 91803003: Move responsibility for definition of ExtraICState bits into the ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: A couple more nits. Created 7 years 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 2011 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
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V) 51 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
52 52
53 #define CODE_AGE_LIST_COMPLETE(V) \ 53 #define CODE_AGE_LIST_COMPLETE(V) \
54 V(NotExecuted) \ 54 V(NotExecuted) \
55 V(ExecutedOnce) \ 55 V(ExecutedOnce) \
56 V(NoAge) \ 56 V(NoAge) \
57 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V) 57 CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
58 58
59 #define DECLARE_CODE_AGE_BUILTIN(C, V) \ 59 #define DECLARE_CODE_AGE_BUILTIN(C, V) \
60 V(Make##C##CodeYoungAgainOddMarking, BUILTIN, \ 60 V(Make##C##CodeYoungAgainOddMarking, BUILTIN, \
61 UNINITIALIZED, Code::kNoExtraICState) \ 61 UNINITIALIZED, kNoExtraICState) \
62 V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, \ 62 V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, \
63 UNINITIALIZED, Code::kNoExtraICState) 63 UNINITIALIZED, kNoExtraICState)
64 64
65 65
66 // Define list of builtins implemented in C++. 66 // Define list of builtins implemented in C++.
67 #define BUILTIN_LIST_C(V) \ 67 #define BUILTIN_LIST_C(V) \
68 V(Illegal, NO_EXTRA_ARGUMENTS) \ 68 V(Illegal, NO_EXTRA_ARGUMENTS) \
69 \ 69 \
70 V(EmptyFunction, NO_EXTRA_ARGUMENTS) \ 70 V(EmptyFunction, NO_EXTRA_ARGUMENTS) \
71 \ 71 \
72 V(ArrayPush, NO_EXTRA_ARGUMENTS) \ 72 V(ArrayPush, NO_EXTRA_ARGUMENTS) \
73 V(ArrayPop, NO_EXTRA_ARGUMENTS) \ 73 V(ArrayPop, NO_EXTRA_ARGUMENTS) \
74 V(ArrayShift, NO_EXTRA_ARGUMENTS) \ 74 V(ArrayShift, NO_EXTRA_ARGUMENTS) \
75 V(ArrayUnshift, NO_EXTRA_ARGUMENTS) \ 75 V(ArrayUnshift, NO_EXTRA_ARGUMENTS) \
76 V(ArraySlice, NO_EXTRA_ARGUMENTS) \ 76 V(ArraySlice, NO_EXTRA_ARGUMENTS) \
77 V(ArraySplice, NO_EXTRA_ARGUMENTS) \ 77 V(ArraySplice, NO_EXTRA_ARGUMENTS) \
78 V(ArrayConcat, NO_EXTRA_ARGUMENTS) \ 78 V(ArrayConcat, NO_EXTRA_ARGUMENTS) \
79 \ 79 \
80 V(HandleApiCall, NEEDS_CALLED_FUNCTION) \ 80 V(HandleApiCall, NEEDS_CALLED_FUNCTION) \
81 V(HandleApiCallConstruct, NEEDS_CALLED_FUNCTION) \ 81 V(HandleApiCallConstruct, NEEDS_CALLED_FUNCTION) \
82 V(HandleApiCallAsFunction, NO_EXTRA_ARGUMENTS) \ 82 V(HandleApiCallAsFunction, NO_EXTRA_ARGUMENTS) \
83 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \ 83 V(HandleApiCallAsConstructor, NO_EXTRA_ARGUMENTS) \
84 \ 84 \
85 V(StrictModePoisonPill, NO_EXTRA_ARGUMENTS) 85 V(StrictModePoisonPill, NO_EXTRA_ARGUMENTS)
86 86
87 // Define list of builtins implemented in assembly. 87 // Define list of builtins implemented in assembly.
88 #define BUILTIN_LIST_A(V) \ 88 #define BUILTIN_LIST_A(V) \
89 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \ 89 V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, \
90 Code::kNoExtraICState) \ 90 kNoExtraICState) \
91 V(InRecompileQueue, BUILTIN, UNINITIALIZED, \ 91 V(InRecompileQueue, BUILTIN, UNINITIALIZED, \
92 Code::kNoExtraICState) \ 92 kNoExtraICState) \
93 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \ 93 V(JSConstructStubCountdown, BUILTIN, UNINITIALIZED, \
94 Code::kNoExtraICState) \ 94 kNoExtraICState) \
95 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \ 95 V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, \
96 Code::kNoExtraICState) \ 96 kNoExtraICState) \
97 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \ 97 V(JSConstructStubApi, BUILTIN, UNINITIALIZED, \
98 Code::kNoExtraICState) \ 98 kNoExtraICState) \
99 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \ 99 V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, \
100 Code::kNoExtraICState) \ 100 kNoExtraICState) \
101 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \ 101 V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, \
102 Code::kNoExtraICState) \ 102 kNoExtraICState) \
103 V(LazyCompile, BUILTIN, UNINITIALIZED, \ 103 V(LazyCompile, BUILTIN, UNINITIALIZED, \
104 Code::kNoExtraICState) \ 104 kNoExtraICState) \
105 V(LazyRecompile, BUILTIN, UNINITIALIZED, \ 105 V(LazyRecompile, BUILTIN, UNINITIALIZED, \
106 Code::kNoExtraICState) \ 106 kNoExtraICState) \
107 V(ConcurrentRecompile, BUILTIN, UNINITIALIZED, \ 107 V(ConcurrentRecompile, BUILTIN, UNINITIALIZED, \
108 Code::kNoExtraICState) \ 108 kNoExtraICState) \
109 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \ 109 V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, \
110 Code::kNoExtraICState) \ 110 kNoExtraICState) \
111 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, \ 111 V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, \
112 Code::kNoExtraICState) \ 112 kNoExtraICState) \
113 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \ 113 V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \
114 Code::kNoExtraICState) \ 114 kNoExtraICState) \
115 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, \ 115 V(NotifyStubFailure, BUILTIN, UNINITIALIZED, \
116 Code::kNoExtraICState) \ 116 kNoExtraICState) \
117 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, \ 117 V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, \
118 Code::kNoExtraICState) \ 118 kNoExtraICState) \
119 \ 119 \
120 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \ 120 V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \
121 Code::kNoExtraICState) \ 121 kNoExtraICState) \
122 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \ 122 V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, \
123 Code::kNoExtraICState) \ 123 kNoExtraICState) \
124 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \ 124 V(StoreIC_Miss, BUILTIN, UNINITIALIZED, \
125 Code::kNoExtraICState) \ 125 kNoExtraICState) \
126 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \ 126 V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, \
127 Code::kNoExtraICState) \ 127 kNoExtraICState) \
128 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \ 128 V(LoadIC_Initialize, LOAD_IC, UNINITIALIZED, \
129 Code::kNoExtraICState) \ 129 kNoExtraICState) \
130 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \ 130 V(LoadIC_PreMonomorphic, LOAD_IC, PREMONOMORPHIC, \
131 Code::kNoExtraICState) \ 131 kNoExtraICState) \
132 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \ 132 V(LoadIC_Megamorphic, LOAD_IC, MEGAMORPHIC, \
133 Code::kNoExtraICState) \ 133 kNoExtraICState) \
134 V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, \ 134 V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, \
135 Code::kNoExtraICState) \ 135 kNoExtraICState) \
136 \ 136 \
137 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \ 137 V(KeyedLoadIC_Initialize, KEYED_LOAD_IC, UNINITIALIZED, \
138 Code::kNoExtraICState) \ 138 kNoExtraICState) \
139 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \ 139 V(KeyedLoadIC_PreMonomorphic, KEYED_LOAD_IC, PREMONOMORPHIC, \
140 Code::kNoExtraICState) \ 140 kNoExtraICState) \
141 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, GENERIC, \ 141 V(KeyedLoadIC_Generic, KEYED_LOAD_IC, GENERIC, \
142 Code::kNoExtraICState) \ 142 kNoExtraICState) \
143 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \ 143 V(KeyedLoadIC_String, KEYED_LOAD_IC, MEGAMORPHIC, \
144 Code::kNoExtraICState) \ 144 kNoExtraICState) \
145 V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MONOMORPHIC, \ 145 V(KeyedLoadIC_IndexedInterceptor, KEYED_LOAD_IC, MONOMORPHIC, \
146 Code::kNoExtraICState) \ 146 kNoExtraICState) \
147 V(KeyedLoadIC_NonStrictArguments, KEYED_LOAD_IC, MONOMORPHIC, \ 147 V(KeyedLoadIC_NonStrictArguments, KEYED_LOAD_IC, MONOMORPHIC, \
148 Code::kNoExtraICState) \ 148 kNoExtraICState) \
149 \ 149 \
150 V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \ 150 V(StoreIC_Initialize, STORE_IC, UNINITIALIZED, \
151 Code::kNoExtraICState) \ 151 kNoExtraICState) \
152 V(StoreIC_PreMonomorphic, STORE_IC, PREMONOMORPHIC, \ 152 V(StoreIC_PreMonomorphic, STORE_IC, PREMONOMORPHIC, \
153 Code::kNoExtraICState) \ 153 kNoExtraICState) \
154 V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \ 154 V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, \
155 Code::kNoExtraICState) \ 155 kNoExtraICState) \
156 V(StoreIC_Generic, STORE_IC, GENERIC, \ 156 V(StoreIC_Generic, STORE_IC, GENERIC, \
157 Code::kNoExtraICState) \ 157 kNoExtraICState) \
158 V(StoreIC_Generic_Strict, STORE_IC, GENERIC, \ 158 V(StoreIC_Generic_Strict, STORE_IC, GENERIC, \
159 kStrictMode) \ 159 StoreIC::kStrictModeState) \
160 V(StoreIC_GlobalProxy, STORE_IC, GENERIC, \ 160 V(StoreIC_GlobalProxy, STORE_IC, GENERIC, \
161 Code::kNoExtraICState) \ 161 kNoExtraICState) \
162 V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \ 162 V(StoreIC_Initialize_Strict, STORE_IC, UNINITIALIZED, \
163 kStrictMode) \ 163 StoreIC::kStrictModeState) \
164 V(StoreIC_PreMonomorphic_Strict, STORE_IC, PREMONOMORPHIC, \ 164 V(StoreIC_PreMonomorphic_Strict, STORE_IC, PREMONOMORPHIC, \
165 kStrictMode) \ 165 StoreIC::kStrictModeState) \
166 V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \ 166 V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC, \
167 kStrictMode) \ 167 StoreIC::kStrictModeState) \
168 V(StoreIC_GlobalProxy_Strict, STORE_IC, GENERIC, \ 168 V(StoreIC_GlobalProxy_Strict, STORE_IC, GENERIC, \
169 kStrictMode) \ 169 StoreIC::kStrictModeState) \
170 V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC, \ 170 V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC, \
171 kStrictMode) \ 171 StoreIC::kStrictModeState) \
172 \ 172 \
173 V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \ 173 V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, \
174 Code::kNoExtraICState) \ 174 kNoExtraICState) \
175 V(KeyedStoreIC_PreMonomorphic, KEYED_STORE_IC, PREMONOMORPHIC, \ 175 V(KeyedStoreIC_PreMonomorphic, KEYED_STORE_IC, PREMONOMORPHIC, \
176 Code::kNoExtraICState) \ 176 kNoExtraICState) \
177 V(KeyedStoreIC_Generic, KEYED_STORE_IC, GENERIC, \ 177 V(KeyedStoreIC_Generic, KEYED_STORE_IC, GENERIC, \
178 Code::kNoExtraICState) \ 178 kNoExtraICState) \
179 \ 179 \
180 V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \ 180 V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED, \
181 kStrictMode) \ 181 StoreIC::kStrictModeState) \
182 V(KeyedStoreIC_PreMonomorphic_Strict, KEYED_STORE_IC, PREMONOMORPHIC, \ 182 V(KeyedStoreIC_PreMonomorphic_Strict, KEYED_STORE_IC, PREMONOMORPHIC, \
183 kStrictMode) \ 183 StoreIC::kStrictModeState) \
184 V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, GENERIC, \ 184 V(KeyedStoreIC_Generic_Strict, KEYED_STORE_IC, GENERIC, \
185 kStrictMode) \ 185 StoreIC::kStrictModeState) \
186 V(KeyedStoreIC_NonStrictArguments, KEYED_STORE_IC, MONOMORPHIC, \ 186 V(KeyedStoreIC_NonStrictArguments, KEYED_STORE_IC, MONOMORPHIC, \
187 Code::kNoExtraICState) \ 187 kNoExtraICState) \
188 \ 188 \
189 /* Uses KeyedLoadIC_Initialize; must be after in list. */ \ 189 /* Uses KeyedLoadIC_Initialize; must be after in list. */ \
190 V(FunctionCall, BUILTIN, UNINITIALIZED, \ 190 V(FunctionCall, BUILTIN, UNINITIALIZED, \
191 Code::kNoExtraICState) \ 191 kNoExtraICState) \
192 V(FunctionApply, BUILTIN, UNINITIALIZED, \ 192 V(FunctionApply, BUILTIN, UNINITIALIZED, \
193 Code::kNoExtraICState) \ 193 kNoExtraICState) \
194 \ 194 \
195 V(InternalArrayCode, BUILTIN, UNINITIALIZED, \ 195 V(InternalArrayCode, BUILTIN, UNINITIALIZED, \
196 Code::kNoExtraICState) \ 196 kNoExtraICState) \
197 V(ArrayCode, BUILTIN, UNINITIALIZED, \ 197 V(ArrayCode, BUILTIN, UNINITIALIZED, \
198 Code::kNoExtraICState) \ 198 kNoExtraICState) \
199 \ 199 \
200 V(StringConstructCode, BUILTIN, UNINITIALIZED, \ 200 V(StringConstructCode, BUILTIN, UNINITIALIZED, \
201 Code::kNoExtraICState) \ 201 kNoExtraICState) \
202 \ 202 \
203 V(OnStackReplacement, BUILTIN, UNINITIALIZED, \ 203 V(OnStackReplacement, BUILTIN, UNINITIALIZED, \
204 Code::kNoExtraICState) \ 204 kNoExtraICState) \
205 V(InterruptCheck, BUILTIN, UNINITIALIZED, \ 205 V(InterruptCheck, BUILTIN, UNINITIALIZED, \
206 Code::kNoExtraICState) \ 206 kNoExtraICState) \
207 V(OsrAfterStackCheck, BUILTIN, UNINITIALIZED, \ 207 V(OsrAfterStackCheck, BUILTIN, UNINITIALIZED, \
208 Code::kNoExtraICState) \ 208 kNoExtraICState) \
209 V(StackCheck, BUILTIN, UNINITIALIZED, \ 209 V(StackCheck, BUILTIN, UNINITIALIZED, \
210 Code::kNoExtraICState) \ 210 kNoExtraICState) \
211 \ 211 \
212 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, \ 212 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, \
213 Code::kNoExtraICState) \ 213 kNoExtraICState) \
214 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, \ 214 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, \
215 Code::kNoExtraICState) \ 215 kNoExtraICState) \
216 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V) 216 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)
217 217
218 // Define list of builtin handlers implemented in assembly. 218 // Define list of builtin handlers implemented in assembly.
219 #define BUILTIN_LIST_H(V) \ 219 #define BUILTIN_LIST_H(V) \
220 V(LoadIC_Slow, LOAD_IC) \ 220 V(LoadIC_Slow, LOAD_IC) \
221 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ 221 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \
222 V(StoreIC_Slow, STORE_IC) \ 222 V(StoreIC_Slow, STORE_IC) \
223 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ 223 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \
224 V(LoadIC_Normal, LOAD_IC) \ 224 V(LoadIC_Normal, LOAD_IC) \
225 V(StoreIC_Normal, STORE_IC) 225 V(StoreIC_Normal, STORE_IC)
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 434
435 friend class BuiltinFunctionTable; 435 friend class BuiltinFunctionTable;
436 friend class Isolate; 436 friend class Isolate;
437 437
438 DISALLOW_COPY_AND_ASSIGN(Builtins); 438 DISALLOW_COPY_AND_ASSIGN(Builtins);
439 }; 439 };
440 440
441 } } // namespace v8::internal 441 } } // namespace v8::internal
442 442
443 #endif // V8_BUILTINS_H_ 443 #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