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_; } |