Lines Matching +full:check +full:- +full:patch

2  *  Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
33 for (i = 1; i < pkt->num_insns; i++) { in check_new_value()
34 uint16_t use_opcode = pkt->insn[i].opcode; in check_new_value()
38 int use_regidx = pkt->insn[i].new_read_idx; in check_new_value()
39 g_assert(pkt->insn[i].new_read_idx != -1); in check_new_value()
41 * What's encoded at the N-field is the offset to who's producing in check_new_value()
45 int def_off = ((pkt->insn[i].regno[use_regidx]) >> 1); in check_new_value()
46 int def_oreg = pkt->insn[i].regno[use_regidx] & 1; in check_new_value()
47 int def_idx = -1; in check_new_value()
48 for (j = i - 1; (j >= 0) && (def_off >= 0); j--) { in check_new_value()
49 if (!GET_ATTRIB(pkt->insn[j].opcode, A_CVI)) { in check_new_value()
52 def_off--; in check_new_value()
59 * Check for a badly encoded N-field which points to an instruction in check_new_value()
60 * out-of-range in check_new_value()
63 (def_idx > (pkt->num_insns - 1)))); in check_new_value()
66 def_opcode = pkt->insn[def_idx].opcode; in check_new_value()
67 if ((pkt->insn[def_idx].dest_idx == -1) && in check_new_value()
69 pkt->insn[i].regno[use_regidx] = def_oreg; in check_new_value()
70 pkt->insn[i].new_value_producer_slot = pkt->insn[def_idx].slot; in check_new_value()
72 if (pkt->insn[def_idx].dest_idx == -1) { in check_new_value()
77 pkt->insn[def_idx].regno[pkt->insn[def_idx].dest_idx]; in check_new_value()
78 /* Now patch up the consumer with the register number */ in check_new_value()
79 pkt->insn[i].regno[use_regidx] = def_regnum ^ def_oreg; in check_new_value()
82 * check if it was dynamically cancelled in check_new_value()
84 pkt->insn[i].new_value_producer_slot = pkt->insn[def_idx].slot; in check_new_value()
103 if (GET_ATTRIB(pkt->insn[i].opcode, A_CVI)) { in decode_mmvec_move_cvi_to_end()
104 int last_inst = pkt->num_insns - 1; in decode_mmvec_move_cvi_to_end()
105 uint16_t last_opcode = pkt->insn[last_inst].opcode; in decode_mmvec_move_cvi_to_end()
114 last_inst--; in decode_mmvec_move_cvi_to_end()
118 max--; in decode_mmvec_move_cvi_to_end()
119 i--; /* Retry this index now that packet has rotated */ in decode_mmvec_move_cvi_to_end()
131 for (i = 0; i < pkt->num_insns; i++) { in decode_shuffle_for_execution_vops()
132 uint16_t opcode = pkt->insn[i].opcode; in decode_shuffle_for_execution_vops()
146 for (i = 0; i < pkt->num_insns - 1; i++) { in decode_shuffle_for_execution_vops()
147 uint16_t opcode = pkt->insn[i].opcode; in decode_shuffle_for_execution_vops()
151 int last_inst = pkt->num_insns - 1; in decode_shuffle_for_execution_vops()
152 uint16_t last_opcode = pkt->insn[last_inst].opcode; in decode_shuffle_for_execution_vops()
161 last_inst--; in decode_shuffle_for_execution_vops()
173 pkt->vhist_insn = NULL; in check_for_vhist()
174 for (int i = 0; i < pkt->num_insns; i++) { in check_for_vhist()
175 Insn *insn = &pkt->insn[i]; in check_for_vhist()
176 int opcode = insn->opcode; in check_for_vhist()
178 pkt->vhist_insn = insn; in check_for_vhist()