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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 virtual void FrontendFooter(Handle<Name> name, Label* miss); | 582 virtual void FrontendFooter(Handle<Name> name, Label* miss); |
583 void GenerateRestoreName(Label* label, Handle<Name> name); | 583 void GenerateRestoreName(Label* label, Handle<Name> name); |
584 | 584 |
585 private: | 585 private: |
586 void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, | 586 void GenerateStoreTransition(Handle<Map> transition, Handle<Name> name, |
587 Register receiver_reg, Register name_reg, | 587 Register receiver_reg, Register name_reg, |
588 Register value_reg, Register scratch1, | 588 Register value_reg, Register scratch1, |
589 Register scratch2, Register scratch3, | 589 Register scratch2, Register scratch3, |
590 Label* miss_label, Label* slow); | 590 Label* miss_label, Label* slow); |
591 | 591 |
592 void GenerateStoreField(Handle<JSObject> object, LookupResult* lookup, | 592 void GenerateStoreField(LookupResult* lookup, Register value_reg, |
593 Register receiver_reg, Register name_reg, | 593 Label* miss_label); |
594 Register value_reg, Register scratch1, | |
595 Register scratch2, Label* miss_label); | |
596 | 594 |
597 static Builtins::Name SlowBuiltin(Code::Kind kind) { | 595 static Builtins::Name SlowBuiltin(Code::Kind kind) { |
598 switch (kind) { | 596 switch (kind) { |
599 case Code::STORE_IC: return Builtins::kStoreIC_Slow; | 597 case Code::STORE_IC: return Builtins::kStoreIC_Slow; |
600 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Slow; | 598 case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Slow; |
601 default: UNREACHABLE(); | 599 default: UNREACHABLE(); |
602 } | 600 } |
603 return Builtins::kStoreIC_Slow; | 601 return Builtins::kStoreIC_Slow; |
604 } | 602 } |
605 | 603 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 Handle<JSFunction> constant_function_; | 675 Handle<JSFunction> constant_function_; |
678 bool is_simple_api_call_; | 676 bool is_simple_api_call_; |
679 Handle<FunctionTemplateInfo> expected_receiver_type_; | 677 Handle<FunctionTemplateInfo> expected_receiver_type_; |
680 Handle<CallHandlerInfo> api_call_info_; | 678 Handle<CallHandlerInfo> api_call_info_; |
681 }; | 679 }; |
682 | 680 |
683 | 681 |
684 } } // namespace v8::internal | 682 } } // namespace v8::internal |
685 | 683 |
686 #endif // V8_STUB_CACHE_H_ | 684 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |