Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: src/code-stubs.h

Issue 925373002: Test StringLengthStub generation via TurboFan. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_CODE_STUBS_H_ 5 #ifndef V8_CODE_STUBS_H_
6 #define V8_CODE_STUBS_H_ 6 #define V8_CODE_STUBS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 Code::Kind kind() const OVERRIDE { return Code::LOAD_IC; } 1002 Code::Kind kind() const OVERRIDE { return Code::LOAD_IC; }
1003 Code::StubType GetStubType() const OVERRIDE { return Code::FAST; } 1003 Code::StubType GetStubType() const OVERRIDE { return Code::FAST; }
1004 1004
1005 private: 1005 private:
1006 class ConstantIndexBits : public BitField<int, 0, kSubMinorKeyBits> {}; 1006 class ConstantIndexBits : public BitField<int, 0, kSubMinorKeyBits> {};
1007 1007
1008 DEFINE_HANDLER_CODE_STUB(LoadConstant, HandlerStub); 1008 DEFINE_HANDLER_CODE_STUB(LoadConstant, HandlerStub);
1009 }; 1009 };
1010 1010
1011 1011
1012 class StringLengthStub: public HandlerStub { 1012 class StringLengthStub : public CodeStub {
1013 public: 1013 public:
1014 explicit StringLengthStub(Isolate* isolate) : HandlerStub(isolate) {} 1014 explicit StringLengthStub(Isolate* isolate) : CodeStub(isolate) {}
1015 1015
1016 protected: 1016 StringLengthStub(uint32_t key, Isolate* isolate) : CodeStub(key, isolate) {}
1017 Code::Kind kind() const OVERRIDE { return Code::LOAD_IC; }
1018 Code::StubType GetStubType() const OVERRIDE { return Code::FAST; }
1019 1017
1020 DEFINE_HANDLER_CODE_STUB(StringLength, HandlerStub); 1018 CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE {
1019 return LoadDescriptor(isolate());
1020 };
1021
1022 Handle<Code> GenerateCode() OVERRIDE;
1023
1024 Major MajorKey() const OVERRIDE { return StringLength; };
1025 Code::Kind GetCodeKind() const OVERRIDE { return Code::HANDLER; }
1026 InlineCacheState GetICState() const OVERRIDE { return MONOMORPHIC; }
1027 ExtraICState GetExtraICState() const OVERRIDE { return Code::LOAD_IC; }
1028
1029 private:
1030 DISALLOW_COPY_AND_ASSIGN(StringLengthStub);
1021 }; 1031 };
1022 1032
1023 1033
1024 class StoreFieldStub : public HandlerStub { 1034 class StoreFieldStub : public HandlerStub {
1025 public: 1035 public:
1026 StoreFieldStub(Isolate* isolate, FieldIndex index, 1036 StoreFieldStub(Isolate* isolate, FieldIndex index,
1027 Representation representation) 1037 Representation representation)
1028 : HandlerStub(isolate) { 1038 : HandlerStub(isolate) {
1029 int property_index_key = index.GetFieldAccessStubKey(); 1039 int property_index_key = index.GetFieldAccessStubKey();
1030 uint8_t repr = PropertyDetails::EncodeRepresentation(representation); 1040 uint8_t repr = PropertyDetails::EncodeRepresentation(representation);
(...skipping 1701 matching lines...) Expand 10 before | Expand all | Expand 10 after
2732 2742
2733 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR 2743 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR
2734 #undef DEFINE_PLATFORM_CODE_STUB 2744 #undef DEFINE_PLATFORM_CODE_STUB
2735 #undef DEFINE_HANDLER_CODE_STUB 2745 #undef DEFINE_HANDLER_CODE_STUB
2736 #undef DEFINE_HYDROGEN_CODE_STUB 2746 #undef DEFINE_HYDROGEN_CODE_STUB
2737 #undef DEFINE_CODE_STUB 2747 #undef DEFINE_CODE_STUB
2738 #undef DEFINE_CODE_STUB_BASE 2748 #undef DEFINE_CODE_STUB_BASE
2739 } } // namespace v8::internal 2749 } } // namespace v8::internal
2740 2750
2741 #endif // V8_CODE_STUBS_H_ 2751 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/code-stubs-hydrogen.cc » ('j') | src/compiler/code-stubs-turbofan.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698