summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/ir3
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2014-09-09 22:52:54 -0400
committerRob Clark <[email protected]>2014-09-12 16:25:57 -0400
commit8edf83b37738393bede502aae937a868ed98fefd (patch)
tree14a9ade358d88209b38750bc84eaee26fb3eb75c /src/gallium/drivers/freedreno/ir3
parent10273f84c22a5baaa5d23ea4d408bc50ef2e3b6e (diff)
freedreno/ir3: add UARL support
Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_compiler.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
index aa6ffa885b1..c461c24ba52 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_compiler.c
@@ -1036,9 +1036,10 @@ trans_arl(const struct instr_translater *t,
*/
tmp_src = get_internal_temp(ctx, &tmp_dst);
- /* cov.f{32,16}s16 Rtmp, Rsrc */
+ /* cov.{u,f}{32,16}s16 Rtmp, Rsrc */
instr = instr_create(ctx, 1, 0);
- instr->cat1.src_type = get_ftype(ctx);
+ instr->cat1.src_type = (t->tgsi_opc == TGSI_OPCODE_ARL) ?
+ get_ftype(ctx) : get_utype(ctx);
instr->cat1.dst_type = TYPE_S16;
add_dst_reg(ctx, instr, &tmp_dst, chan)->flags |= IR3_REG_HALF;
add_src_reg(ctx, instr, src, chan);
@@ -2062,6 +2063,7 @@ static const struct instr_translater translaters[TGSI_OPCODE_LAST] = {
INSTR(SSG, instr_cat2, .opc = OPC_SIGN_F),
INSTR(CEIL, instr_cat2, .opc = OPC_CEIL_F),
INSTR(ARL, trans_arl),
+ INSTR(UARL, trans_arl),
INSTR(EX2, instr_cat4, .opc = OPC_EXP2),
INSTR(LG2, instr_cat4, .opc = OPC_LOG2),
INSTR(ABS, instr_cat2, .opc = OPC_ABSNEG_F),