| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 5ca635cff16f60b65d5cda69db6460b240edf691..5569f7ffd87d12baff93da0c5eb38a3d7b840d41 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -75,17 +75,17 @@ class HeapNumberMaterializationDescriptor BASE_EMBEDDED {
|
| };
|
|
|
|
|
| -class ObjectMaterializationDescriptor BASE_EMBEDDED {
|
| +class ArgumentsObjectMaterializationDescriptor BASE_EMBEDDED {
|
| public:
|
| - ObjectMaterializationDescriptor(Address slot_address, int length)
|
| - : slot_address_(slot_address), object_length_(length) { }
|
| + ArgumentsObjectMaterializationDescriptor(Address slot_address, int argc)
|
| + : slot_address_(slot_address), arguments_length_(argc) { }
|
|
|
| Address slot_address() const { return slot_address_; }
|
| - int object_length() const { return object_length_; }
|
| + int arguments_length() const { return arguments_length_; }
|
|
|
| private:
|
| Address slot_address_;
|
| - int object_length_;
|
| + int arguments_length_;
|
| };
|
|
|
|
|
| @@ -369,10 +369,6 @@ class Deoptimizer : public Malloced {
|
| void DoComputeCompiledStubFrame(TranslationIterator* iterator,
|
| int frame_index);
|
|
|
| - void DoTranslateObject(TranslationIterator* iterator,
|
| - int object_opcode,
|
| - int field_index);
|
| -
|
| enum DeoptimizerTranslatedValueType {
|
| TRANSLATED_VALUE_IS_NATIVE,
|
| TRANSLATED_VALUE_IS_TAGGED
|
| @@ -398,9 +394,8 @@ class Deoptimizer : public Malloced {
|
|
|
| Object* ComputeLiteral(int index) const;
|
|
|
| - void AddObjectStart(intptr_t slot_address, int argc);
|
| - void AddObjectTaggedValue(intptr_t value);
|
| - void AddObjectDoubleValue(double value);
|
| + void AddArgumentsObject(intptr_t slot_address, int argc);
|
| + void AddArgumentsObjectValue(intptr_t value);
|
| void AddDoubleValue(intptr_t slot_address, double value);
|
|
|
| static void GenerateDeoptimizationEntries(
|
| @@ -451,9 +446,8 @@ class Deoptimizer : public Malloced {
|
| // Array of output frame descriptions.
|
| FrameDescription** output_;
|
|
|
| - List<Object*> deferred_objects_tagged_values_;
|
| - List<double> deferred_objects_double_values_;
|
| - List<ObjectMaterializationDescriptor> deferred_objects_;
|
| + List<Object*> deferred_arguments_objects_values_;
|
| + List<ArgumentsObjectMaterializationDescriptor> deferred_arguments_objects_;
|
| List<HeapNumberMaterializationDescriptor> deferred_heap_numbers_;
|
| #ifdef DEBUG
|
| DisallowHeapAllocation* disallow_heap_allocation_;
|
| @@ -704,7 +698,6 @@ class Translation BASE_EMBEDDED {
|
| SETTER_STUB_FRAME,
|
| ARGUMENTS_ADAPTOR_FRAME,
|
| COMPILED_STUB_FRAME,
|
| - ARGUMENTS_OBJECT,
|
| REGISTER,
|
| INT32_REGISTER,
|
| UINT32_REGISTER,
|
| @@ -714,6 +707,7 @@ class Translation BASE_EMBEDDED {
|
| UINT32_STACK_SLOT,
|
| DOUBLE_STACK_SLOT,
|
| LITERAL,
|
| + ARGUMENTS_OBJECT,
|
|
|
| // A prefix indicating that the next command is a duplicate of the one
|
| // that follows it.
|
| @@ -739,7 +733,6 @@ class Translation BASE_EMBEDDED {
|
| void BeginConstructStubFrame(int literal_id, unsigned height);
|
| void BeginGetterStubFrame(int literal_id);
|
| void BeginSetterStubFrame(int literal_id);
|
| - void BeginArgumentsObject(int args_length);
|
| void StoreRegister(Register reg);
|
| void StoreInt32Register(Register reg);
|
| void StoreUint32Register(Register reg);
|
| @@ -749,6 +742,7 @@ class Translation BASE_EMBEDDED {
|
| void StoreUint32StackSlot(int index);
|
| void StoreDoubleStackSlot(int index);
|
| void StoreLiteral(int literal_id);
|
| + void StoreArgumentsObject(bool args_known, int args_index, int args_length);
|
| void MarkDuplicate();
|
|
|
| Zone* zone() const { return zone_; }
|
|
|