7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid
Summary: missing test for T_METADATA leads to incorrect register allocation.
Reviewed-by: kvn
--- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Tue Sep 11 20:12:55 2012 -0700
+++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp Thu Sep 13 22:09:16 2012 +0200
@@ -67,7 +67,7 @@
_first_reg = pd_first_callee_saved_reg;
_last_reg = pd_last_callee_saved_reg;
return true;
- } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT || cur->type() == T_ADDRESS) {
+ } else if (cur->type() == T_INT || cur->type() == T_LONG || cur->type() == T_OBJECT || cur->type() == T_ADDRESS || cur->type() == T_METADATA) {
_first_reg = pd_first_cpu_reg;
_last_reg = pd_last_allocatable_cpu_reg;
return true;