comparison src/share/vm/code/nmethod.hpp @ 13451:02f27ecb4f3a

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 18 Dec 2013 00:00:24 +0100
parents ec3e4f35e466 df832bd8edb9
children 5a9afbf72714
comparison
equal deleted inserted replaced
13371:4db09b7304da 13451:02f27ecb4f3a
190 190
191 #ifdef ASSERT 191 #ifdef ASSERT
192 bool _oops_are_stale; // indicates that it's no longer safe to access oops section 192 bool _oops_are_stale; // indicates that it's no longer safe to access oops section
193 #endif 193 #endif
194 194
195 enum { alive = 0, 195 enum { in_use = 0, // executable nmethod
196 not_entrant = 1, // uncommon trap has happened but activations may still exist 196 not_entrant = 1, // marked for deoptimization but activations may still exist,
197 zombie = 2, 197 // will be transformed to zombie when all activations are gone
198 unloaded = 3 }; 198 zombie = 2, // no activations exist, nmethod is ready for purge
199 199 unloaded = 3 }; // there should be no activations, should not be called,
200 // will be transformed to zombie immediately
200 201
201 jbyte _scavenge_root_state; 202 jbyte _scavenge_root_state;
202 203
203 // Nmethod Flushing lock. If non-zero, then the nmethod is not removed 204 // Nmethod Flushing lock. If non-zero, then the nmethod is not removed
204 // and is not made into a zombie. However, once the nmethod is made into 205 // and is not made into a zombie. However, once the nmethod is made into
428 // entry points 429 // entry points
429 address entry_point() const { return _entry_point; } // normal entry point 430 address entry_point() const { return _entry_point; } // normal entry point
430 address verified_entry_point() const { return _verified_entry_point; } // if klass is correct 431 address verified_entry_point() const { return _verified_entry_point; } // if klass is correct
431 432
432 // flag accessing and manipulation 433 // flag accessing and manipulation
433 bool is_in_use() const { return _state == alive; } 434 bool is_in_use() const { return _state == in_use; }
434 bool is_alive() const { return _state == alive || _state == not_entrant; } 435 bool is_alive() const { return _state == in_use || _state == not_entrant; }
435 bool is_not_entrant() const { return _state == not_entrant; } 436 bool is_not_entrant() const { return _state == not_entrant; }
436 bool is_zombie() const { return _state == zombie; } 437 bool is_zombie() const { return _state == zombie; }
437 bool is_unloaded() const { return _state == unloaded; } 438 bool is_unloaded() const { return _state == unloaded; }
438 439
439 // Make the nmethod non entrant. The nmethod will continue to be 440 // Make the nmethod non entrant. The nmethod will continue to be