hotspot/src/share/vm/adlc/output_h.cpp
changeset 22844 90f76a40ed8a
parent 22838 82c7497fbad4
child 22850 4e69ce7e1101
--- a/hotspot/src/share/vm/adlc/output_h.cpp	Thu Nov 07 11:47:11 2013 +0100
+++ b/hotspot/src/share/vm/adlc/output_h.cpp	Thu Nov 14 19:24:59 2013 -0800
@@ -1633,7 +1633,12 @@
     // Output the opcode function and the encode function here using the
     // encoding class information in the _insencode slot.
     if ( instr->_insencode ) {
-      fprintf(fp,"  virtual void           emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const;\n");
+      if (instr->postalloc_expands()) {
+        fprintf(fp,"  virtual bool           requires_postalloc_expand() const { return true; }\n");
+        fprintf(fp,"  virtual void           postalloc_expand(GrowableArray <Node *> *nodes, PhaseRegAlloc *ra_);\n");
+      } else {
+        fprintf(fp,"  virtual void           emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const;\n");
+      }
     }
 
     // virtual function for getting the size of an instruction