diff -r ec98e58952b2 -r 8a02ca5e5576 src/share/vm/c1/c1_LinearScan.cpp --- a/src/share/vm/c1/c1_LinearScan.cpp Tue Sep 11 14:59:23 2012 +0200 +++ b/src/share/vm/c1/c1_LinearScan.cpp Tue Sep 11 16:20:57 2012 +0200 @@ -2067,6 +2067,12 @@ return LIR_OprFact::single_cpu_address(assigned_reg); } + case T_METADATA: { + assert(assigned_reg >= pd_first_cpu_reg && assigned_reg <= pd_last_cpu_reg, "no cpu register"); + assert(interval->assigned_regHi() == any_reg, "must not have hi register"); + return LIR_OprFact::single_cpu_metadata(assigned_reg); + } + #ifdef __SOFTFP__ case T_FLOAT: // fall through #endif // __SOFTFP__