src/share/vm/runtime/deoptimization.hpp

changeset 2901
3d2ab563047a
parent 2877
bad7ecd0b6ed
child 3130
5432047c7db7
     1.1 --- a/src/share/vm/runtime/deoptimization.hpp	Mon May 09 19:45:52 2011 -0700
     1.2 +++ b/src/share/vm/runtime/deoptimization.hpp	Thu May 12 10:29:02 2011 -0700
     1.3 @@ -138,6 +138,9 @@
     1.4      intptr_t* _register_block;            // Block for storing callee-saved registers.
     1.5      BasicType _return_type;               // Tells if we have to restore double or long return value
     1.6      intptr_t  _initial_fp;                // FP of the sender frame
     1.7 +    int       _caller_actual_parameters;  // The number of actual arguments at the
     1.8 +                                          // interpreted caller of the deoptimized frame
     1.9 +
    1.10      // The following fields are used as temps during the unpacking phase
    1.11      // (which is tight on registers, especially on x86). They really ought
    1.12      // to be PD variables but that involves moving this class into its own
    1.13 @@ -149,6 +152,7 @@
    1.14      // Constructor
    1.15      UnrollBlock(int  size_of_deoptimized_frame,
    1.16                  int  caller_adjustment,
    1.17 +                int  caller_actual_parameters,
    1.18                  int  number_of_frames,
    1.19                  intptr_t* frame_sizes,
    1.20                  address* frames_pcs,
    1.21 @@ -168,6 +172,8 @@
    1.22  
    1.23      void set_initial_fp(intptr_t fp) { _initial_fp = fp; }
    1.24  
    1.25 +    int caller_actual_parameters() const { return _caller_actual_parameters; }
    1.26 +
    1.27      // Accessors used by the code generator for the unpack stub.
    1.28      static int size_of_deoptimized_frame_offset_in_bytes() { return offset_of(UnrollBlock, _size_of_deoptimized_frame); }
    1.29      static int caller_adjustment_offset_in_bytes()         { return offset_of(UnrollBlock, _caller_adjustment);         }

mercurial