comparison src/share/vm/runtime/deoptimization.hpp @ 3931:5432047c7db7

7087445: Improve platform independence of JSR292 shared code Summary: changes necessary for some JSR292 ports Reviewed-by: jrose, dholmes
author bdelsart
date Thu, 08 Sep 2011 10:12:25 +0200
parents 3d2ab563047a
children f6f3bb0ee072
comparison
equal deleted inserted replaced
3930:da6a29fb0da5 3931:5432047c7db7
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();