@@ -583,22 +583,30 @@ class MacroAssembler: public Assembler {
583583 // method handles (JSR 292)
584584 Address argument_address (RegisterOrConstant arg_slot, int extra_slot_offset = 0 );
585585
586- // ----
587- void set_word_if_not_zero (Register reg); // sets reg to 1 if not zero, otherwise 0
588-
589586 // Debugging
590587
591588 // only if +VerifyOops
592589 void _verify_oop (Register reg, const char * s, const char * file, int line);
593590 void _verify_oop_addr (Address addr, const char * s, const char * file, int line);
594591
592+ void _verify_oop_checked (Register reg, const char * s, const char * file, int line) {
593+ if (VerifyOops) {
594+ _verify_oop (reg, s, file, line);
595+ }
596+ }
597+ void _verify_oop_addr_checked (Address reg, const char * s, const char * file, int line) {
598+ if (VerifyOops) {
599+ _verify_oop_addr (reg, s, file, line);
600+ }
601+ }
602+
595603 // TODO: verify method and klass metadata (compare against vptr?)
596604 void _verify_method_ptr (Register reg, const char * msg, const char * file, int line) {}
597605 void _verify_klass_ptr (Register reg, const char * msg, const char * file, int line){}
598606
599- #define verify_oop (reg ) _verify_oop (reg, " broken oop " #reg, __FILE__, __LINE__)
600- #define verify_oop_msg (reg, msg ) _verify_oop (reg, " broken oop " #reg " , " #msg, __FILE__, __LINE__)
601- #define verify_oop_addr (addr ) _verify_oop_addr (addr, " broken oop addr " #addr, __FILE__, __LINE__)
607+ #define verify_oop (reg ) _verify_oop_checked (reg, " broken oop " #reg, __FILE__, __LINE__)
608+ #define verify_oop_msg (reg, msg ) _verify_oop_checked (reg, " broken oop " #reg " , " #msg, __FILE__, __LINE__)
609+ #define verify_oop_addr (addr ) _verify_oop_addr_checked (addr, " broken oop addr " #addr, __FILE__, __LINE__)
602610#define verify_method_ptr (reg ) _verify_method_ptr(reg, " broken method " #reg, __FILE__, __LINE__)
603611#define verify_klass_ptr (reg ) _verify_klass_ptr(reg, " broken klass " #reg, __FILE__, __LINE__)
604612
0 commit comments