• Home
  • Raw
  • Download

Lines Matching refs:alu

177 	struct r600_bytecode_alu alu;  in egcm_load_index_reg()  local
187 memset(&alu, 0, sizeof(alu)); in egcm_load_index_reg()
188 alu.op = ALU_OP1_MOVA_INT; in egcm_load_index_reg()
189 alu.src[0].sel = bc->index_reg[id]; in egcm_load_index_reg()
190 alu.src[0].chan = 0; in egcm_load_index_reg()
192 alu.dst.sel = id == 0 ? CM_V_SQ_MOVA_DST_CF_IDX0 : CM_V_SQ_MOVA_DST_CF_IDX1; in egcm_load_index_reg()
194 alu.last = 1; in egcm_load_index_reg()
195 r = r600_bytecode_add_alu(bc, &alu); in egcm_load_index_reg()
202 memset(&alu, 0, sizeof(alu)); in egcm_load_index_reg()
203 alu.op = id == 0 ? ALU_OP0_SET_CF_IDX0 : ALU_OP0_SET_CF_IDX1; in egcm_load_index_reg()
204 alu.last = 1; in egcm_load_index_reg()
205 r = r600_bytecode_add_alu(bc, &alu); in egcm_load_index_reg()
257 int eg_bytecode_alu_build(struct r600_bytecode *bc, struct r600_bytecode_alu *alu, unsigned id) in eg_bytecode_alu_build() argument
259 if (alu->is_lds_idx_op) { in eg_bytecode_alu_build()
260 assert(!alu->src[0].abs && !alu->src[1].abs && !alu->src[2].abs); in eg_bytecode_alu_build()
261 assert(!alu->src[0].neg && !alu->src[1].neg && !alu->src[2].neg); in eg_bytecode_alu_build()
262 bc->bytecode[id++] = S_SQ_ALU_WORD0_SRC0_SEL(alu->src[0].sel) | in eg_bytecode_alu_build()
263 S_SQ_ALU_WORD0_SRC0_REL(alu->src[0].rel) | in eg_bytecode_alu_build()
264 S_SQ_ALU_WORD0_SRC0_CHAN(alu->src[0].chan) | in eg_bytecode_alu_build()
265 S_SQ_ALU_WORD0_LDS_IDX_OP_IDX_OFFSET_4(alu->lds_idx >> 4) | in eg_bytecode_alu_build()
266 S_SQ_ALU_WORD0_SRC1_SEL(alu->src[1].sel) | in eg_bytecode_alu_build()
267 S_SQ_ALU_WORD0_SRC1_REL(alu->src[1].rel) | in eg_bytecode_alu_build()
268 S_SQ_ALU_WORD0_SRC1_CHAN(alu->src[1].chan) | in eg_bytecode_alu_build()
269 S_SQ_ALU_WORD0_LDS_IDX_OP_IDX_OFFSET_5(alu->lds_idx >> 5) | in eg_bytecode_alu_build()
270 S_SQ_ALU_WORD0_INDEX_MODE(alu->index_mode) | in eg_bytecode_alu_build()
271 S_SQ_ALU_WORD0_PRED_SEL(alu->pred_sel) | in eg_bytecode_alu_build()
272 S_SQ_ALU_WORD0_LAST(alu->last); in eg_bytecode_alu_build()
274 bc->bytecode[id++] = S_SQ_ALU_WORD0_SRC0_SEL(alu->src[0].sel) | in eg_bytecode_alu_build()
275 S_SQ_ALU_WORD0_SRC0_REL(alu->src[0].rel) | in eg_bytecode_alu_build()
276 S_SQ_ALU_WORD0_SRC0_CHAN(alu->src[0].chan) | in eg_bytecode_alu_build()
277 S_SQ_ALU_WORD0_SRC0_NEG(alu->src[0].neg) | in eg_bytecode_alu_build()
278 S_SQ_ALU_WORD0_SRC1_SEL(alu->src[1].sel) | in eg_bytecode_alu_build()
279 S_SQ_ALU_WORD0_SRC1_REL(alu->src[1].rel) | in eg_bytecode_alu_build()
280 S_SQ_ALU_WORD0_SRC1_CHAN(alu->src[1].chan) | in eg_bytecode_alu_build()
281 S_SQ_ALU_WORD0_SRC1_NEG(alu->src[1].neg) | in eg_bytecode_alu_build()
282 S_SQ_ALU_WORD0_PRED_SEL(alu->pred_sel) | in eg_bytecode_alu_build()
283 S_SQ_ALU_WORD0_LAST(alu->last); in eg_bytecode_alu_build()
287 if (alu->is_lds_idx_op) { in eg_bytecode_alu_build()
288 unsigned lds_op = r600_isa_alu_opcode(bc->isa->hw_class, alu->op); in eg_bytecode_alu_build()
290 S_SQ_ALU_WORD1_OP3_SRC2_SEL(alu->src[2].sel) | in eg_bytecode_alu_build()
291 S_SQ_ALU_WORD1_OP3_SRC2_REL(alu->src[2].rel) | in eg_bytecode_alu_build()
292 S_SQ_ALU_WORD1_OP3_SRC2_CHAN(alu->src[2].chan) | in eg_bytecode_alu_build()
293 S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_1(alu->lds_idx >> 1) | in eg_bytecode_alu_build()
296 S_SQ_ALU_WORD1_BANK_SWIZZLE(alu->bank_swizzle) | in eg_bytecode_alu_build()
298 S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_0(alu->lds_idx) | in eg_bytecode_alu_build()
299 S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_2(alu->lds_idx >> 2) | in eg_bytecode_alu_build()
300 S_SQ_ALU_WORD1_DST_CHAN(alu->dst.chan) | in eg_bytecode_alu_build()
301 S_SQ_ALU_WORD1_LDS_IDX_OP_IDX_OFFSET_3(alu->lds_idx >> 3); in eg_bytecode_alu_build()
303 } else if (alu->is_op3) { in eg_bytecode_alu_build()
304 assert(!alu->src[0].abs && !alu->src[1].abs && !alu->src[2].abs); in eg_bytecode_alu_build()
305 bc->bytecode[id++] = S_SQ_ALU_WORD1_DST_GPR(alu->dst.sel) | in eg_bytecode_alu_build()
306 S_SQ_ALU_WORD1_DST_CHAN(alu->dst.chan) | in eg_bytecode_alu_build()
307 S_SQ_ALU_WORD1_DST_REL(alu->dst.rel) | in eg_bytecode_alu_build()
308 S_SQ_ALU_WORD1_CLAMP(alu->dst.clamp) | in eg_bytecode_alu_build()
309 S_SQ_ALU_WORD1_OP3_SRC2_SEL(alu->src[2].sel) | in eg_bytecode_alu_build()
310 S_SQ_ALU_WORD1_OP3_SRC2_REL(alu->src[2].rel) | in eg_bytecode_alu_build()
311 S_SQ_ALU_WORD1_OP3_SRC2_CHAN(alu->src[2].chan) | in eg_bytecode_alu_build()
312 S_SQ_ALU_WORD1_OP3_SRC2_NEG(alu->src[2].neg) | in eg_bytecode_alu_build()
313 S_SQ_ALU_WORD1_OP3_ALU_INST(r600_isa_alu_opcode(bc->isa->hw_class, alu->op)) | in eg_bytecode_alu_build()
314 S_SQ_ALU_WORD1_BANK_SWIZZLE(alu->bank_swizzle); in eg_bytecode_alu_build()
316 bc->bytecode[id++] = S_SQ_ALU_WORD1_DST_GPR(alu->dst.sel) | in eg_bytecode_alu_build()
317 S_SQ_ALU_WORD1_DST_CHAN(alu->dst.chan) | in eg_bytecode_alu_build()
318 S_SQ_ALU_WORD1_DST_REL(alu->dst.rel) | in eg_bytecode_alu_build()
319 S_SQ_ALU_WORD1_CLAMP(alu->dst.clamp) | in eg_bytecode_alu_build()
320 S_SQ_ALU_WORD1_OP2_SRC0_ABS(alu->src[0].abs) | in eg_bytecode_alu_build()
321 S_SQ_ALU_WORD1_OP2_SRC1_ABS(alu->src[1].abs) | in eg_bytecode_alu_build()
322 S_SQ_ALU_WORD1_OP2_WRITE_MASK(alu->dst.write) | in eg_bytecode_alu_build()
323 S_SQ_ALU_WORD1_OP2_OMOD(alu->omod) | in eg_bytecode_alu_build()
324 S_SQ_ALU_WORD1_OP2_ALU_INST(r600_isa_alu_opcode(bc->isa->hw_class, alu->op)) | in eg_bytecode_alu_build()
325 S_SQ_ALU_WORD1_BANK_SWIZZLE(alu->bank_swizzle) | in eg_bytecode_alu_build()
326 S_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(alu->execute_mask) | in eg_bytecode_alu_build()
327 S_SQ_ALU_WORD1_OP2_UPDATE_PRED(alu->update_pred); in eg_bytecode_alu_build()