Index: utils/TableGen/SubtargetEmitter.cpp
===================================================================
--- utils/TableGen/SubtargetEmitter.cpp	(.../branches/UPSTREAM)	(revision 52)
+++ utils/TableGen/SubtargetEmitter.cpp	(.../trunk)	(revision 52)
@@ -216,11 +216,11 @@ void SubtargetEmitter::FormItineraryStri
   // Get states list
   std::vector<Record*> StageList = ItinData->getValueAsListOfDefs("Stages");
 
   // For each stage
   unsigned N = NStages = StageList.size();
-  for (unsigned i = 0; i < N; i++) {
+  for (unsigned i = 0; i < N;) {
     // Next stage
     Record *Stage = StageList[i];
   
     // Form string as ,{ cycles, u1 | u2 | ... | un }
     int Cycles = Stage->getValueAsInt("Cycles");
@@ -239,10 +239,11 @@ void SubtargetEmitter::FormItineraryStri
       if (++j < M) ItinString += " | ";
     }
     
     // Close off stage
     ItinString += " }";
+    if (++i < N) ItinString += ", ";
   }
 }
 
 //
 // EmitStageData - Generate unique itinerary stages.  Record itineraries for 
