Merge pull request #23 from dneto0/clarify-opcode-enum-ranges
Clarify opcode/enum ranges
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 2966a2d..ba22f9b 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -67,7 +67,24 @@
<!-- SECTION: SPIR-V Opcodes and Enumerants -->
<!-- Reserve new ranges for vendors in contiguous blocks of 64
preceding the "Future use" block below, and modify that block
- accordingly. -->
+ accordingly.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ For example, to avoid unused gaps in ranges, it is customary for
+ several extensions to use values from the same range.
+
+ The Id type "enum" is a synonym for "opcode".
+
+ Note that SPIR-V restricts opcode values to 16 bits.
+ -->
<!-- Reserved opcode & enumerant blocks -->
<ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
@@ -86,6 +103,6 @@
<!-- Example new block: <ids type="opcode" start="5504" end="5504+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
- <ids type="opcode" start="5504" end="1000000" comment="Opcode range reservable for future use by vendors"/>
+ <ids type="opcode" start="5504" end="4294967295" comment="Opcode range reservable for future use by vendors"/>
</registry>