OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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_ |
OLD | NEW |