Merge pull request #191 from dneto0/reorder-enums-in-spec

Push FPDenormMode, FPOperationMode to the end
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 03b8803..7c40d14 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -403,18 +403,6 @@
             RTN = 3,
         }
 
-        public enum FPDenormMode
-        {
-            Preserve = 0,
-            FlushToZero = 1,
-        }
-
-        public enum FPOperationMode
-        {
-            IEEE = 0,
-            ALT = 1,
-        }
-
         public enum LinkageType
         {
             Export = 0,
@@ -1115,6 +1103,16 @@
             Horizontal4Pixels = 0x00000008,
         }
 
+        public enum FPDenormMode {
+          Preserve = 0,
+          FlushToZero = 1,
+        }
+
+        public enum FPOperationMode {
+          IEEE = 0,
+          ALT = 1,
+        }
+
         public enum Op
         {
             OpNop = 0,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index e9273d0..c9f603b 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -410,18 +410,6 @@
     SpvFPRoundingModeMax = 0x7fffffff,
 } SpvFPRoundingMode;
 
-typedef enum SpvFPDenormMode_ {
-    SpvFPDenormModePreserve = 0,
-    SpvFPDenormModeFlushToZero = 1,
-    SpvFPDenormModeMax = 0x7fffffff,
-} SpvFPDenormMode;
-
-typedef enum SpvFPOperationMode_ {
-    SpvFPOperationModeIEEE = 0,
-    SpvFPOperationModeALT = 1,
-    SpvFPOperationModeMax = 0x7fffffff,
-} SpvFPOperationMode;
-
 typedef enum SpvLinkageType_ {
     SpvLinkageTypeExport = 0,
     SpvLinkageTypeImport = 1,
@@ -1114,6 +1102,18 @@
     SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
 } SpvFragmentShadingRateMask;
 
+typedef enum SpvFPDenormMode_ {
+  SpvFPDenormModePreserve = 0,
+  SpvFPDenormModeFlushToZero = 1,
+  SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+  SpvFPOperationModeIEEE = 0,
+  SpvFPOperationModeALT = 1,
+  SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
 typedef enum SpvOp_ {
     SpvOpNop = 0,
     SpvOpUndef = 1,
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 0e7dff8..ebcef89 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -406,18 +406,6 @@
     FPRoundingModeMax = 0x7fffffff,
 };
 
-enum FPDenormMode {
-    FPDenormModePreserve = 0,
-    FPDenormModeFlushToZero = 1,
-    FPDenormModeMax = 0x7fffffff,
-};
-
-enum FPOperationMode {
-    FPOperationModeIEEE = 0,
-    FPOperationModeALT = 1,
-    FPOperationModeMax = 0x7fffffff,
-};
-
 enum LinkageType {
     LinkageTypeExport = 0,
     LinkageTypeImport = 1,
@@ -1110,6 +1098,18 @@
     FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
 };
 
+enum FPDenormMode {
+  FPDenormModePreserve = 0,
+  FPDenormModeFlushToZero = 1,
+  FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+  FPOperationModeIEEE = 0,
+  FPOperationModeALT = 1,
+  FPOperationModeMax = 0x7fffffff,
+};
+
 enum Op {
     OpNop = 0,
     OpUndef = 1,
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index b3f6792..bdeee38 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -406,18 +406,6 @@
     Max = 0x7fffffff,
 };
 
-enum class FPDenormMode : unsigned {
-    Preserve = 0,
-    FlushToZero = 1,
-    Max = 0x7fffffff,
-};
-
-enum class FPOperationMode : unsigned {
-    IEEE = 0,
-    ALT = 1,
-    Max = 0x7fffffff,
-};
-
 enum class LinkageType : unsigned {
     Export = 0,
     Import = 1,
@@ -1110,6 +1098,18 @@
     Horizontal4Pixels = 0x00000008,
 };
 
+enum class FPDenormMode : unsigned {
+    Preserve = 0,
+    FlushToZero = 1,
+    Max = 0x7fffffff,
+};
+
+enum class FPOperationMode : unsigned {
+    IEEE = 0,
+    ALT = 1,
+    Max = 0x7fffffff,
+};
+
 enum class Op : unsigned {
     OpNop = 0,
     OpUndef = 1,
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 32dfe6f..4e10b28 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -422,24 +422,6 @@
                 }
             },
             {
-                "Name": "FPDenormMode",
-                "Type": "Value",
-                "Values":
-                {
-                    "Preserve": 0,
-                    "FlushToZero": 1
-                }
-            },
-            {
-                "Name": "FPOperationMode",
-                "Type": "Value",
-                "Values":
-                {
-                    "IEEE": 0,
-                    "ALT": 1
-                }
-            },
-            {
                 "Name": "LinkageType",
                 "Type": "Value",
                 "Values":
@@ -1096,6 +1078,24 @@
                 }
             },
             {
+                "Name": "FPDenormMode",
+                "Type": "Value",
+                "Values":
+                {
+                    "Preserve": 0,
+                    "FlushToZero": 1
+                }
+            },
+            {
+                "Name": "FPOperationMode",
+                "Type": "Value",
+                "Values":
+                {
+                    "IEEE": 0,
+                    "ALT": 1
+                }
+            },
+            {
                 "Name": "Op",
                 "Type": "Value",
                 "Values":
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index a1934d5..8ae3970 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -382,16 +382,6 @@
         RTN = 3,
     },
 
