135 int _total_frame_sizes; // Total of number*sizes frames |
135 int _total_frame_sizes; // Total of number*sizes frames |
136 intptr_t* _frame_sizes; // Array of frame sizes, in bytes, for unrolling the stack |
136 intptr_t* _frame_sizes; // Array of frame sizes, in bytes, for unrolling the stack |
137 address* _frame_pcs; // Array of frame pc's, in bytes, for unrolling the stack |
137 address* _frame_pcs; // Array of frame pc's, in bytes, for unrolling the stack |
138 intptr_t* _register_block; // Block for storing callee-saved registers. |
138 intptr_t* _register_block; // Block for storing callee-saved registers. |
139 BasicType _return_type; // Tells if we have to restore double or long return value |
139 BasicType _return_type; // Tells if we have to restore double or long return value |
140 intptr_t _initial_fp; // FP of the sender frame |
140 intptr_t _initial_info; // Platform dependent data for the sender frame (was FP on x86) |
141 int _caller_actual_parameters; // The number of actual arguments at the |
141 int _caller_actual_parameters; // The number of actual arguments at the |
142 // interpreted caller of the deoptimized frame |
142 // interpreted caller of the deoptimized frame |
143 |
143 |
144 // The following fields are used as temps during the unpacking phase |
144 // The following fields are used as temps during the unpacking phase |
145 // (which is tight on registers, especially on x86). They really ought |
145 // (which is tight on registers, especially on x86). They really ought |
168 address* frame_pcs() const { return _frame_pcs ; } |
168 address* frame_pcs() const { return _frame_pcs ; } |
169 |
169 |
170 // Returns the total size of frames |
170 // Returns the total size of frames |
171 int size_of_frames() const; |
171 int size_of_frames() const; |
172 |
172 |
173 void set_initial_fp(intptr_t fp) { _initial_fp = fp; } |
173 void set_initial_info(intptr_t info) { _initial_info = info; } |
174 |
174 |
175 int caller_actual_parameters() const { return _caller_actual_parameters; } |
175 int caller_actual_parameters() const { return _caller_actual_parameters; } |
176 |
176 |
177 // Accessors used by the code generator for the unpack stub. |
177 // Accessors used by the code generator for the unpack stub. |
178 static int size_of_deoptimized_frame_offset_in_bytes() { return offset_of(UnrollBlock, _size_of_deoptimized_frame); } |
178 static int size_of_deoptimized_frame_offset_in_bytes() { return offset_of(UnrollBlock, _size_of_deoptimized_frame); } |
182 static int total_frame_sizes_offset_in_bytes() { return offset_of(UnrollBlock, _total_frame_sizes); } |
182 static int total_frame_sizes_offset_in_bytes() { return offset_of(UnrollBlock, _total_frame_sizes); } |
183 static int frame_pcs_offset_in_bytes() { return offset_of(UnrollBlock, _frame_pcs); } |
183 static int frame_pcs_offset_in_bytes() { return offset_of(UnrollBlock, _frame_pcs); } |
184 static int register_block_offset_in_bytes() { return offset_of(UnrollBlock, _register_block); } |
184 static int register_block_offset_in_bytes() { return offset_of(UnrollBlock, _register_block); } |
185 static int return_type_offset_in_bytes() { return offset_of(UnrollBlock, _return_type); } |
185 static int return_type_offset_in_bytes() { return offset_of(UnrollBlock, _return_type); } |
186 static int counter_temp_offset_in_bytes() { return offset_of(UnrollBlock, _counter_temp); } |
186 static int counter_temp_offset_in_bytes() { return offset_of(UnrollBlock, _counter_temp); } |
187 static int initial_fp_offset_in_bytes() { return offset_of(UnrollBlock, _initial_fp); } |
187 static int initial_info_offset_in_bytes() { return offset_of(UnrollBlock, _initial_info); } |
188 static int unpack_kind_offset_in_bytes() { return offset_of(UnrollBlock, _unpack_kind); } |
188 static int unpack_kind_offset_in_bytes() { return offset_of(UnrollBlock, _unpack_kind); } |
189 static int sender_sp_temp_offset_in_bytes() { return offset_of(UnrollBlock, _sender_sp_temp); } |
189 static int sender_sp_temp_offset_in_bytes() { return offset_of(UnrollBlock, _sender_sp_temp); } |
190 |
190 |
191 BasicType return_type() const { return _return_type; } |
191 BasicType return_type() const { return _return_type; } |
192 void print(); |
192 void print(); |