src/share/vm/code/nmethod.hpp

changeset 4117
f2e12eb74117
parent 4098
8966c2d65d96
parent 4107
b31471cdc53e
child 5548
5888334c9c24
equal deleted inserted replaced
4100:15fba4382765 4117:f2e12eb74117
175 175
176 // set during construction 176 // set during construction
177 unsigned int _has_unsafe_access:1; // May fault due to unsafe access. 177 unsigned int _has_unsafe_access:1; // May fault due to unsafe access.
178 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes? 178 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes?
179 unsigned int _lazy_critical_native:1; // Lazy JNI critical native 179 unsigned int _lazy_critical_native:1; // Lazy JNI critical native
180 unsigned int _has_wide_vectors:1; // Preserve wide vectors at safepoints
180 181
181 // Protected by Patching_lock 182 // Protected by Patching_lock
182 unsigned char _state; // {alive, not_entrant, zombie, unloaded} 183 unsigned char _state; // {alive, not_entrant, zombie, unloaded}
183 184
184 #ifdef ASSERT 185 #ifdef ASSERT
440 void set_speculatively_disconnected(bool z) { _speculatively_disconnected = z; } 441 void set_speculatively_disconnected(bool z) { _speculatively_disconnected = z; }
441 442
442 bool is_lazy_critical_native() const { return _lazy_critical_native; } 443 bool is_lazy_critical_native() const { return _lazy_critical_native; }
443 void set_lazy_critical_native(bool z) { _lazy_critical_native = z; } 444 void set_lazy_critical_native(bool z) { _lazy_critical_native = z; }
444 445
446 bool has_wide_vectors() const { return _has_wide_vectors; }
447 void set_has_wide_vectors(bool z) { _has_wide_vectors = z; }
448
445 int comp_level() const { return _comp_level; } 449 int comp_level() const { return _comp_level; }
446 450
447 // Support for oops in scopes and relocs: 451 // Support for oops in scopes and relocs:
448 // Note: index 0 is reserved for null. 452 // Note: index 0 is reserved for null.
449 oop oop_at(int index) const { return index == 0 ? (oop) NULL: *oop_addr_at(index); } 453 oop oop_at(int index) const { return index == 0 ? (oop) NULL: *oop_addr_at(index); }
645 void log_identity(xmlStream* log) const; 649 void log_identity(xmlStream* log) const;
646 void log_new_nmethod() const; 650 void log_new_nmethod() const;
647 void log_state_change() const; 651 void log_state_change() const;
648 652
649 // Prints block-level comments, including nmethod specific block labels: 653 // Prints block-level comments, including nmethod specific block labels:
650 virtual void print_block_comment(outputStream* stream, address block_begin) { 654 virtual void print_block_comment(outputStream* stream, address block_begin) const {
651 print_nmethod_labels(stream, block_begin); 655 print_nmethod_labels(stream, block_begin);
652 CodeBlob::print_block_comment(stream, block_begin); 656 CodeBlob::print_block_comment(stream, block_begin);
653 } 657 }
654 void print_nmethod_labels(outputStream* stream, address block_begin); 658 void print_nmethod_labels(outputStream* stream, address block_begin) const;
655 659
656 // Prints a comment for one native instruction (reloc info, pc desc) 660 // Prints a comment for one native instruction (reloc info, pc desc)
657 void print_code_comment_on(outputStream* st, int column, address begin, address end); 661 void print_code_comment_on(outputStream* st, int column, address begin, address end);
658 static void print_statistics() PRODUCT_RETURN; 662 static void print_statistics() PRODUCT_RETURN;
659 663

mercurial