comparison src/share/vm/compiler/oopMap.cpp @ 25:c5cbd367e4d1

6621094: PrintOptoAssembly is broken for oops information in DebugInfo Summary: OopMapValue and VMRegImpl classes miss the virtual method print_on(st). Reviewed-by: rasbold, jrose, never
author kvn
date Wed, 20 Feb 2008 17:23:43 -0800
parents a61af66fc99e
children c7c777385a15
comparison
equal deleted inserted replaced
24:953939ef62ab 25:c5cbd367e4d1
504 return false; 504 return false;
505 #endif // COMPILER2 505 #endif // COMPILER2
506 } 506 }
507 507
508 508
509 void print_register_type(OopMapValue::oop_types x, VMReg optional) { 509 static void print_register_type(OopMapValue::oop_types x, VMReg optional, outputStream* st) {
510 switch( x ) { 510 switch( x ) {
511 case OopMapValue::oop_value: 511 case OopMapValue::oop_value:
512 tty->print("Oop"); 512 st->print("Oop");
513 break; 513 break;
514 case OopMapValue::value_value: 514 case OopMapValue::value_value:
515 tty->print("Value" ); 515 st->print("Value" );
516 break; 516 break;
517 case OopMapValue::dead_value: 517 case OopMapValue::dead_value:
518 tty->print("Dead" ); 518 st->print("Dead" );
519 break; 519 break;
520 case OopMapValue::callee_saved_value: 520 case OopMapValue::callee_saved_value:
521 tty->print("Callers_" ); 521 st->print("Callers_" );
522 optional->print(); 522 optional->print_on(st);
523 break; 523 break;
524 case OopMapValue::derived_oop_value: 524 case OopMapValue::derived_oop_value:
525 tty->print("Derived_oop_" ); 525 st->print("Derived_oop_" );
526 optional->print(); 526 optional->print_on(st);
527 break; 527 break;
528 case OopMapValue::stack_obj: 528 case OopMapValue::stack_obj:
529 tty->print("Stack"); 529 st->print("Stack");
530 break; 530 break;
531 default: 531 default:
532 ShouldNotReachHere(); 532 ShouldNotReachHere();
533 } 533 }
534 } 534 }
535 535
536 536
537 void OopMapValue::print() const { 537 void OopMapValue::print_on(outputStream* st) const {
538 reg()->print(); 538 reg()->print_on(st);
539 tty->print("="); 539 st->print("=");
540 print_register_type(type(),content_reg()); 540 print_register_type(type(),content_reg(),st);
541 tty->print(" "); 541 st->print(" ");
542 } 542 }
543 543
544 544
545 void OopMap::print_on(outputStream* st) const { 545 void OopMap::print_on(outputStream* st) const {
546 OopMapValue omv; 546 OopMapValue omv;