hotspot/src/share/vm/code/pcDesc.hpp
changeset 3686 69c1b5228547
parent 1 489c9b5090e2
child 4017 0cb087a2b9a9
equal deleted inserted replaced
3685:e14965d942e3 3686:69c1b5228547
     1 /*
     1 /*
     2  * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    32  private:
    32  private:
    33   int _pc_offset;           // offset from start of nmethod
    33   int _pc_offset;           // offset from start of nmethod
    34   int _scope_decode_offset; // offset for scope in nmethod
    34   int _scope_decode_offset; // offset for scope in nmethod
    35   int _obj_decode_offset;
    35   int _obj_decode_offset;
    36 
    36 
       
    37   union PcDescFlags {
       
    38     int word;
       
    39     struct {
       
    40       unsigned int reexecute: 1;
       
    41     } bits;
       
    42   } _flags;
       
    43 
    37  public:
    44  public:
    38   int pc_offset() const           { return _pc_offset;   }
    45   int pc_offset() const           { return _pc_offset;   }
    39   int scope_decode_offset() const { return _scope_decode_offset; }
    46   int scope_decode_offset() const { return _scope_decode_offset; }
    40   int obj_decode_offset() const   { return _obj_decode_offset; }
    47   int obj_decode_offset() const   { return _obj_decode_offset; }
    41 
    48 
    51     // upper and lower exclusive limits real offsets:
    58     // upper and lower exclusive limits real offsets:
    52     lower_offset_limit = -1,
    59     lower_offset_limit = -1,
    53     upper_offset_limit = (unsigned int)-1 >> 1
    60     upper_offset_limit = (unsigned int)-1 >> 1
    54   };
    61   };
    55 
    62 
       
    63   // Flags
       
    64   bool     should_reexecute()              const { return _flags.bits.reexecute; }
       
    65   void set_should_reexecute(bool z)              { _flags.bits.reexecute = z;    }
       
    66 
    56   // Returns the real pc
    67   // Returns the real pc
    57   address real_pc(const nmethod* code) const;
    68   address real_pc(const nmethod* code) const;
    58 
    69 
    59   void print(nmethod* code);
    70   void print(nmethod* code);
    60   bool verify(nmethod* code);
    71   bool verify(nmethod* code);