hotspot/src/share/vm/runtime/deoptimization.hpp
changeset 10539 f87cedf7983c
parent 9636 363ca5579aff
child 10547 ea4a2ec31ae2
equal deleted inserted replaced
10538:d6bf448fa3ad 10539:f87cedf7983c
   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();