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

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

Issue 1114563003: Optimize the typeof operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Ports. Created 5 years, 7 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 V(InternalArrayNArgumentsConstructor) \ 72 V(InternalArrayNArgumentsConstructor) \
73 V(InternalArrayNoArgumentConstructor) \ 73 V(InternalArrayNoArgumentConstructor) \
74 V(InternalArraySingleArgumentConstructor) \ 74 V(InternalArraySingleArgumentConstructor) \
75 V(KeyedLoadGeneric) \ 75 V(KeyedLoadGeneric) \
76 V(LoadScriptContextField) \ 76 V(LoadScriptContextField) \
77 V(LoadDictionaryElement) \ 77 V(LoadDictionaryElement) \
78 V(LoadFastElement) \ 78 V(LoadFastElement) \
79 V(MegamorphicLoad) \ 79 V(MegamorphicLoad) \
80 V(NameDictionaryLookup) \ 80 V(NameDictionaryLookup) \
81 V(NumberToString) \ 81 V(NumberToString) \
82 V(Typeof) \
82 V(RegExpConstructResult) \ 83 V(RegExpConstructResult) \
83 V(StoreFastElement) \ 84 V(StoreFastElement) \
84 V(StoreScriptContextField) \ 85 V(StoreScriptContextField) \
85 V(StringAdd) \ 86 V(StringAdd) \
86 V(ToBoolean) \ 87 V(ToBoolean) \
87 V(TransitionElementsKind) \ 88 V(TransitionElementsKind) \
88 V(VectorRawKeyedLoad) \ 89 V(VectorRawKeyedLoad) \
89 V(VectorRawLoad) \ 90 V(VectorRawLoad) \
90 /* IC Handler stubs */ \ 91 /* IC Handler stubs */ \
91 V(ArrayBufferViewLoadField) \ 92 V(ArrayBufferViewLoadField) \
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 explicit NumberToStringStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} 588 explicit NumberToStringStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
588 589
589 // Parameters accessed via CodeStubGraphBuilder::GetParameter() 590 // Parameters accessed via CodeStubGraphBuilder::GetParameter()
590 static const int kNumber = 0; 591 static const int kNumber = 0;
591 592
592 DEFINE_CALL_INTERFACE_DESCRIPTOR(NumberToString); 593 DEFINE_CALL_INTERFACE_DESCRIPTOR(NumberToString);
593 DEFINE_HYDROGEN_CODE_STUB(NumberToString, HydrogenCodeStub); 594 DEFINE_HYDROGEN_CODE_STUB(NumberToString, HydrogenCodeStub);
594 }; 595 };
595 596
596 597
598 class TypeofStub final : public HydrogenCodeStub {
599 public:
600 explicit TypeofStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
601
602 // Parameters accessed via CodeStubGraphBuilder::GetParameter()
603 static const int kObject = 0;
604
605 static void GenerateAheadOfTime(Isolate* isolate);
606
607 DEFINE_CALL_INTERFACE_DESCRIPTOR(Typeof);
608 DEFINE_HYDROGEN_CODE_STUB(Typeof, HydrogenCodeStub);
609 };
610
611
597 class FastNewClosureStub : public HydrogenCodeStub { 612 class FastNewClosureStub : public HydrogenCodeStub {
598 public: 613 public:
599 FastNewClosureStub(Isolate* isolate, LanguageMode language_mode, 614 FastNewClosureStub(Isolate* isolate, LanguageMode language_mode,
600 FunctionKind kind) 615 FunctionKind kind)
601 : HydrogenCodeStub(isolate) { 616 : HydrogenCodeStub(isolate) {
602 DCHECK(IsValidFunctionKind(kind)); 617 DCHECK(IsValidFunctionKind(kind));
603 set_sub_minor_key(LanguageModeBits::encode(language_mode) | 618 set_sub_minor_key(LanguageModeBits::encode(language_mode) |
604 FunctionKindBits::encode(kind)); 619 FunctionKindBits::encode(kind));
605 } 620 }
606 621
(...skipping 2182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2789 2804
2790 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR 2805 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR
2791 #undef DEFINE_PLATFORM_CODE_STUB 2806 #undef DEFINE_PLATFORM_CODE_STUB
2792 #undef DEFINE_HANDLER_CODE_STUB 2807 #undef DEFINE_HANDLER_CODE_STUB
2793 #undef DEFINE_HYDROGEN_CODE_STUB 2808 #undef DEFINE_HYDROGEN_CODE_STUB
2794 #undef DEFINE_CODE_STUB 2809 #undef DEFINE_CODE_STUB
2795 #undef DEFINE_CODE_STUB_BASE 2810 #undef DEFINE_CODE_STUB_BASE
2796 } } // namespace v8::internal 2811 } } // namespace v8::internal
2797 2812
2798 #endif // V8_CODE_STUBS_H_ 2813 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/code-factory.cc ('k') | src/code-stubs.cc » ('j') | src/mips/lithium-codegen-mips.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698