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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 Handle<Code> CompileLoadViaGetter(Handle<Name> name, int accessor_index, | 139 Handle<Code> CompileLoadViaGetter(Handle<Name> name, int accessor_index, |
140 int expected_arguments); | 140 int expected_arguments); |
141 | 141 |
142 Handle<Code> CompileLoadGlobal(Handle<PropertyCell> cell, Handle<Name> name, | 142 Handle<Code> CompileLoadGlobal(Handle<PropertyCell> cell, Handle<Name> name, |
143 bool is_configurable); | 143 bool is_configurable); |
144 | 144 |
145 // Static interface | 145 // Static interface |
146 static Handle<Code> ComputeLoadNonexistent(Handle<Name> name, | 146 static Handle<Code> ComputeLoadNonexistent(Handle<Name> name, |
147 Handle<Map> map); | 147 Handle<Map> map); |
148 | 148 |
| 149 static void GenerateSlow(MacroAssembler* masm); |
| 150 |
149 static void GenerateLoadViaGetter(MacroAssembler* masm, Handle<Map> map, | 151 static void GenerateLoadViaGetter(MacroAssembler* masm, Handle<Map> map, |
150 Register receiver, Register holder, | 152 Register receiver, Register holder, |
151 int accessor_index, int expected_arguments, | 153 int accessor_index, int expected_arguments, |
152 Register scratch); | 154 Register scratch); |
153 | 155 |
154 static void GenerateLoadViaGetterForDeopt(MacroAssembler* masm) { | 156 static void GenerateLoadViaGetterForDeopt(MacroAssembler* masm) { |
155 GenerateLoadViaGetter(masm, Handle<Map>::null(), no_reg, no_reg, -1, -1, | 157 GenerateLoadViaGetter(masm, Handle<Map>::null(), no_reg, no_reg, -1, -1, |
156 no_reg); | 158 no_reg); |
157 } | 159 } |
158 | 160 |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 class ElementHandlerCompiler : public PropertyHandlerCompiler { | 285 class ElementHandlerCompiler : public PropertyHandlerCompiler { |
284 public: | 286 public: |
285 explicit ElementHandlerCompiler(Isolate* isolate) | 287 explicit ElementHandlerCompiler(Isolate* isolate) |
286 : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC, | 288 : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC, |
287 Handle<Map>::null(), Handle<JSObject>::null(), | 289 Handle<Map>::null(), Handle<JSObject>::null(), |
288 kCacheOnReceiver) {} | 290 kCacheOnReceiver) {} |
289 | 291 |
290 virtual ~ElementHandlerCompiler() {} | 292 virtual ~ElementHandlerCompiler() {} |
291 | 293 |
292 void CompileElementHandlers(MapHandleList* receiver_maps, | 294 void CompileElementHandlers(MapHandleList* receiver_maps, |
293 CodeHandleList* handlers); | 295 CodeHandleList* handlers, |
| 296 LanguageMode language_mode); |
294 | 297 |
| 298 static void GenerateLoadSlow(MacroAssembler* masm); |
295 static void GenerateStoreSlow(MacroAssembler* masm); | 299 static void GenerateStoreSlow(MacroAssembler* masm); |
296 }; | 300 }; |
297 } | 301 } |
298 } // namespace v8::internal | 302 } // namespace v8::internal |
299 | 303 |
300 #endif // V8_IC_HANDLER_COMPILER_H_ | 304 #endif // V8_IC_HANDLER_COMPILER_H_ |
OLD | NEW |