summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c
index 41ba1f93f02..55451e4bcb2 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c
@@ -492,7 +492,8 @@ lp_emit_instruction_aos(
case TGSI_OPCODE_RSQ:
/* TGSI_OPCODE_RECIPSQRT */
src0 = lp_build_emit_fetch(&bld->bld_base, inst, 0, CHAN_ALL);
- tmp0 = lp_build_abs(&bld->bld_base.base, src0);
+ tmp0 = lp_build_emit_llvm_unary(&bld->bld_base, TGSI_OPCODE_ABS,
+ LLVMTypeOf(src0), src0);
dst0 = lp_build_rsqrt(&bld->bld_base.base, tmp0);
break;
@@ -636,11 +637,6 @@ lp_emit_instruction_aos(
case TGSI_OPCODE_XPD:
return FALSE;
- case TGSI_OPCODE_ABS:
- src0 = lp_build_emit_fetch(&bld->bld_base, inst, 0, CHAN_ALL);
- dst0 = lp_build_abs(&bld->bld_base.base, src0);
- break;
-
case TGSI_OPCODE_RCC:
/* deprecated? */
assert(0);
@@ -964,7 +960,11 @@ lp_emit_instruction_aos(
break;
default:
- return FALSE;
+ dst0 = lp_build_tgsi_inst_llvm_aos(&bld->bld_base, inst);
+ if (!dst0) {
+ return FALSE;
+ }
+ break;
}
if (info->num_dst) {
@@ -1015,6 +1015,9 @@ lp_build_tgsi_aos(struct gallivm_state *gallivm,
bld.bld_base.emit_fetch_funcs[TGSI_FILE_INPUT] = emit_fetch_input;
bld.bld_base.emit_fetch_funcs[TGSI_FILE_TEMPORARY] = emit_fetch_temporary;
+ /* Set opcode actions */
+ lp_set_default_actions(&bld.bld_base);
+
if (!lp_bld_tgsi_list_init(&bld.inst_list)) {
return;
}