Lines Matching full:opcode
33 /// Extracts the opcode from the given first word of a SPIR-V instruction.
34 static inline spirv::Opcode extractOpcode(uint32_t word) {
35 return static_cast<spirv::Opcode>(word & 0xffff);
78 spirv::Opcode &opcode, ArrayRef<uint32_t> &operands,
79 std::optional<spirv::Opcode> expectedOpcode) {
100 opcode = extractOpcode(binary[curOffset]);
107 spirv::Opcode opcode, ArrayRef<uint32_t> operands, bool deferInstructions) {
109 << spirv::stringifyOpcode(opcode) << "\n");
111 // First dispatch all the instructions whose opcode does not correspond to
113 switch (opcode) {
114 case spirv::Opcode::OpCapability:
116 case spirv::Opcode::OpExtension:
118 case spirv::Opcode::OpExtInst:
120 case spirv::Opcode::OpExtInstImport:
122 case spirv::Opcode::OpMemberName:
124 case spirv::Opcode::OpMemoryModel:
126 case spirv::Opcode::OpEntryPoint:
127 case spirv::Opcode::OpExecutionMode:
129 deferredInstructions.emplace_back(opcode, operands);
133 case spirv::Opcode::OpVariable:
138 case spirv::Opcode::OpLine:
140 case spirv::Opcode::OpNoLine:
143 case spirv::Opcode::OpName:
145 case spirv::Opcode::OpString:
147 case spirv::Opcode::OpModuleProcessed:
148 case spirv::Opcode::OpSource:
149 case spirv::Opcode::OpSourceContinued:
150 case spirv::Opcode::OpSourceExtension:
154 case spirv::Opcode::OpTypeVoid:
155 case spirv::Opcode::OpTypeBool:
156 case spirv::Opcode::OpTypeInt:
157 case spirv::Opcode::OpTypeFloat:
158 case spirv::Opcode::OpTypeVector:
159 case spirv::Opcode::OpTypeMatrix:
160 case spirv::Opcode::OpTypeArray:
161 case spirv::Opcode::OpTypeFunction:
162 case spirv::Opcode::OpTypeImage:
163 case spirv::Opcode::OpTypeSampledImage:
164 case spirv::Opcode::OpTypeRuntimeArray:
165 case spirv::Opcode::OpTypeStruct:
166 case spirv::Opcode::OpTypePointer:
167 case spirv::Opcode::OpTypeCooperativeMatrixKHR:
168 return processType(opcode, operands);
169 case spirv::Opcode::OpTypeForwardPointer:
171 case spirv::Opcode::OpConstant:
173 case spirv::Opcode::OpSpecConstant:
175 case spirv::Opcode::OpConstantComposite:
177 case spirv::Opcode::OpSpecConstantComposite:
179 case spirv::Opcode::OpSpecConstantOp:
181 case spirv::Opcode::OpConstantTrue:
183 case spirv::Opcode::OpSpecConstantTrue:
185 case spirv::Opcode::OpConstantFalse:
187 case spirv::Opcode::OpSpecConstantFalse:
189 case spirv::Opcode::OpConstantNull:
191 case spirv::Opcode::OpDecorate:
193 case spirv::Opcode::OpMemberDecorate:
195 case spirv::Opcode::OpFunction:
197 case spirv::Opcode::OpLabel:
199 case spirv::Opcode::OpBranch:
201 case spirv::Opcode::OpBranchConditional:
203 case spirv::Opcode::OpSelectionMerge:
205 case spirv::Opcode::OpLoopMerge:
207 case spirv::Opcode::OpPhi:
209 case spirv::Opcode::OpUndef:
214 return dispatchToAutogenDeserialization(opcode, operands);
313 "<id>, result <id>, set <id> and instruction opcode");