| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_STUB_CACHE_H_ | 5 #ifndef V8_STUB_CACHE_H_ | 
| 6 #define V8_STUB_CACHE_H_ | 6 #define V8_STUB_CACHE_H_ | 
| 7 | 7 | 
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" | 
| 9 #include "src/arguments.h" | 9 #include "src/arguments.h" | 
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" | 
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 384 | 384 | 
| 385   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 385   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 
| 386                                   Label* miss) { | 386                                   Label* miss) { | 
| 387     UNREACHABLE(); | 387     UNREACHABLE(); | 
| 388     return receiver(); | 388     return receiver(); | 
| 389   } | 389   } | 
| 390 | 390 | 
| 391   virtual void FrontendFooter(Handle<Name> name, Label* miss) { UNREACHABLE(); } | 391   virtual void FrontendFooter(Handle<Name> name, Label* miss) { UNREACHABLE(); } | 
| 392 | 392 | 
| 393   Register Frontend(Register object_reg, Handle<Name> name); | 393   Register Frontend(Register object_reg, Handle<Name> name); | 
|  | 394   void NonexistentFrontendHeader(Handle<Name> name, Label* miss, | 
|  | 395                                  Register scratch1, Register scratch2); | 
| 394 | 396 | 
| 395   // TODO(verwaest): Make non-static. | 397   // TODO(verwaest): Make non-static. | 
| 396   static void GenerateFastApiCall(MacroAssembler* masm, | 398   static void GenerateFastApiCall(MacroAssembler* masm, | 
| 397                                   const CallOptimization& optimization, | 399                                   const CallOptimization& optimization, | 
| 398                                   Handle<Map> receiver_map, Register receiver, | 400                                   Handle<Map> receiver_map, Register receiver, | 
| 399                                   Register scratch, bool is_store, int argc, | 401                                   Register scratch, bool is_store, int argc, | 
| 400                                   Register* values); | 402                                   Register* values); | 
| 401 | 403 | 
| 402   // Helper function used to check that the dictionary doesn't contain | 404   // Helper function used to check that the dictionary doesn't contain | 
| 403   // the property. This function may return false negatives, so miss_label | 405   // the property. This function may return false negatives, so miss_label | 
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 512  protected: | 514  protected: | 
| 513   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 515   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 
| 514                                   Label* miss); | 516                                   Label* miss); | 
| 515 | 517 | 
| 516   virtual void FrontendFooter(Handle<Name> name, Label* miss); | 518   virtual void FrontendFooter(Handle<Name> name, Label* miss); | 
| 517 | 519 | 
| 518  private: | 520  private: | 
| 519   Register CallbackFrontend(Register object_reg, Handle<Name> name, | 521   Register CallbackFrontend(Register object_reg, Handle<Name> name, | 
| 520                             Handle<Object> callback); | 522                             Handle<Object> callback); | 
| 521   Handle<Code> CompileLoadNonexistent(Handle<Name> name); | 523   Handle<Code> CompileLoadNonexistent(Handle<Name> name); | 
| 522   void NonexistentFrontend(Handle<Name> name); |  | 
| 523 |  | 
| 524   void GenerateLoadField(Register reg, | 524   void GenerateLoadField(Register reg, | 
| 525                          FieldIndex field, | 525                          FieldIndex field, | 
| 526                          Representation representation); | 526                          Representation representation); | 
| 527   void GenerateLoadConstant(Handle<Object> value); | 527   void GenerateLoadConstant(Handle<Object> value); | 
| 528   void GenerateLoadCallback(Register reg, | 528   void GenerateLoadCallback(Register reg, | 
| 529                             Handle<ExecutableAccessorInfo> callback); | 529                             Handle<ExecutableAccessorInfo> callback); | 
| 530   void GenerateLoadCallback(const CallOptimization& call_optimization, | 530   void GenerateLoadCallback(const CallOptimization& call_optimization, | 
| 531                             Handle<Map> receiver_map); | 531                             Handle<Map> receiver_map); | 
| 532   void GenerateLoadInterceptor(Register holder_reg, | 532   void GenerateLoadInterceptor(Register holder_reg, | 
| 533                                LookupResult* lookup, | 533                                LookupResult* lookup, | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 582   } | 582   } | 
| 583 | 583 | 
| 584  protected: | 584  protected: | 
| 585   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 585   virtual Register FrontendHeader(Register object_reg, Handle<Name> name, | 
| 586                                   Label* miss); | 586                                   Label* miss); | 
| 587 | 587 | 
| 588   virtual void FrontendFooter(Handle<Name> name, Label* miss); | 588   virtual void FrontendFooter(Handle<Name> name, Label* miss); | 
| 589   void GenerateRestoreName(Label* label, Handle<Name> name); | 589   void GenerateRestoreName(Label* label, Handle<Name> name); | 
| 590 | 590 | 
| 591  private: | 591  private: | 
| 592   void GenerateNegativeHolderLookup(Register holder_reg, Handle<Name> name, |  | 
| 593                                     Label* miss); |  | 
| 594 |  | 
| 595   void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, | 592   void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, | 
| 596                                Register receiver_reg, Register name_reg, | 593                                Register receiver_reg, Register name_reg, | 
| 597                                Register value_reg, Register scratch1, | 594                                Register value_reg, Register scratch1, | 
| 598                                Register scratch2, Register scratch3, | 595                                Register scratch2, Register scratch3, | 
| 599                                Label* miss_label, Label* slow); | 596                                Label* miss_label, Label* slow); | 
| 600 | 597 | 
| 601   void GenerateStoreField(Handle<JSObject> object, LookupResult* lookup, | 598   void GenerateStoreField(Handle<JSObject> object, LookupResult* lookup, | 
| 602                           Register receiver_reg, Register name_reg, | 599                           Register receiver_reg, Register name_reg, | 
| 603                           Register value_reg, Register scratch1, | 600                           Register value_reg, Register scratch1, | 
| 604                           Register scratch2, Label* miss_label); | 601                           Register scratch2, Label* miss_label); | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 686   Handle<JSFunction> constant_function_; | 683   Handle<JSFunction> constant_function_; | 
| 687   bool is_simple_api_call_; | 684   bool is_simple_api_call_; | 
| 688   Handle<FunctionTemplateInfo> expected_receiver_type_; | 685   Handle<FunctionTemplateInfo> expected_receiver_type_; | 
| 689   Handle<CallHandlerInfo> api_call_info_; | 686   Handle<CallHandlerInfo> api_call_info_; | 
| 690 }; | 687 }; | 
| 691 | 688 | 
| 692 | 689 | 
| 693 } }  // namespace v8::internal | 690 } }  // namespace v8::internal | 
| 694 | 691 | 
| 695 #endif  // V8_STUB_CACHE_H_ | 692 #endif  // V8_STUB_CACHE_H_ | 
| OLD | NEW | 
|---|