diff options
Diffstat (limited to 'chromium/v8/src/deoptimizer.h')
-rw-r--r-- | chromium/v8/src/deoptimizer.h | 57 |
1 files changed, 4 insertions, 53 deletions
diff --git a/chromium/v8/src/deoptimizer.h b/chromium/v8/src/deoptimizer.h index b6e4667a20d..7ad1ab0b2e7 100644 --- a/chromium/v8/src/deoptimizer.h +++ b/chromium/v8/src/deoptimizer.h @@ -77,31 +77,15 @@ class HeapNumberMaterializationDescriptor BASE_EMBEDDED { class ObjectMaterializationDescriptor BASE_EMBEDDED { public: - ObjectMaterializationDescriptor( - Address slot_address, int frame, int length, int duplicate, bool is_args) - : slot_address_(slot_address), - jsframe_index_(frame), - object_length_(length), - duplicate_object_(duplicate), - is_arguments_(is_args) { } + ObjectMaterializationDescriptor(Address slot_address, int length) + : slot_address_(slot_address), object_length_(length) { } Address slot_address() const { return slot_address_; } - int jsframe_index() const { return jsframe_index_; } int object_length() const { return object_length_; } - int duplicate_object() const { return duplicate_object_; } - bool is_arguments() const { return is_arguments_; } - - // Only used for allocated receivers in DoComputeConstructStubFrame. - void patch_slot_address(intptr_t slot) { - slot_address_ = reinterpret_cast<Address>(slot); - } private: Address slot_address_; - int jsframe_index_; int object_length_; - int duplicate_object_; - bool is_arguments_; }; @@ -388,7 +372,7 @@ class Deoptimizer : public Malloced { int frame_index); void DoTranslateObject(TranslationIterator* iterator, - int object_index, + int object_opcode, int field_index); enum DeoptimizerTranslatedValueType { @@ -416,28 +400,11 @@ class Deoptimizer : public Malloced { Object* ComputeLiteral(int index) const; - void AddObjectStart(intptr_t slot_address, int argc, bool is_arguments); - void AddObjectDuplication(intptr_t slot, int object_index); + void AddObjectStart(intptr_t slot_address, int argc); void AddObjectTaggedValue(intptr_t value); void AddObjectDoubleValue(double value); void AddDoubleValue(intptr_t slot_address, double value); - bool ArgumentsObjectIsAdapted(int object_index) { - ObjectMaterializationDescriptor desc = deferred_objects_.at(object_index); - int reverse_jsframe_index = jsframe_count_ - desc.jsframe_index() - 1; - return jsframe_has_adapted_arguments_[reverse_jsframe_index]; - } - - Handle<JSFunction> ArgumentsObjectFunction(int object_index) { - ObjectMaterializationDescriptor desc = deferred_objects_.at(object_index); - int reverse_jsframe_index = jsframe_count_ - desc.jsframe_index() - 1; - return jsframe_functions_[reverse_jsframe_index]; - } - - // Helper function for heap object materialization. - Handle<Object> MaterializeNextHeapObject(); - Handle<Object> MaterializeNextValue(); - static void GenerateDeoptimizationEntries( MacroAssembler* masm, int count, BailoutType type); @@ -488,22 +455,10 @@ class Deoptimizer : public Malloced { // Array of output frame descriptions. FrameDescription** output_; - // Deferred values to be materialized. List<Object*> deferred_objects_tagged_values_; List<double> deferred_objects_double_values_; List<ObjectMaterializationDescriptor> deferred_objects_; List<HeapNumberMaterializationDescriptor> deferred_heap_numbers_; - - // Output frame information. Only used during heap object materialization. - List<Handle<JSFunction> > jsframe_functions_; - List<bool> jsframe_has_adapted_arguments_; - - // Materialized objects. Only used during heap object materialization. - List<Handle<Object> >* materialized_values_; - List<Handle<Object> >* materialized_objects_; - int materialization_value_index_; - int materialization_object_index_; - #ifdef DEBUG DisallowHeapAllocation* disallow_heap_allocation_; #endif // DEBUG @@ -757,9 +712,7 @@ class Translation BASE_EMBEDDED { SETTER_STUB_FRAME, ARGUMENTS_ADAPTOR_FRAME, COMPILED_STUB_FRAME, - DUPLICATED_OBJECT, ARGUMENTS_OBJECT, - CAPTURED_OBJECT, REGISTER, INT32_REGISTER, UINT32_REGISTER, @@ -791,8 +744,6 @@ class Translation BASE_EMBEDDED { void BeginGetterStubFrame(int literal_id); void BeginSetterStubFrame(int literal_id); void BeginArgumentsObject(int args_length); - void BeginCapturedObject(int length); - void DuplicateObject(int object_index); void StoreRegister(Register reg); void StoreInt32Register(Register reg); void StoreUint32Register(Register reg); |