Lines Matching defs:instr
190 * \param[in] instr The instruction.
193 bool rogue_validate_instr(const struct rogue_instr *instr)
197 ASSERT_OPCODE_RANGE(instr->opcode);
199 rule = &instr_rules[instr->opcode];
202 CHECKF(rogue_check_bitset(instr->flags, rule->flags),
206 CHECKF(instr->num_operands == rule->num_operands,
209 CHECK(!rule->num_operands || instr->operands);
210 for (size_t u = 0U; u < instr->num_operands; ++u) {
212 CHECKF(rogue_check_bitset(rogue_onehot(instr->operands[u].type),
218 if (rogue_check_bitset(rogue_onehot(instr->operands[u].type),
223 instr->operands[u].immediate.value >= rule->operand_rules[u].min &&
224 instr->operands[u].immediate.value <= rule->operand_rules[u].max,
230 if (rogue_check_bitset(rogue_onehot(instr->operands[u].type),
233 CHECKF(!(instr->operands[u].reg.number % rule->operand_rules[u].align),
239 CHECKF(rogue_validate_operand(&instr->operands[u]),
284 foreach_instr (instr, &shader->instr_list)
285 CHECKF(rogue_validate_instr(instr), "Failed to validate instruction.");