OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_IC_HANDLER_COMPILER_H_ | 5 #ifndef V8_IC_HANDLER_COMPILER_H_ |
6 #define V8_IC_HANDLER_COMPILER_H_ | 6 #define V8_IC_HANDLER_COMPILER_H_ |
7 | 7 |
8 #include "src/ic/access-compiler.h" | 8 #include "src/ic/access-compiler.h" |
9 #include "src/ic/ic-state.h" | 9 #include "src/ic/ic-state.h" |
10 | 10 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 Register receiver, | 160 Register receiver, |
161 Register scratch1, | 161 Register scratch1, |
162 Register scratch2, | 162 Register scratch2, |
163 Label* miss_label); | 163 Label* miss_label); |
164 | 164 |
165 // These constants describe the structure of the interceptor arguments on the | 165 // These constants describe the structure of the interceptor arguments on the |
166 // stack. The arguments are pushed by the (platform-specific) | 166 // stack. The arguments are pushed by the (platform-specific) |
167 // PushInterceptorArguments and read by LoadPropertyWithInterceptorOnly and | 167 // PushInterceptorArguments and read by LoadPropertyWithInterceptorOnly and |
168 // LoadWithInterceptor. | 168 // LoadWithInterceptor. |
169 static const int kInterceptorArgsNameIndex = 0; | 169 static const int kInterceptorArgsNameIndex = 0; |
170 static const int kInterceptorArgsInfoIndex = 1; | 170 static const int kInterceptorArgsThisIndex = 1; |
171 static const int kInterceptorArgsThisIndex = 2; | 171 static const int kInterceptorArgsHolderIndex = 2; |
172 static const int kInterceptorArgsHolderIndex = 3; | 172 static const int kInterceptorArgsLength = 3; |
173 static const int kInterceptorArgsLength = 4; | |
174 | 173 |
175 protected: | 174 protected: |
176 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 175 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
177 Label* miss); | 176 Label* miss); |
178 | 177 |
179 virtual void FrontendFooter(Handle<Name> name, Label* miss); | 178 virtual void FrontendFooter(Handle<Name> name, Label* miss); |
180 | 179 |
181 private: | 180 private: |
182 Handle<Code> CompileLoadNonexistent(Handle<Name> name); | 181 Handle<Code> CompileLoadNonexistent(Handle<Name> name); |
183 void GenerateLoadConstant(Handle<Object> value); | 182 void GenerateLoadConstant(Handle<Object> value); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 | 291 |
293 void CompileElementHandlers(MapHandleList* receiver_maps, | 292 void CompileElementHandlers(MapHandleList* receiver_maps, |
294 CodeHandleList* handlers); | 293 CodeHandleList* handlers); |
295 | 294 |
296 static void GenerateStoreSlow(MacroAssembler* masm); | 295 static void GenerateStoreSlow(MacroAssembler* masm); |
297 }; | 296 }; |
298 } | 297 } |
299 } // namespace v8::internal | 298 } // namespace v8::internal |
300 | 299 |
301 #endif // V8_IC_HANDLER_COMPILER_H_ | 300 #endif // V8_IC_HANDLER_COMPILER_H_ |
OLD | NEW |