Remap Scope and MemorySemantics IDs in SPIRV remapper
authorPyry Haulos <phaulos@google.com>
Fri, 22 Jul 2016 16:57:28 +0000 (09:57 -0700)
committerPyry Haulos <phaulos@google.com>
Fri, 22 Jul 2016 16:57:28 +0000 (09:57 -0700)
Scope and MemorySemantics operands contain IDs as well and may need
remapping.

SPIRV/SPVRemapper.cpp

index 1bbd589..05f220a 100755 (executable)
@@ -440,6 +440,8 @@ namespace spv {
         for (int op = 0; numOperands > 0; ++op, --numOperands) {
             switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
             case spv::OperandId:
+            case spv::OperandScope:
+            case spv::OperandMemorySemantics:
                 idFn(asId(word++));
                 break;
 
@@ -500,9 +502,7 @@ namespace spv {
             case spv::OperandSelect:
             case spv::OperandLoop:
             case spv::OperandFunction:
-            case spv::OperandMemorySemantics:
             case spv::OperandMemoryAccess:
-            case spv::OperandScope:
             case spv::OperandGroupOperation:
             case spv::OperandKernelEnqueueFlags:
             case spv::OperandKernelProfilingInfo: