search for: emit_mov

Displaying 4 results from an estimated 4 matches for "emit_mov".

Did you mean: em_mov
2009 Jun 21
0
[PATCH] nv50: better insn generation
...insn(struct nv50_pc *pc, const union tgsi_full_token *tok) break; case TGSI_OPCODE_COS: temp = temp_temp(pc); + rtmp = *pp_rtmp; emit_precossin(pc, temp, src[0][0]); - emit_flop(pc, 5, temp, temp); - for (c = 0; c < 4; c++) { - if (!(mask & (1 << c))) - continue; - emit_mov(pc, dst[c], temp); - } + emit_flop(pc, 5, rtmp, temp); break; case TGSI_OPCODE_DP3: temp = temp_temp(pc); + rtmp = *pp_rtmp; emit_mul(pc, temp, src[0][0], src[1][0]); emit_mad(pc, temp, src[0][1], src[1][1], temp); - emit_mad(pc, temp, src[0][2], src[1][2], temp); - for (c = 0; c...
2009 May 06
2
nv50: shader generation patches
Hi ! I've been trying to improve NV50 shader generation a bit the last couple of weeks, so here is what I've produced. I don't know if it's usable for you or just a pile of horrible hacks, but at least it makes some mesa demos render more correcly, p.e. the teapot (aside from mip-mapping issues of the floor texture), arbfplight, and I think the gears also didn't appear as they
2009 Jun 24
0
[PATCH] nv50: fix previous patches
...move_outputs(struct nv50_pc *pc) ctor_reg(&out, P_TEMP, -1, -1); for (i = 0; i < pc->result_nr * 4; i++) { - if (pc->result[i].rhw < 0) + if (pc->result[i].rhw < 0 || + pc->result[i].rhw == pc->result[i].hw) continue; out.hw = pc->result[i].rhw; emit_mov(pc, &out, &pc->result[i]); @@ -2337,7 +2349,7 @@ static void nv50_program_tx_postprocess(struct nv50_pc *pc) if (pc->p->type == PIPE_SHADER_FRAGMENT) nv50fp_move_outputs(pc); else - if (pc->p->type == PIPE_SHADER_VERTEX) + if (pc->p->type == PIPE_SHADER_VERTEX &a...
2009 Jun 21
0
[PATCH] nv50: initial support for IF, ELSE, ENDIF insns
...xec *e) p->exec_head = e; p->exec_tail = e; p->exec_size += (e->inst[0] & 1) ? 2 : 1; + + if (pc->join_on) { + e->inst[1] |= 0x00000002; + pc->join_on = FALSE; + } } static INLINE void set_long(struct nv50_pc *, struct nv50_program_exec *); @@ -524,6 +521,28 @@ emit_mov_immdval(struct nv50_pc *pc, struct nv50_reg *dst, float f) FREE(imm); } +/* Assign the hw of the discarded temporary register src + * to the tgsi register dst and free src. + */ +static void +assimilate_temp(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src) +{ + assert(src->in...