| 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 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 | 214 |
| 215 static void GenerateStoreViaSetter(MacroAssembler* masm, | 215 static void GenerateStoreViaSetter(MacroAssembler* masm, |
| 216 Handle<HeapType> type, Register receiver, | 216 Handle<HeapType> type, Register receiver, |
| 217 Handle<JSFunction> setter); | 217 Handle<JSFunction> setter); |
| 218 | 218 |
| 219 static void GenerateStoreViaSetterForDeopt(MacroAssembler* masm) { | 219 static void GenerateStoreViaSetterForDeopt(MacroAssembler* masm) { |
| 220 GenerateStoreViaSetter(masm, Handle<HeapType>::null(), no_reg, | 220 GenerateStoreViaSetter(masm, Handle<HeapType>::null(), no_reg, |
| 221 Handle<JSFunction>()); | 221 Handle<JSFunction>()); |
| 222 } | 222 } |
| 223 | 223 |
| 224 static void GenerateSlow(MacroAssembler* masm); |
| 225 |
| 224 protected: | 226 protected: |
| 225 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 227 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
| 226 Label* miss); | 228 Label* miss); |
| 227 | 229 |
| 228 virtual void FrontendFooter(Handle<Name> name, Label* miss); | 230 virtual void FrontendFooter(Handle<Name> name, Label* miss); |
| 229 void GenerateRestoreName(Label* label, Handle<Name> name); | 231 void GenerateRestoreName(Label* label, Handle<Name> name); |
| 230 | 232 |
| 231 private: | 233 private: |
| 232 void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, | 234 void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, |
| 233 Register receiver_reg, Register name_reg, | 235 Register receiver_reg, Register name_reg, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 260 : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC, | 262 : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC, |
| 261 Handle<HeapType>::null(), | 263 Handle<HeapType>::null(), |
| 262 Handle<JSObject>::null(), kCacheOnReceiver) {} | 264 Handle<JSObject>::null(), kCacheOnReceiver) {} |
| 263 | 265 |
| 264 virtual ~ElementHandlerCompiler() {} | 266 virtual ~ElementHandlerCompiler() {} |
| 265 | 267 |
| 266 void CompileElementHandlers(MapHandleList* receiver_maps, | 268 void CompileElementHandlers(MapHandleList* receiver_maps, |
| 267 CodeHandleList* handlers); | 269 CodeHandleList* handlers); |
| 268 | 270 |
| 269 static void GenerateLoadDictionaryElement(MacroAssembler* masm); | 271 static void GenerateLoadDictionaryElement(MacroAssembler* masm); |
| 270 static void GenerateStoreDictionaryElement(MacroAssembler* masm); | 272 static void GenerateStoreSlow(MacroAssembler* masm); |
| 271 }; | 273 }; |
| 272 } | 274 } |
| 273 } // namespace v8::internal | 275 } // namespace v8::internal |
| 274 | 276 |
| 275 #endif // V8_IC_HANDLER_COMPILER_H_ | 277 #endif // V8_IC_HANDLER_COMPILER_H_ |
| OLD | NEW |