From assembler_x86.hpp:
// only if +VerifyOops
+ // TODO: Make these macros with file and line like sparc version!
void verify_oop(Register reg, const char* s = "broken oop");
void verify_oop_addr(Address addr, const char * s = "broken oop addr");
+ // TODO: verify method and klass metadata (compare against vptr?)
+ void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
+ void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line){}
+
+ #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
+ #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
+
There were some verify_oops() calls removed during permgen removal that should be added back to verify_method_ptr, etc, once implemented.
And the x86 version doesn't pass FILE and LINE to verify_oop which is really useful.
// only if +VerifyOops
+ // TODO: Make these macros with file and line like sparc version!
void verify_oop(Register reg, const char* s = "broken oop");
void verify_oop_addr(Address addr, const char * s = "broken oop addr");
+ // TODO: verify method and klass metadata (compare against vptr?)
+ void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
+ void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line){}
+
+ #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
+ #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
+
There were some verify_oops() calls removed during permgen removal that should be added back to verify_method_ptr, etc, once implemented.
And the x86 version doesn't pass FILE and LINE to verify_oop which is really useful.