diff 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
line wrap: on
line diff
--- a/src/share/vm/adlc/archDesc.cpp	Tue Aug 16 04:14:05 2011 -0700
+++ b/src/share/vm/adlc/archDesc.cpp	Tue Aug 16 11:53:57 2011 -0700
@@ -331,6 +331,11 @@
     // Find result type for match
     const char *result  = instr->reduce_result();
 
+    if ( instr->is_ideal_branch() && instr->label_position() == -1 ||
+        !instr->is_ideal_branch() && instr->label_position() != -1) {
+      syntax_err(instr->_linenum, "%s: Only branches to a label are supported\n", rootOp);
+    }
+
     Attribute *attr = instr->_attribs;
     while (attr != NULL) {
       if (strcmp(attr->_ident,"ins_short_branch") == 0 &&