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 6803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6814 | 6814 |
6815 | 6815 |
6816 template<class T> | 6816 template<class T> |
6817 static void ArrayConstructorStubAheadOfTimeHelper(Isolate* isolate) { | 6817 static void ArrayConstructorStubAheadOfTimeHelper(Isolate* isolate) { |
6818 int to_index = GetSequenceIndexFromFastElementsKind( | 6818 int to_index = GetSequenceIndexFromFastElementsKind( |
6819 TERMINAL_FAST_ELEMENTS_KIND); | 6819 TERMINAL_FAST_ELEMENTS_KIND); |
6820 for (int i = 0; i <= to_index; ++i) { | 6820 for (int i = 0; i <= to_index; ++i) { |
6821 ElementsKind kind = GetFastElementsKindFromSequenceIndex(i); | 6821 ElementsKind kind = GetFastElementsKindFromSequenceIndex(i); |
6822 T stub(kind); | 6822 T stub(kind); |
6823 stub.GetCode(isolate)->set_is_pregenerated(true); | 6823 stub.GetCode(isolate)->set_is_pregenerated(true); |
| 6824 if (AllocationSiteInfo::GetMode(kind) != DONT_TRACK_ALLOCATION_SITE) { |
| 6825 T stub1(kind, true); |
| 6826 stub1.GetCode(isolate)->set_is_pregenerated(true); |
| 6827 } |
6824 } | 6828 } |
6825 } | 6829 } |
6826 | 6830 |
6827 | 6831 |
6828 void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) { | 6832 void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) { |
6829 ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>( | 6833 ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>( |
6830 isolate); | 6834 isolate); |
6831 ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>( | 6835 ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>( |
6832 isolate); | 6836 isolate); |
6833 ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>( | 6837 ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>( |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6920 __ jmp(generic_construct_stub, RelocInfo::CODE_TARGET); | 6924 __ jmp(generic_construct_stub, RelocInfo::CODE_TARGET); |
6921 } | 6925 } |
6922 } | 6926 } |
6923 | 6927 |
6924 | 6928 |
6925 #undef __ | 6929 #undef __ |
6926 | 6930 |
6927 } } // namespace v8::internal | 6931 } } // namespace v8::internal |
6928 | 6932 |
6929 #endif // V8_TARGET_ARCH_X64 | 6933 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |