| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 5501ca6cf291f479b5332fd5837e41f28a7d73d7..f11f547a12c507a109c77900597f5633ba37ac68 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -132,7 +132,8 @@ class TranslatedValue {
|
| Float32 float_value_;
|
| // kind is kDouble
|
| Float64 double_value_;
|
| - // kind is kDuplicatedObject or kArgumentsObject or kCapturedObject.
|
| + // kind is kDuplicatedObject or kArgumentsObject or
|
| + // kCapturedObject.
|
| MaterializedObjectInfo materialization_info_;
|
| };
|
|
|
| @@ -305,7 +306,7 @@ class TranslatedState {
|
|
|
| void Init(Address input_frame_pointer, TranslationIterator* iterator,
|
| FixedArray* literal_array, RegisterValues* registers,
|
| - FILE* trace_file);
|
| + FILE* trace_file, int parameter_count = 0);
|
|
|
| private:
|
| friend TranslatedValue;
|
| @@ -314,12 +315,13 @@ class TranslatedState {
|
| FixedArray* literal_array,
|
| Address fp,
|
| FILE* trace_file);
|
| - TranslatedValue CreateNextTranslatedValue(int frame_index, int value_index,
|
| - TranslationIterator* iterator,
|
| - FixedArray* literal_array,
|
| - Address fp,
|
| - RegisterValues* registers,
|
| - FILE* trace_file);
|
| + int CreateNextTranslatedValue(int frame_index, TranslationIterator* iterator,
|
| + FixedArray* literal_array, Address fp,
|
| + RegisterValues* registers,
|
| + Address input_frame_pointer, FILE* trace_file);
|
| + void CreateArgumentsElementsTranslatedValues(int frame_index,
|
| + Address input_frame_pointer,
|
| + int skip);
|
|
|
| void UpdateFromPreviouslyMaterializedObjects();
|
| Handle<Object> MaterializeAt(int frame_index, int* value_index);
|
| @@ -337,6 +339,7 @@ class TranslatedState {
|
| Isolate* isolate_;
|
| Address stack_frame_pointer_;
|
| bool has_adapted_arguments_;
|
| + int parameter_count_;
|
|
|
| struct ObjectPosition {
|
| int frame_index_;
|
| @@ -932,6 +935,7 @@ class TranslationIterator BASE_EMBEDDED {
|
| V(COMPILED_STUB_FRAME) \
|
| V(DUPLICATED_OBJECT) \
|
| V(ARGUMENTS_OBJECT) \
|
| + V(ARGUMENTS_ELEMENTS) \
|
| V(CAPTURED_OBJECT) \
|
| V(REGISTER) \
|
| V(INT32_REGISTER) \
|
| @@ -980,6 +984,7 @@ class Translation BASE_EMBEDDED {
|
| void BeginGetterStubFrame(int literal_id);
|
| void BeginSetterStubFrame(int literal_id);
|
| void BeginArgumentsObject(int args_length);
|
| + void ArgumentsElements(int skip);
|
| void BeginCapturedObject(int length);
|
| void DuplicateObject(int object_index);
|
| void StoreRegister(Register reg);
|
|
|