src/share/vm/runtime/deoptimization.hpp

changeset 2620
4f148718983e
parent 2314
f95d63e2154a
child 2708
1d1603768966
     1.1 --- a/src/share/vm/runtime/deoptimization.hpp	Mon Mar 07 16:03:28 2011 -0500
     1.2 +++ b/src/share/vm/runtime/deoptimization.hpp	Thu Mar 10 17:44:32 2011 +0100
     1.3 @@ -136,12 +136,12 @@
     1.4      address*  _frame_pcs;                 // Array of frame pc's, in bytes, for unrolling the stack
     1.5      intptr_t* _register_block;            // Block for storing callee-saved registers.
     1.6      BasicType _return_type;               // Tells if we have to restore double or long return value
     1.7 +    intptr_t  _initial_fp;                // FP of the sender frame
     1.8      // The following fields are used as temps during the unpacking phase
     1.9      // (which is tight on registers, especially on x86). They really ought
    1.10      // to be PD variables but that involves moving this class into its own
    1.11      // file to use the pd include mechanism. Maybe in a later cleanup ...
    1.12      intptr_t  _counter_temp;              // SHOULD BE PD VARIABLE (x86 frame count temp)
    1.13 -    intptr_t  _initial_fp;                // SHOULD BE PD VARIABLE (x86/c2 initial ebp)
    1.14      intptr_t  _unpack_kind;               // SHOULD BE PD VARIABLE (x86 unpack kind)
    1.15      intptr_t  _sender_sp_temp;            // SHOULD BE PD VARIABLE (x86 sender_sp)
    1.16     public:
    1.17 @@ -165,6 +165,8 @@
    1.18      // Returns the total size of frames
    1.19      int size_of_frames() const;
    1.20  
    1.21 +    void set_initial_fp(intptr_t fp) { _initial_fp = fp; }
    1.22 +
    1.23      // Accessors used by the code generator for the unpack stub.
    1.24      static int size_of_deoptimized_frame_offset_in_bytes() { return offset_of(UnrollBlock, _size_of_deoptimized_frame); }
    1.25      static int caller_adjustment_offset_in_bytes()         { return offset_of(UnrollBlock, _caller_adjustment);         }

mercurial