-    FPDenormMode = {
-        Preserve = 0,
-        FlushToZero = 1,
-    },
-
-    FPOperationMode = {
-        IEEE = 0,
-        ALT = 1,
-    },
-
     LinkageType = {
         Export = 0,
         Import = 1,
@@ -1064,6 +1054,16 @@
         Horizontal4Pixels = 0x00000008,
     },
 
+    FPDenormMode = {
+        Preserve = 0,
+        FlushToZero = 1,
+    },
+
+    FPOperationMode = {
+        IEEE = 0,
+        ALT = 1,
+    },
+
     Op = {
         OpNop = 0,
         OpUndef = 1,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 8fc2a4b..3470d4e 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -382,16 +382,6 @@
         'RTN' : 3,
     },
 
-    'FPDenormMode' : {
-        'Preserve' : 0,
-        'FlushToZero' : 1,
-    },
-
-    'FPOperationMode' : {
-        'IEEE' : 0,
-        'ALT' : 1,
-    },
-
     'LinkageType' : {
         'Export' : 0,
         'Import' : 1,
@@ -1064,6 +1054,16 @@
         'Horizontal4Pixels' : 0x00000008,
     },
 
+    'FPDenormMode' : {
+        'Preserve' : 0,
+        'FlushToZero' : 1,
+    },
+
+    'FPOperationMode' : {
+        'IEEE' : 0,
+        'ALT' : 1,
+    },
+
     'Op' : {
         'OpNop' : 0,
         'OpUndef' : 1,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 793b058..f4023d4 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -406,18 +406,6 @@
     RTN = 3,
 }
 
-enum FPDenormMode : uint
-{
-    Preserve = 0,
-    FlushToZero = 1,
-}
-
-enum FPOperationMode : uint
-{
-    IEEE = 0,
-    ALT = 1,
-}
-
 enum LinkageType : uint
 {
     Export = 0,
@@ -1118,6 +1106,18 @@
     Horizontal4Pixels = 0x00000008,
 }
 
+enum FPDenormMode : uint
+{
+    Preserve = 0,
+    FlushToZero = 1,
+}
+
+enum FPOperationMode : uint
+{
+    IEEE = 0,
+    ALT = 1,
+}
+
 enum Op : uint
 {
     OpNop = 0,
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 572b872..51aa763 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -41,6 +41,8 @@
 void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders);
 
 // For parameterizing operands.
+// The ordering here affects the printing order in the SPIR-V specification.
+// Please add new operand classes at the end.
 enum OperandClass {
     OperandNone,
     OperandId,
@@ -69,8 +71,6 @@
     OperandImageOperands,
     OperandFPFastMath,
     OperandFPRoundingMode,
-    OperandFPDenormMode,
-    OperandFPOperationMode,
     OperandLinkageType,
     OperandAccessQualifier,
     OperandFuncParamAttr,
@@ -91,6 +91,8 @@
     OperandRayQueryCommittedIntersectionType,
     OperandRayQueryCandidateIntersectionType,
     OperandFragmentShadingRate,
+    OperandFPDenormMode,
+    OperandFPOperationMode,
 
     OperandOpcode,