diff src/share/vm/adlc/output_c.cpp @ 6802:0702f188baeb

7200233: C2: can't use expand rules for vector instruction rules Summary: Added missed _bottom_type set in ArchDesc::defineExpand() and missed vector nodes in MatchRule::is_vector(). Reviewed-by: twisti, roland, dlong
author kvn
date Tue, 25 Sep 2012 10:41:15 -0700
parents da91efe96a93
children e626685e9f6c
line wrap: on
line diff
--- a/src/share/vm/adlc/output_c.cpp	Thu Mar 29 16:43:21 2012 +0200
+++ b/src/share/vm/adlc/output_c.cpp	Tue Sep 25 10:41:15 2012 -0700
@@ -1606,6 +1606,12 @@
         fprintf(fp, "  ((MachFastLockNode*)n%d)->_counters = _counters;\n",cnt);
       }
 
+      // Fill in the bottom_type where requested
+      if (node->captures_bottom_type(_globalNames) &&
+          new_inst->captures_bottom_type(_globalNames)) {
+        fprintf(fp, "  ((MachTypeNode*)n%d)->_bottom_type = bottom_type();\n", cnt);
+      }
+
       const char *resultOper = new_inst->reduce_result();
       fprintf(fp,"  n%d->set_opnd_array(0, state->MachOperGenerator( %s, C ));\n",
               cnt, machOperEnum(resultOper));