Mercurial > hg > truffle
comparison src/share/vm/adlc/archDesc.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 | c7b60b601eb4 |
children | f03a3c8bd5e5 |
comparison
equal
deleted
inserted
replaced
3852:fdb992d83a87 | 3853:11211f7cb5a0 |
---|---|
328 ((AttributeForm*)_globalNames[AttributeForm::_ins_cost])->_attrdef; | 328 ((AttributeForm*)_globalNames[AttributeForm::_ins_cost])->_attrdef; |
329 const char *cost = costStr? costStr : defaultCost; | 329 const char *cost = costStr? costStr : defaultCost; |
330 | 330 |
331 // Find result type for match | 331 // Find result type for match |
332 const char *result = instr->reduce_result(); | 332 const char *result = instr->reduce_result(); |
333 | |
334 if ( instr->is_ideal_branch() && instr->label_position() == -1 || | |
335 !instr->is_ideal_branch() && instr->label_position() != -1) { | |
336 syntax_err(instr->_linenum, "%s: Only branches to a label are supported\n", rootOp); | |
337 } | |
333 | 338 |
334 Attribute *attr = instr->_attribs; | 339 Attribute *attr = instr->_attribs; |
335 while (attr != NULL) { | 340 while (attr != NULL) { |
336 if (strcmp(attr->_ident,"ins_short_branch") == 0 && | 341 if (strcmp(attr->_ident,"ins_short_branch") == 0 && |
337 attr->int_val(*this) != 0) { | 342 attr->int_val(*this) != 0) { |