diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc index 7afede3e5a..d63bc65f34 100644 --- a/src/arm/code-stubs-arm.cc +++ b/src/arm/code-stubs-arm.cc @@ -697,8 +697,8 @@ void WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime( Isolate* isolate) { WriteInt32ToHeapNumberStub stub1(r1, r0, r2); WriteInt32ToHeapNumberStub stub2(r2, r0, r3); - stub1.GetCode(isolate)->set_is_pregenerated(true); - stub2.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); + stub2.GetCode(isolate); } @@ -1685,16 +1685,13 @@ void CodeStub::GenerateFPStubs(Isolate* isolate) { if (!stub.FindCodeInCache(&store_buffer_overflow_code, isolate)) { store_buffer_overflow_code = *stub.GetCode(isolate); } - save_doubles_code->set_is_pregenerated(true); - store_buffer_overflow_code->set_is_pregenerated(true); isolate->set_fp_stubs_generated(true); } void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { CEntryStub stub(1, kDontSaveFPRegs); - Handle code = stub.GetCode(isolate); - code->set_is_pregenerated(true); + stub.GetCode(isolate); } @@ -5328,10 +5325,10 @@ void NameDictionaryLookupStub::Generate(MacroAssembler* masm) { void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( Isolate* isolate) { StoreBufferOverflowStub stub1(kDontSaveFPRegs); - stub1.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); // Hydrogen code stubs need stub2 at snapshot time. StoreBufferOverflowStub stub2(kSaveFPRegs); - stub2.GetCode(isolate)->set_is_pregenerated(true); + stub2.GetCode(isolate); } @@ -5832,12 +5829,12 @@ static void ArrayConstructorStubAheadOfTimeHelper(Isolate* isolate) { for (int i = 0; i <= to_index; ++i) { ElementsKind kind = GetFastElementsKindFromSequenceIndex(i); T stub(kind); - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); if (AllocationSite::GetMode(kind) != DONT_TRACK_ALLOCATION_SITE || (!FLAG_track_allocation_sites && (kind == initial_kind || kind == initial_holey_kind))) { T stub1(kind, CONTEXT_CHECK_REQUIRED, DISABLE_ALLOCATION_SITES); - stub1.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); } } } @@ -5859,11 +5856,11 @@ void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime( for (int i = 0; i < 2; i++) { // For internal arrays we only need a few things InternalArrayNoArgumentConstructorStub stubh1(kinds[i]); - stubh1.GetCode(isolate)->set_is_pregenerated(true); + stubh1.GetCode(isolate); InternalArraySingleArgumentConstructorStub stubh2(kinds[i]); - stubh2.GetCode(isolate)->set_is_pregenerated(true); + stubh2.GetCode(isolate); InternalArrayNArgumentsConstructorStub stubh3(kinds[i]); - stubh3.GetCode(isolate)->set_is_pregenerated(true); + stubh3.GetCode(isolate); } } diff --git a/src/code-stubs.cc b/src/code-stubs.cc index 01f3f8ce1b..3f26e3fa71 100644 --- a/src/code-stubs.cc +++ b/src/code-stubs.cc @@ -974,7 +974,7 @@ void KeyedLoadDictionaryElementPlatformStub::Generate( void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) { CreateAllocationSiteStub stub; - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); } @@ -1113,14 +1113,14 @@ bool ToBooleanStub::Types::CanBeUndetectable() const { void StubFailureTrampolineStub::GenerateAheadOfTime(Isolate* isolate) { StubFailureTrampolineStub stub1(NOT_JS_FUNCTION_STUB_MODE); StubFailureTrampolineStub stub2(JS_FUNCTION_STUB_MODE); - stub1.GetCode(isolate)->set_is_pregenerated(true); - stub2.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); + stub2.GetCode(isolate); } void StubFailureTailCallTrampolineStub::GenerateAheadOfTime(Isolate* isolate) { StubFailureTailCallTrampolineStub stub; - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); } diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc index 8ce5fdd78b..f0dcf7168a 100644 --- a/src/ia32/code-stubs-ia32.cc +++ b/src/ia32/code-stubs-ia32.cc @@ -2977,7 +2977,6 @@ void CodeStub::GenerateFPStubs(Isolate* isolate) { if (!save_doubles.FindCodeInCache(&save_doubles_code, isolate)) { save_doubles_code = *(save_doubles.GetCode(isolate)); } - save_doubles_code->set_is_pregenerated(true); isolate->set_fp_stubs_generated(true); } } @@ -2985,8 +2984,7 @@ void CodeStub::GenerateFPStubs(Isolate* isolate) { void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { CEntryStub stub(1, kDontSaveFPRegs); - Handle code = stub.GetCode(isolate); - code->set_is_pregenerated(true); + stub.GetCode(isolate); } @@ -5283,10 +5281,10 @@ void NameDictionaryLookupStub::Generate(MacroAssembler* masm) { void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( Isolate* isolate) { StoreBufferOverflowStub stub(kDontSaveFPRegs); - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); if (CpuFeatures::IsSafeForSnapshot(SSE2)) { StoreBufferOverflowStub stub2(kSaveFPRegs); - stub2.GetCode(isolate)->set_is_pregenerated(true); + stub2.GetCode(isolate); } } @@ -5777,12 +5775,12 @@ static void ArrayConstructorStubAheadOfTimeHelper(Isolate* isolate) { for (int i = 0; i <= to_index; ++i) { ElementsKind kind = GetFastElementsKindFromSequenceIndex(i); T stub(kind); - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); if (AllocationSite::GetMode(kind) != DONT_TRACK_ALLOCATION_SITE || (!FLAG_track_allocation_sites && (kind == initial_kind || kind == initial_holey_kind))) { T stub1(kind, CONTEXT_CHECK_REQUIRED, DISABLE_ALLOCATION_SITES); - stub1.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); } } } @@ -5804,11 +5802,11 @@ void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime( for (int i = 0; i < 2; i++) { // For internal arrays we only need a few things InternalArrayNoArgumentConstructorStub stubh1(kinds[i]); - stubh1.GetCode(isolate)->set_is_pregenerated(true); + stubh1.GetCode(isolate); InternalArraySingleArgumentConstructorStub stubh2(kinds[i]); - stubh2.GetCode(isolate)->set_is_pregenerated(true); + stubh2.GetCode(isolate); InternalArrayNArgumentsConstructorStub stubh3(kinds[i]); - stubh3.GetCode(isolate)->set_is_pregenerated(true); + stubh3.GetCode(isolate); } } diff --git a/src/objects-inl.h b/src/objects-inl.h index ee81c2fcbd..1717a5f4b5 100644 --- a/src/objects-inl.h +++ b/src/objects-inl.h @@ -3959,19 +3959,6 @@ bool Code::has_major_key() { } -bool Code::is_pregenerated() { - return (kind() == STUB && IsPregeneratedField::decode(flags())); -} - - -void Code::set_is_pregenerated(bool value) { - ASSERT(kind() == STUB); - Flags f = flags(); - f = static_cast(IsPregeneratedField::update(f, value)); - set_flags(f); -} - - bool Code::optimizable() { ASSERT_EQ(FUNCTION, kind()); return READ_BYTE_FIELD(this, kOptimizableOffset) == 1; diff --git a/src/objects.h b/src/objects.h index db92ecba80..bbdefc14a5 100644 --- a/src/objects.h +++ b/src/objects.h @@ -5159,11 +5159,6 @@ class Code: public HeapObject { bool is_crankshafted(); inline void set_is_crankshafted(bool value); - // For stubs, tells whether they should always exist, so that they can be - // called from other stubs. - inline bool is_pregenerated(); - inline void set_is_pregenerated(bool value); - // [optimizable]: For FUNCTION kind, tells if it is optimizable. inline bool optimizable(); inline void set_optimizable(bool value); @@ -5451,7 +5446,7 @@ class Code: public HeapObject { class TypeField: public BitField {}; class CacheHolderField: public BitField {}; class KindField: public BitField {}; - class IsPregeneratedField: public BitField {}; + // TODO(bmeurer): Bit 10 is available for free use. :-) class ExtraICStateField: public BitField {}; class ExtendedExtraICStateField: public BitField {}; // NOLINT diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc index fbc2f111c1..6f35a210c6 100644 --- a/src/x64/code-stubs-x64.cc +++ b/src/x64/code-stubs-x64.cc @@ -2798,9 +2798,9 @@ void CodeStub::GenerateFPStubs(Isolate* isolate) { void CEntryStub::GenerateAheadOfTime(Isolate* isolate) { CEntryStub stub(1, kDontSaveFPRegs); - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); CEntryStub save_doubles(1, kSaveFPRegs); - save_doubles.GetCode(isolate)->set_is_pregenerated(true); + save_doubles.GetCode(isolate); } @@ -5078,9 +5078,9 @@ void NameDictionaryLookupStub::Generate(MacroAssembler* masm) { void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime( Isolate* isolate) { StoreBufferOverflowStub stub1(kDontSaveFPRegs); - stub1.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); StoreBufferOverflowStub stub2(kSaveFPRegs); - stub2.GetCode(isolate)->set_is_pregenerated(true); + stub2.GetCode(isolate); } @@ -5574,12 +5574,12 @@ static void ArrayConstructorStubAheadOfTimeHelper(Isolate* isolate) { for (int i = 0; i <= to_index; ++i) { ElementsKind kind = GetFastElementsKindFromSequenceIndex(i); T stub(kind); - stub.GetCode(isolate)->set_is_pregenerated(true); + stub.GetCode(isolate); if (AllocationSite::GetMode(kind) != DONT_TRACK_ALLOCATION_SITE || (!FLAG_track_allocation_sites && (kind == initial_kind || kind == initial_holey_kind))) { T stub1(kind, CONTEXT_CHECK_REQUIRED, DISABLE_ALLOCATION_SITES); - stub1.GetCode(isolate)->set_is_pregenerated(true); + stub1.GetCode(isolate); } } } @@ -5601,11 +5601,11 @@ void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime( for (int i = 0; i < 2; i++) { // For internal arrays we only need a few things InternalArrayNoArgumentConstructorStub stubh1(kinds[i]); - stubh1.GetCode(isolate)->set_is_pregenerated(true); + stubh1.GetCode(isolate); InternalArraySingleArgumentConstructorStub stubh2(kinds[i]); - stubh2.GetCode(isolate)->set_is_pregenerated(true); + stubh2.GetCode(isolate); InternalArrayNArgumentsConstructorStub stubh3(kinds[i]); - stubh3.GetCode(isolate)->set_is_pregenerated(true); + stubh3.GetCode(isolate); } }