SPIRV: Fix some disassembly issues
- OpExecutionModeId is not supported in disassembly. - Some execution modes are missing in disassembled strings.
This commit is contained in:
		
							parent
							
								
									517f39eee4
								
							
						
					
					
						commit
						2d66614c0a
					
				@ -134,7 +134,7 @@ const char* MemoryString(int mem)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const int ExecutionModeCeiling = 33;
 | 
					const int ExecutionModeCeiling = 40;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char* ExecutionModeString(int mode)
 | 
					const char* ExecutionModeString(int mode)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -173,7 +173,21 @@ const char* ExecutionModeString(int mode)
 | 
				
			|||||||
    case 31: return "ContractionOff";
 | 
					    case 31: return "ContractionOff";
 | 
				
			||||||
    case 32: return "Bad";
 | 
					    case 32: return "Bad";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case 4446:  return "PostDepthCoverage";
 | 
					    case ExecutionModeInitializer:              return "Initializer";
 | 
				
			||||||
 | 
					    case ExecutionModeFinalizer:                return "Finalizer";
 | 
				
			||||||
 | 
					    case ExecutionModeSubgroupSize:             return "SubgroupSize";
 | 
				
			||||||
 | 
					    case ExecutionModeSubgroupsPerWorkgroup:    return "SubgroupsPerWorkgroup";
 | 
				
			||||||
 | 
					    case ExecutionModeSubgroupsPerWorkgroupId:  return "SubgroupsPerWorkgroupId";
 | 
				
			||||||
 | 
					    case ExecutionModeLocalSizeId:              return "LocalSizeId";
 | 
				
			||||||
 | 
					    case ExecutionModeLocalSizeHintId:          return "LocalSizeHintId";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case ExecutionModePostDepthCoverage:        return "PostDepthCoverage";
 | 
				
			||||||
 | 
					    case ExecutionModeDenormPreserve:           return "DenormPreserve";
 | 
				
			||||||
 | 
					    case ExecutionModeDenormFlushToZero:        return "DenormFlushToZero";
 | 
				
			||||||
 | 
					    case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
 | 
				
			||||||
 | 
					    case ExecutionModeRoundingModeRTE:          return "RoundingModeRTE";
 | 
				
			||||||
 | 
					    case ExecutionModeRoundingModeRTZ:          return "RoundingModeRTZ";
 | 
				
			||||||
 | 
					    case ExecutionModeStencilRefReplacingEXT:   return "StencilRefReplacingEXT";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case ExecutionModeOutputLinesNV:            return "OutputLinesNV";
 | 
					    case ExecutionModeOutputLinesNV:            return "OutputLinesNV";
 | 
				
			||||||
    case ExecutionModeOutputPrimitivesNV:       return "OutputPrimitivesNV";
 | 
					    case ExecutionModeOutputPrimitivesNV:       return "OutputPrimitivesNV";
 | 
				
			||||||
@ -188,6 +202,11 @@ const char* ExecutionModeString(int mode)
 | 
				
			|||||||
    case ExecutionModeShadingRateInterlockOrderedEXT:   return "ShadingRateInterlockOrderedEXT";
 | 
					    case ExecutionModeShadingRateInterlockOrderedEXT:   return "ShadingRateInterlockOrderedEXT";
 | 
				
			||||||
    case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
 | 
					    case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case ExecutionModeMaxWorkgroupSizeINTEL:    return "MaxWorkgroupSizeINTEL";
 | 
				
			||||||
 | 
					    case ExecutionModeMaxWorkDimINTEL:          return "MaxWorkDimINTEL";
 | 
				
			||||||
 | 
					    case ExecutionModeNoGlobalOffsetINTEL:      return "NoGlobalOffsetINTEL";
 | 
				
			||||||
 | 
					    case ExecutionModeNumSIMDWorkitemsINTEL:    return "NumSIMDWorkitemsINTEL";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case ExecutionModeCeiling:
 | 
					    case ExecutionModeCeiling:
 | 
				
			||||||
    default: return "Bad";
 | 
					    default: return "Bad";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1272,6 +1291,7 @@ const char* OpcodeString(int op)
 | 
				
			|||||||
    case 320: return "OpImageSparseRead";
 | 
					    case 320: return "OpImageSparseRead";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case OpModuleProcessed: return "OpModuleProcessed";
 | 
					    case OpModuleProcessed: return "OpModuleProcessed";
 | 
				
			||||||
 | 
					    case OpExecutionModeId: return "OpExecutionModeId";
 | 
				
			||||||
    case OpDecorateId:      return "OpDecorateId";
 | 
					    case OpDecorateId:      return "OpDecorateId";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case 333: return "OpGroupNonUniformElect";
 | 
					    case 333: return "OpGroupNonUniformElect";
 | 
				
			||||||
@ -1423,6 +1443,7 @@ void Parameterize()
 | 
				
			|||||||
    InstructionDesc[OpMemoryModel].setResultAndType(false, false);
 | 
					    InstructionDesc[OpMemoryModel].setResultAndType(false, false);
 | 
				
			||||||
    InstructionDesc[OpEntryPoint].setResultAndType(false, false);
 | 
					    InstructionDesc[OpEntryPoint].setResultAndType(false, false);
 | 
				
			||||||
    InstructionDesc[OpExecutionMode].setResultAndType(false, false);
 | 
					    InstructionDesc[OpExecutionMode].setResultAndType(false, false);
 | 
				
			||||||
 | 
					    InstructionDesc[OpExecutionModeId].setResultAndType(false, false);
 | 
				
			||||||
    InstructionDesc[OpTypeVoid].setResultAndType(true, false);
 | 
					    InstructionDesc[OpTypeVoid].setResultAndType(true, false);
 | 
				
			||||||
    InstructionDesc[OpTypeBool].setResultAndType(true, false);
 | 
					    InstructionDesc[OpTypeBool].setResultAndType(true, false);
 | 
				
			||||||
    InstructionDesc[OpTypeInt].setResultAndType(true, false);
 | 
					    InstructionDesc[OpTypeInt].setResultAndType(true, false);
 | 
				
			||||||
@ -1609,6 +1630,10 @@ void Parameterize()
 | 
				
			|||||||
    InstructionDesc[OpExecutionMode].operands.push(OperandExecutionMode, "'Mode'");
 | 
					    InstructionDesc[OpExecutionMode].operands.push(OperandExecutionMode, "'Mode'");
 | 
				
			||||||
    InstructionDesc[OpExecutionMode].operands.push(OperandOptionalLiteral, "See <<Execution_Mode,Execution Mode>>");
 | 
					    InstructionDesc[OpExecutionMode].operands.push(OperandOptionalLiteral, "See <<Execution_Mode,Execution Mode>>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    InstructionDesc[OpExecutionModeId].operands.push(OperandId, "'Entry Point'");
 | 
				
			||||||
 | 
					    InstructionDesc[OpExecutionModeId].operands.push(OperandExecutionMode, "'Mode'");
 | 
				
			||||||
 | 
					    InstructionDesc[OpExecutionModeId].operands.push(OperandVariableIds, "See <<Execution_Mode,Execution Mode>>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Width'");
 | 
					    InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Width'");
 | 
				
			||||||
    InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Signedness'");
 | 
					    InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Signedness'");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user