7198074: NPG: assert(((Metadata*)obj)->is_valid()) failed: obj is valid

Missing test for T_METADATA leads to incorrect register allocation.

Reviewed-by: kvn
This commit is contained in:
Roland Westrelin 2012-09-13 22:09:16 +02:00
parent a2f9b747a4
commit 00c30b04f4

View file

@ -67,7 +67,7 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) {
_first_reg = pd_first_callee_saved_reg; _first_reg = pd_first_callee_saved_reg;
_last_reg = pd_last_callee_saved_reg; _last_reg = pd_last_callee_saved_reg;
return true; 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; _first_reg = pd_first_cpu_reg;
_last_reg = pd_last_allocatable_cpu_reg; _last_reg = pd_last_allocatable_cpu_reg;
return true; return true;