comparison src/share/vm/adlc/output_h.cpp @ 3853:11211f7cb5a0

7079317: Incorrect branch's destination block in PrintoOptoAssembly output Summary: save/restore label and block in scratch_emit_size() Reviewed-by: never
author kvn
date Tue, 16 Aug 2011 11:53:57 -0700
parents 95134e034042
children f03a3c8bd5e5
comparison
equal deleted inserted replaced
3852:fdb992d83a87 3853:11211f7cb5a0
1517 1517
1518 // If this instruction contains a labelOper 1518 // If this instruction contains a labelOper
1519 // Declare Node::methods that set operand Label's contents 1519 // Declare Node::methods that set operand Label's contents
1520 int label_position = instr->label_position(); 1520 int label_position = instr->label_position();
1521 if( label_position != -1 ) { 1521 if( label_position != -1 ) {
1522 // Set the label, stored in labelOper::_branch_label 1522 // Set/Save the label, stored in labelOper::_branch_label
1523 fprintf(fp," virtual void label_set( Label* label, uint block_num );\n"); 1523 fprintf(fp," virtual void label_set( Label* label, uint block_num );\n");
1524 fprintf(fp," virtual void save_label( Label** label, uint* block_num );\n");
1524 } 1525 }
1525 1526
1526 // If this instruction contains a methodOper 1527 // If this instruction contains a methodOper
1527 // Declare Node::methods that set operand method's contents 1528 // Declare Node::methods that set operand method's contents
1528 int method_position = instr->method_position(); 1529 int method_position = instr->method_position();
1672 if ( data_type != Form::none ) { 1673 if ( data_type != Form::none ) {
1673 if ( node_flags_set ) { 1674 if ( node_flags_set ) {
1674 fprintf(fp," | Flag_is_Con"); 1675 fprintf(fp," | Flag_is_Con");
1675 } else { 1676 } else {
1676 fprintf(fp,"init_flags(Flag_is_Con"); 1677 fprintf(fp,"init_flags(Flag_is_Con");
1677 node_flags_set = true;
1678 }
1679 }
1680
1681 // flag: if instruction matches 'If' | 'Goto' | 'CountedLoopEnd | 'Jump'
1682 if ( instr->is_ideal_branch() ) {
1683 if ( node_flags_set ) {
1684 fprintf(fp," | Flag_is_Branch");
1685 } else {
1686 fprintf(fp,"init_flags(Flag_is_Branch");
1687 node_flags_set = true; 1678 node_flags_set = true;
1688 } 1679 }
1689 } 1680 }
1690 1681
1691 // flag: if this instruction is cisc alternate 1682 // flag: if this instruction is cisc alternate