equal
deleted
inserted
replaced
350 omap->set_callee_saved( r, callee); |
350 omap->set_callee_saved( r, callee); |
351 } |
351 } |
352 |
352 |
353 } else { |
353 } else { |
354 // Other - some reaching non-oop value |
354 // Other - some reaching non-oop value |
355 omap->set_value( r); |
|
356 #ifdef ASSERT |
355 #ifdef ASSERT |
357 if( t->isa_rawptr() && C->cfg()->_raw_oops.member(def) ) { |
356 if( t->isa_rawptr() && C->cfg()->_raw_oops.member(def) ) { |
358 def->dump(); |
357 def->dump(); |
359 n->dump(); |
358 n->dump(); |
360 assert(false, "there should be a oop in OopMap instead of a live raw oop at safepoint"); |
359 assert(false, "there should be a oop in OopMap instead of a live raw oop at safepoint"); |
375 } |
374 } |
376 */ |
375 */ |
377 #endif |
376 #endif |
378 |
377 |
379 #ifdef ASSERT |
378 #ifdef ASSERT |
380 for( OopMapStream oms1(omap, OopMapValue::derived_oop_value); !oms1.is_done(); oms1.next()) { |
379 for( OopMapStream oms1(omap); !oms1.is_done(); oms1.next()) { |
381 OopMapValue omv1 = oms1.current(); |
380 OopMapValue omv1 = oms1.current(); |
|
381 if (omv1.type() != OopMapValue::derived_oop_value) { |
|
382 continue; |
|
383 } |
382 bool found = false; |
384 bool found = false; |
383 for( OopMapStream oms2(omap,OopMapValue::oop_value); !oms2.is_done(); oms2.next()) { |
385 for( OopMapStream oms2(omap); !oms2.is_done(); oms2.next()) { |
384 if( omv1.content_reg() == oms2.current().reg() ) { |
386 OopMapValue omv2 = oms2.current(); |
|
387 if (omv2.type() != OopMapValue::oop_value) { |
|
388 continue; |
|
389 } |
|
390 if( omv1.content_reg() == omv2.reg() ) { |
385 found = true; |
391 found = true; |
386 break; |
392 break; |
387 } |
393 } |
388 } |
394 } |
389 assert( found, "derived with no base in oopmap" ); |
395 assert( found, "derived with no base in oopmap" ); |