Mercurial > hg > truffle
comparison src/share/vm/code/nmethod.hpp @ 1109:032260830071
5057818: codecache full and compiler disabled in bigapps fastdebug run
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 16 Dec 2009 22:15:12 -0800 |
parents | a1423fe86a18 |
children | e66fd840cb6b |
comparison
equal
deleted
inserted
replaced
1108:85f13cdfbc1d | 1109:032260830071 |
---|---|
250 | 250 |
251 // helper methods | 251 // helper methods |
252 void* operator new(size_t size, int nmethod_size); | 252 void* operator new(size_t size, int nmethod_size); |
253 | 253 |
254 const char* reloc_string_for(u_char* begin, u_char* end); | 254 const char* reloc_string_for(u_char* begin, u_char* end); |
255 void make_not_entrant_or_zombie(int state); | 255 // Returns true if this thread changed the state of the nmethod or |
256 // false if another thread performed the transition. | |
257 bool make_not_entrant_or_zombie(int state); | |
256 void inc_decompile_count(); | 258 void inc_decompile_count(); |
257 | 259 |
258 // used to check that writes to nmFlags are done consistently. | 260 // used to check that writes to nmFlags are done consistently. |
259 static void check_safepoint() PRODUCT_RETURN; | 261 static void check_safepoint() PRODUCT_RETURN; |
260 | 262 |
373 bool is_alive() const { return flags.state == alive || flags.state == not_entrant; } | 375 bool is_alive() const { return flags.state == alive || flags.state == not_entrant; } |
374 bool is_not_entrant() const { return flags.state == not_entrant; } | 376 bool is_not_entrant() const { return flags.state == not_entrant; } |
375 bool is_zombie() const { return flags.state == zombie; } | 377 bool is_zombie() const { return flags.state == zombie; } |
376 bool is_unloaded() const { return flags.state == unloaded; } | 378 bool is_unloaded() const { return flags.state == unloaded; } |
377 | 379 |
378 // Make the nmethod non entrant. The nmethod will continue to be alive. | 380 // Make the nmethod non entrant. The nmethod will continue to be |
379 // It is used when an uncommon trap happens. | 381 // alive. It is used when an uncommon trap happens. Returns true |
380 void make_not_entrant() { make_not_entrant_or_zombie(not_entrant); } | 382 // if this thread changed the state of the nmethod or false if |
381 void make_zombie() { make_not_entrant_or_zombie(zombie); } | 383 // another thread performed the transition. |
384 bool make_not_entrant() { return make_not_entrant_or_zombie(not_entrant); } | |
385 bool make_zombie() { return make_not_entrant_or_zombie(zombie); } | |
382 | 386 |
383 // used by jvmti to track if the unload event has been reported | 387 // used by jvmti to track if the unload event has been reported |
384 bool unload_reported() { return _unload_reported; } | 388 bool unload_reported() { return _unload_reported; } |
385 void set_unload_reported() { _unload_reported = true; } | 389 void set_unload_reported() { _unload_reported = true; } |
386 | 390 |
561 void print_on(outputStream* st, const char* title) const; | 565 void print_on(outputStream* st, const char* title) const; |
562 | 566 |
563 // Logging | 567 // Logging |
564 void log_identity(xmlStream* log) const; | 568 void log_identity(xmlStream* log) const; |
565 void log_new_nmethod() const; | 569 void log_new_nmethod() const; |
566 void log_state_change(int state) const; | 570 void log_state_change() const; |
567 | 571 |
568 // Prints a comment for one native instruction (reloc info, pc desc) | 572 // Prints a comment for one native instruction (reloc info, pc desc) |
569 void print_code_comment_on(outputStream* st, int column, address begin, address end); | 573 void print_code_comment_on(outputStream* st, int column, address begin, address end); |
570 static void print_statistics() PRODUCT_RETURN; | 574 static void print_statistics() PRODUCT_RETURN; |
571 | 575 |