Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/deoptimization.hpp @ 22717:ba7846fcb814
Fix ppc and x86_32 after fetch_unroll_info_helper changes
Changes in 3c1edc9c60d8 only included x86_64 and sparc.
This change also reuses the existing unpack_kind instead of a new
field in UnrollBlock.
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Mon, 02 Nov 2015 15:33:53 +0100 |
parents | 3c1edc9c60d8 |
children | 3ef45d0a6d77 |
comparison
equal
deleted
inserted
replaced
22716:f536aaa5a5d5 | 22717:ba7846fcb814 |
---|---|
171 intptr_t* _register_block; // Block for storing callee-saved registers. | 171 intptr_t* _register_block; // Block for storing callee-saved registers. |
172 BasicType _return_type; // Tells if we have to restore double or long return value | 172 BasicType _return_type; // Tells if we have to restore double or long return value |
173 intptr_t _initial_info; // Platform dependent data for the sender frame (was FP on x86) | 173 intptr_t _initial_info; // Platform dependent data for the sender frame (was FP on x86) |
174 int _caller_actual_parameters; // The number of actual arguments at the | 174 int _caller_actual_parameters; // The number of actual arguments at the |
175 // interpreted caller of the deoptimized frame | 175 // interpreted caller of the deoptimized frame |
176 int _exec_mode; // exec_mode that can be changed during fetch_unroll_info | 176 int _unpack_kind; // exec_mode that can be changed during fetch_unroll_info |
177 | 177 |
178 // The following fields are used as temps during the unpacking phase | 178 // The following fields are used as temps during the unpacking phase |
179 // (which is tight on registers, especially on x86). They really ought | 179 // (which is tight on registers, especially on x86). They really ought |
180 // to be PD variables but that involves moving this class into its own | 180 // to be PD variables but that involves moving this class into its own |
181 // file to use the pd include mechanism. Maybe in a later cleanup ... | 181 // file to use the pd include mechanism. Maybe in a later cleanup ... |
182 intptr_t _counter_temp; // SHOULD BE PD VARIABLE (x86 frame count temp) | 182 intptr_t _counter_temp; // SHOULD BE PD VARIABLE (x86 frame count temp) |
183 intptr_t _unpack_kind; // SHOULD BE PD VARIABLE (x86 unpack kind) | |
184 intptr_t _sender_sp_temp; // SHOULD BE PD VARIABLE (x86 sender_sp) | 183 intptr_t _sender_sp_temp; // SHOULD BE PD VARIABLE (x86 sender_sp) |
185 public: | 184 public: |
186 // Constructor | 185 // Constructor |
187 UnrollBlock(int size_of_deoptimized_frame, | 186 UnrollBlock(int size_of_deoptimized_frame, |
188 int caller_adjustment, | 187 int caller_adjustment, |
189 int caller_actual_parameters, | 188 int caller_actual_parameters, |
190 int number_of_frames, | 189 int number_of_frames, |
191 intptr_t* frame_sizes, | 190 intptr_t* frame_sizes, |
192 address* frames_pcs, | 191 address* frames_pcs, |
193 BasicType return_type, | 192 BasicType return_type, |
194 int exec_mode); | 193 int unpack_kind); |
195 ~UnrollBlock(); | 194 ~UnrollBlock(); |
196 | 195 |
197 // Returns where a register is located. | 196 // Returns where a register is located. |
198 intptr_t* value_addr_at(int register_number) const; | 197 intptr_t* value_addr_at(int register_number) const; |
199 | 198 |
200 // Accessors | 199 // Accessors |
201 intptr_t* frame_sizes() const { return _frame_sizes; } | 200 intptr_t* frame_sizes() const { return _frame_sizes; } |
202 int number_of_frames() const { return _number_of_frames; } | 201 int number_of_frames() const { return _number_of_frames; } |
203 address* frame_pcs() const { return _frame_pcs ; } | 202 address* frame_pcs() const { return _frame_pcs ; } |
204 int exec_mode() const { return _exec_mode ; } | 203 int unpack_kind() const { return _unpack_kind; } |
205 | 204 |
206 // Returns the total size of frames | 205 // Returns the total size of frames |
207 int size_of_frames() const; | 206 int size_of_frames() const; |
208 | 207 |
209 void set_initial_info(intptr_t info) { _initial_info = info; } | 208 void set_initial_info(intptr_t info) { _initial_info = info; } |
221 static int return_type_offset_in_bytes() { return offset_of(UnrollBlock, _return_type); } | 220 static int return_type_offset_in_bytes() { return offset_of(UnrollBlock, _return_type); } |
222 static int counter_temp_offset_in_bytes() { return offset_of(UnrollBlock, _counter_temp); } | 221 static int counter_temp_offset_in_bytes() { return offset_of(UnrollBlock, _counter_temp); } |
223 static int initial_info_offset_in_bytes() { return offset_of(UnrollBlock, _initial_info); } | 222 static int initial_info_offset_in_bytes() { return offset_of(UnrollBlock, _initial_info); } |
224 static int unpack_kind_offset_in_bytes() { return offset_of(UnrollBlock, _unpack_kind); } | 223 static int unpack_kind_offset_in_bytes() { return offset_of(UnrollBlock, _unpack_kind); } |
225 static int sender_sp_temp_offset_in_bytes() { return offset_of(UnrollBlock, _sender_sp_temp); } | 224 static int sender_sp_temp_offset_in_bytes() { return offset_of(UnrollBlock, _sender_sp_temp); } |
226 static int exec_mode_offset_in_bytes() { return offset_of(UnrollBlock, _exec_mode); } | |
227 | 225 |
228 BasicType return_type() const { return _return_type; } | 226 BasicType return_type() const { return _return_type; } |
229 void print(); | 227 void print(); |
230 }; | 228 }; |
231 | 229 |