| 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/macro-assembler.h" |     9 #include "src/macro-assembler.h" | 
|    10  |    10  | 
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   530                            BailoutId node_id, |   530                            BailoutId node_id, | 
|   531                            SharedFunctionInfo* shared); |   531                            SharedFunctionInfo* shared); | 
|   532  |   532  | 
|   533   // Code generation support. |   533   // Code generation support. | 
|   534   static int input_offset() { return OFFSET_OF(Deoptimizer, input_); } |   534   static int input_offset() { return OFFSET_OF(Deoptimizer, input_); } | 
|   535   static int output_count_offset() { |   535   static int output_count_offset() { | 
|   536     return OFFSET_OF(Deoptimizer, output_count_); |   536     return OFFSET_OF(Deoptimizer, output_count_); | 
|   537   } |   537   } | 
|   538   static int output_offset() { return OFFSET_OF(Deoptimizer, output_); } |   538   static int output_offset() { return OFFSET_OF(Deoptimizer, output_); } | 
|   539  |   539  | 
|   540   static int has_alignment_padding_offset() { |  | 
|   541     return OFFSET_OF(Deoptimizer, has_alignment_padding_); |  | 
|   542   } |  | 
|   543  |  | 
|   544   static int GetDeoptimizedCodeCount(Isolate* isolate); |   540   static int GetDeoptimizedCodeCount(Isolate* isolate); | 
|   545  |   541  | 
|   546   static const int kNotDeoptimizationEntry = -1; |   542   static const int kNotDeoptimizationEntry = -1; | 
|   547  |   543  | 
|   548   // Generators for the deoptimization entry code. |   544   // Generators for the deoptimization entry code. | 
|   549   class TableEntryGenerator BASE_EMBEDDED { |   545   class TableEntryGenerator BASE_EMBEDDED { | 
|   550    public: |   546    public: | 
|   551     TableEntryGenerator(MacroAssembler* masm, BailoutType type, int count) |   547     TableEntryGenerator(MacroAssembler* masm, BailoutType type, int count) | 
|   552         : masm_(masm), type_(type), count_(count) {} |   548         : masm_(masm), type_(type), count_(count) {} | 
|   553  |   549  | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   644  |   640  | 
|   645   // Fill the given output frame's registers to contain the failure handler |   641   // Fill the given output frame's registers to contain the failure handler | 
|   646   // address and the number of parameters for a stub failure trampoline. |   642   // address and the number of parameters for a stub failure trampoline. | 
|   647   void SetPlatformCompiledStubRegisters(FrameDescription* output_frame, |   643   void SetPlatformCompiledStubRegisters(FrameDescription* output_frame, | 
|   648                                         CodeStubDescriptor* desc); |   644                                         CodeStubDescriptor* desc); | 
|   649  |   645  | 
|   650   // Fill the given output frame's double registers with the original values |   646   // Fill the given output frame's double registers with the original values | 
|   651   // from the input frame's double registers. |   647   // from the input frame's double registers. | 
|   652   void CopyDoubleRegisters(FrameDescription* output_frame); |   648   void CopyDoubleRegisters(FrameDescription* output_frame); | 
|   653  |   649  | 
|   654   // Determines whether the input frame contains alignment padding by looking |  | 
|   655   // at the dynamic alignment state slot inside the frame. |  | 
|   656   bool HasAlignmentPadding(SharedFunctionInfo* shared); |  | 
|   657  |  | 
|   658   Isolate* isolate_; |   650   Isolate* isolate_; | 
|   659   JSFunction* function_; |   651   JSFunction* function_; | 
|   660   Code* compiled_code_; |   652   Code* compiled_code_; | 
|   661   unsigned bailout_id_; |   653   unsigned bailout_id_; | 
|   662   BailoutType bailout_type_; |   654   BailoutType bailout_type_; | 
|   663   Address from_; |   655   Address from_; | 
|   664   int fp_to_sp_delta_; |   656   int fp_to_sp_delta_; | 
|   665   int has_alignment_padding_; |  | 
|   666   bool deoptimizing_throw_; |   657   bool deoptimizing_throw_; | 
|   667   int catch_handler_data_; |   658   int catch_handler_data_; | 
|   668   int catch_handler_pc_offset_; |   659   int catch_handler_pc_offset_; | 
|   669  |   660  | 
|   670   // Input frame description. |   661   // Input frame description. | 
|   671   FrameDescription* input_; |   662   FrameDescription* input_; | 
|   672   // Number of output frames. |   663   // Number of output frames. | 
|   673   int output_count_; |   664   int output_count_; | 
|   674   // Number of output js frames. |   665   // Number of output js frames. | 
|   675   int jsframe_count_; |   666   int jsframe_count_; | 
| (...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1108   std::vector<Handle<Object> > expression_stack_; |  1099   std::vector<Handle<Object> > expression_stack_; | 
|  1109   int source_position_; |  1100   int source_position_; | 
|  1110  |  1101  | 
|  1111   friend class Deoptimizer; |  1102   friend class Deoptimizer; | 
|  1112 }; |  1103 }; | 
|  1113  |  1104  | 
|  1114 }  // namespace internal |  1105 }  // namespace internal | 
|  1115 }  // namespace v8 |  1106 }  // namespace v8 | 
|  1116  |  1107  | 
|  1117 #endif  // V8_DEOPTIMIZER_H_ |  1108 #endif  // V8_DEOPTIMIZER_H_ | 
| OLD | NEW |