OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_DEOPTIMIZER_H_ | 5 #ifndef V8_DEOPTIMIZER_H_ |
6 #define V8_DEOPTIMIZER_H_ | 6 #define V8_DEOPTIMIZER_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/deoptimize-reason.h" | 9 #include "src/deoptimize-reason.h" |
10 #include "src/macro-assembler.h" | 10 #include "src/macro-assembler.h" |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 private: | 311 private: |
312 friend TranslatedValue; | 312 friend TranslatedValue; |
313 | 313 |
314 TranslatedFrame CreateNextTranslatedFrame(TranslationIterator* iterator, | 314 TranslatedFrame CreateNextTranslatedFrame(TranslationIterator* iterator, |
315 FixedArray* literal_array, | 315 FixedArray* literal_array, |
316 Address fp, | 316 Address fp, |
317 FILE* trace_file); | 317 FILE* trace_file); |
318 int CreateNextTranslatedValue(int frame_index, TranslationIterator* iterator, | 318 int CreateNextTranslatedValue(int frame_index, TranslationIterator* iterator, |
319 FixedArray* literal_array, Address fp, | 319 FixedArray* literal_array, Address fp, |
320 RegisterValues* registers, FILE* trace_file); | 320 RegisterValues* registers, FILE* trace_file); |
| 321 Address ComputeArgumentsPosition(Address input_frame_pointer, bool is_rest, |
| 322 int* length); |
321 void CreateArgumentsElementsTranslatedValues(int frame_index, | 323 void CreateArgumentsElementsTranslatedValues(int frame_index, |
322 Address input_frame_pointer, | 324 Address input_frame_pointer, |
323 bool is_rest); | 325 bool is_rest); |
324 | 326 |
325 void UpdateFromPreviouslyMaterializedObjects(); | 327 void UpdateFromPreviouslyMaterializedObjects(); |
326 Handle<Object> MaterializeAt(int frame_index, int* value_index); | 328 Handle<Object> MaterializeAt(int frame_index, int* value_index); |
327 Handle<Object> MaterializeObjectAt(int object_index); | 329 Handle<Object> MaterializeObjectAt(int object_index); |
328 class CapturedObjectMaterializer; | 330 class CapturedObjectMaterializer; |
329 Handle<Object> MaterializeCapturedObjectAt(TranslatedValue* slot, | 331 Handle<Object> MaterializeCapturedObjectAt(TranslatedValue* slot, |
330 int frame_index, int* value_index); | 332 int frame_index, int* value_index); |
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 V(INTERPRETED_FRAME) \ | 930 V(INTERPRETED_FRAME) \ |
929 V(CONSTRUCT_STUB_FRAME) \ | 931 V(CONSTRUCT_STUB_FRAME) \ |
930 V(GETTER_STUB_FRAME) \ | 932 V(GETTER_STUB_FRAME) \ |
931 V(SETTER_STUB_FRAME) \ | 933 V(SETTER_STUB_FRAME) \ |
932 V(ARGUMENTS_ADAPTOR_FRAME) \ | 934 V(ARGUMENTS_ADAPTOR_FRAME) \ |
933 V(TAIL_CALLER_FRAME) \ | 935 V(TAIL_CALLER_FRAME) \ |
934 V(COMPILED_STUB_FRAME) \ | 936 V(COMPILED_STUB_FRAME) \ |
935 V(DUPLICATED_OBJECT) \ | 937 V(DUPLICATED_OBJECT) \ |
936 V(ARGUMENTS_OBJECT) \ | 938 V(ARGUMENTS_OBJECT) \ |
937 V(ARGUMENTS_ELEMENTS) \ | 939 V(ARGUMENTS_ELEMENTS) \ |
| 940 V(ARGUMENTS_LENGTH) \ |
938 V(CAPTURED_OBJECT) \ | 941 V(CAPTURED_OBJECT) \ |
939 V(REGISTER) \ | 942 V(REGISTER) \ |
940 V(INT32_REGISTER) \ | 943 V(INT32_REGISTER) \ |
941 V(UINT32_REGISTER) \ | 944 V(UINT32_REGISTER) \ |
942 V(BOOL_REGISTER) \ | 945 V(BOOL_REGISTER) \ |
943 V(FLOAT_REGISTER) \ | 946 V(FLOAT_REGISTER) \ |
944 V(DOUBLE_REGISTER) \ | 947 V(DOUBLE_REGISTER) \ |
945 V(STACK_SLOT) \ | 948 V(STACK_SLOT) \ |
946 V(INT32_STACK_SLOT) \ | 949 V(INT32_STACK_SLOT) \ |
947 V(UINT32_STACK_SLOT) \ | 950 V(UINT32_STACK_SLOT) \ |
(...skipping 29 matching lines...) Expand all Loading... |
977 unsigned height); | 980 unsigned height); |
978 void BeginCompiledStubFrame(int height); | 981 void BeginCompiledStubFrame(int height); |
979 void BeginArgumentsAdaptorFrame(int literal_id, unsigned height); | 982 void BeginArgumentsAdaptorFrame(int literal_id, unsigned height); |
980 void BeginTailCallerFrame(int literal_id); | 983 void BeginTailCallerFrame(int literal_id); |
981 void BeginConstructStubFrame(BailoutId bailout_id, int literal_id, | 984 void BeginConstructStubFrame(BailoutId bailout_id, int literal_id, |
982 unsigned height); | 985 unsigned height); |
983 void BeginGetterStubFrame(int literal_id); | 986 void BeginGetterStubFrame(int literal_id); |
984 void BeginSetterStubFrame(int literal_id); | 987 void BeginSetterStubFrame(int literal_id); |
985 void BeginArgumentsObject(int args_length); | 988 void BeginArgumentsObject(int args_length); |
986 void ArgumentsElements(bool is_rest); | 989 void ArgumentsElements(bool is_rest); |
| 990 void ArgumentsLength(bool is_rest); |
987 void BeginCapturedObject(int length); | 991 void BeginCapturedObject(int length); |
988 void DuplicateObject(int object_index); | 992 void DuplicateObject(int object_index); |
989 void StoreRegister(Register reg); | 993 void StoreRegister(Register reg); |
990 void StoreInt32Register(Register reg); | 994 void StoreInt32Register(Register reg); |
991 void StoreUint32Register(Register reg); | 995 void StoreUint32Register(Register reg); |
992 void StoreBoolRegister(Register reg); | 996 void StoreBoolRegister(Register reg); |
993 void StoreFloatRegister(FloatRegister reg); | 997 void StoreFloatRegister(FloatRegister reg); |
994 void StoreDoubleRegister(DoubleRegister reg); | 998 void StoreDoubleRegister(DoubleRegister reg); |
995 void StoreStackSlot(int index); | 999 void StoreStackSlot(int index); |
996 void StoreInt32StackSlot(int index); | 1000 void StoreInt32StackSlot(int index); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1103 std::vector<Handle<Object> > expression_stack_; | 1107 std::vector<Handle<Object> > expression_stack_; |
1104 int source_position_; | 1108 int source_position_; |
1105 | 1109 |
1106 friend class Deoptimizer; | 1110 friend class Deoptimizer; |
1107 }; | 1111 }; |
1108 | 1112 |
1109 } // namespace internal | 1113 } // namespace internal |
1110 } // namespace v8 | 1114 } // namespace v8 |
1111 | 1115 |
1112 #endif // V8_DEOPTIMIZER_H_ | 1116 #endif // V8_DEOPTIMIZER_H_ |
OLD | NEW |