| 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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 virtual ~NamedStoreHandlerCompiler() {} | 218 virtual ~NamedStoreHandlerCompiler() {} |
| 219 | 219 |
| 220 Handle<Code> CompileStoreTransition(Handle<Map> transition, | 220 Handle<Code> CompileStoreTransition(Handle<Map> transition, |
| 221 Handle<Name> name); | 221 Handle<Name> name); |
| 222 Handle<Code> CompileStoreField(LookupIterator* it); | 222 Handle<Code> CompileStoreField(LookupIterator* it); |
| 223 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, | 223 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, |
| 224 Handle<ExecutableAccessorInfo> callback); | 224 Handle<ExecutableAccessorInfo> callback); |
| 225 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, | 225 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, |
| 226 const CallOptimization& call_optimization); | 226 const CallOptimization& call_optimization); |
| 227 Handle<Code> CompileStoreViaSetter(Handle<JSObject> object, Handle<Name> name, | 227 Handle<Code> CompileStoreViaSetter(Handle<JSObject> object, Handle<Name> name, |
| 228 Handle<JSFunction> setter); | 228 int accessor_index, |
| 229 int expected_arguments); |
| 229 Handle<Code> CompileStoreInterceptor(Handle<Name> name); | 230 Handle<Code> CompileStoreInterceptor(Handle<Name> name); |
| 230 | 231 |
| 231 static void GenerateStoreViaSetter(MacroAssembler* masm, | 232 static void GenerateStoreViaSetter(MacroAssembler* masm, |
| 232 Handle<HeapType> type, Register receiver, | 233 Handle<HeapType> type, Register receiver, |
| 233 Handle<JSFunction> setter); | 234 Register holder, int accessor_index, |
| 235 int expected_arguments); |
| 234 | 236 |
| 235 static void GenerateStoreViaSetterForDeopt(MacroAssembler* masm) { | 237 static void GenerateStoreViaSetterForDeopt(MacroAssembler* masm) { |
| 236 GenerateStoreViaSetter(masm, Handle<HeapType>::null(), no_reg, | 238 GenerateStoreViaSetter(masm, Handle<HeapType>::null(), no_reg, no_reg, -1, |
| 237 Handle<JSFunction>()); | 239 -1); |
| 238 } | 240 } |
| 239 | 241 |
| 240 static void GenerateSlow(MacroAssembler* masm); | 242 static void GenerateSlow(MacroAssembler* masm); |
| 241 | 243 |
| 242 protected: | 244 protected: |
| 243 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 245 virtual Register FrontendHeader(Register object_reg, Handle<Name> name, |
| 244 Label* miss); | 246 Label* miss); |
| 245 | 247 |
| 246 virtual void FrontendFooter(Handle<Name> name, Label* miss); | 248 virtual void FrontendFooter(Handle<Name> name, Label* miss); |
| 247 void GenerateRestoreName(Label* label, Handle<Name> name); | 249 void GenerateRestoreName(Label* label, Handle<Name> name); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 | 287 |
| 286 void CompileElementHandlers(MapHandleList* receiver_maps, | 288 void CompileElementHandlers(MapHandleList* receiver_maps, |
| 287 CodeHandleList* handlers); | 289 CodeHandleList* handlers); |
| 288 | 290 |
| 289 static void GenerateStoreSlow(MacroAssembler* masm); | 291 static void GenerateStoreSlow(MacroAssembler* masm); |
| 290 }; | 292 }; |
| 291 } | 293 } |
| 292 } // namespace v8::internal | 294 } // namespace v8::internal |
| 293 | 295 |
| 294 #endif // V8_IC_HANDLER_COMPILER_H_ | 296 #endif // V8_IC_HANDLER_COMPILER_H_ |
| OLD | NEW |