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

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

Issue 57123002: Reland 21774: Generate KeyedLoadGeneric with Hydrogen (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Turn off by default Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 V(CreateAllocationSite) \ 70 V(CreateAllocationSite) \
71 V(ToBoolean) \ 71 V(ToBoolean) \
72 V(ToNumber) \ 72 V(ToNumber) \
73 V(ArgumentsAccess) \ 73 V(ArgumentsAccess) \
74 V(RegExpConstructResult) \ 74 V(RegExpConstructResult) \
75 V(NumberToString) \ 75 V(NumberToString) \
76 V(DoubleToI) \ 76 V(DoubleToI) \
77 V(CEntry) \ 77 V(CEntry) \
78 V(JSEntry) \ 78 V(JSEntry) \
79 V(KeyedLoadElement) \ 79 V(KeyedLoadElement) \
80 V(KeyedLoadGeneric) \
80 V(ArrayNoArgumentConstructor) \ 81 V(ArrayNoArgumentConstructor) \
81 V(ArraySingleArgumentConstructor) \ 82 V(ArraySingleArgumentConstructor) \
82 V(ArrayNArgumentsConstructor) \ 83 V(ArrayNArgumentsConstructor) \
83 V(InternalArrayNoArgumentConstructor) \ 84 V(InternalArrayNoArgumentConstructor) \
84 V(InternalArraySingleArgumentConstructor) \ 85 V(InternalArraySingleArgumentConstructor) \
85 V(InternalArrayNArgumentsConstructor) \ 86 V(InternalArrayNArgumentsConstructor) \
86 V(KeyedStoreElement) \ 87 V(KeyedStoreElement) \
87 V(DebuggerStatement) \ 88 V(DebuggerStatement) \
88 V(NameDictionaryLookup) \ 89 V(NameDictionaryLookup) \
89 V(ElementsTransitionAndStore) \ 90 V(ElementsTransitionAndStore) \
(...skipping 1772 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 void Generate(MacroAssembler* masm); 1863 void Generate(MacroAssembler* masm);
1863 1864
1864 private: 1865 private:
1865 Major MajorKey() { return KeyedLoadElement; } 1866 Major MajorKey() { return KeyedLoadElement; }
1866 int MinorKey() { return DICTIONARY_ELEMENTS; } 1867 int MinorKey() { return DICTIONARY_ELEMENTS; }
1867 1868
1868 DISALLOW_COPY_AND_ASSIGN(KeyedLoadDictionaryElementPlatformStub); 1869 DISALLOW_COPY_AND_ASSIGN(KeyedLoadDictionaryElementPlatformStub);
1869 }; 1870 };
1870 1871
1871 1872
1873 class KeyedLoadGenericElementStub : public HydrogenCodeStub {
1874 public:
1875 KeyedLoadGenericElementStub() {}
1876
1877 virtual Handle<Code> GenerateCode(Isolate* isolate) V8_OVERRIDE;
1878
1879 virtual void InitializeInterfaceDescriptor(
1880 Isolate* isolate,
1881 CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE;
1882
1883 static void InstallDescriptors(Isolate* isolate);
1884
1885 virtual Code::Kind GetCodeKind() const { return Code::KEYED_LOAD_IC; }
1886 virtual InlineCacheState GetICState() { return MEGAMORPHIC; }
Toon Verwaest 2013/12/04 17:29:26 This should be GENERIC instead of MEGAMORPHIC.
danno 2014/06/06 15:43:50 Done.
1887
1888 private:
1889 Major MajorKey() { return KeyedLoadGeneric; }
1890 int NotMissMinorKey() { return 0; }
1891
1892 DISALLOW_COPY_AND_ASSIGN(KeyedLoadGenericElementStub);
1893 };
1894
1895
1872 class DoubleToIStub : public PlatformCodeStub { 1896 class DoubleToIStub : public PlatformCodeStub {
1873 public: 1897 public:
1874 DoubleToIStub(Register source, 1898 DoubleToIStub(Register source,
1875 Register destination, 1899 Register destination,
1876 int offset, 1900 int offset,
1877 bool is_truncating, 1901 bool is_truncating,
1878 bool skip_fastpath = false) : bit_field_(0) { 1902 bool skip_fastpath = false) : bit_field_(0) {
1879 bit_field_ = SourceRegisterBits::encode(source.code_) | 1903 bit_field_ = SourceRegisterBits::encode(source.code_) |
1880 DestinationRegisterBits::encode(destination.code_) | 1904 DestinationRegisterBits::encode(destination.code_) |
1881 OffsetBits::encode(offset) | 1905 OffsetBits::encode(offset) |
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
2512 int MinorKey() { return 0; } 2536 int MinorKey() { return 0; }
2513 2537
2514 void Generate(MacroAssembler* masm); 2538 void Generate(MacroAssembler* masm);
2515 2539
2516 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub); 2540 DISALLOW_COPY_AND_ASSIGN(ProfileEntryHookStub);
2517 }; 2541 };
2518 2542
2519 } } // namespace v8::internal 2543 } } // namespace v8::internal
2520 2544
2521 #endif // V8_CODE_STUBS_H_ 2545 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/code-stubs.cc » ('j') | src/code-stubs-hydrogen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698