gallivm: re-org, comments for get_temp_ptr()

This commit is contained in:
Brian Paul
2010-07-21 08:18:56 -06:00
parent 6921a6dd4e
commit 695814a15b
@@ -405,6 +405,15 @@ static void lp_exec_mask_endsub(struct lp_exec_mask *mask, int *pc)
lp_exec_mask_update(mask);
}
/**
* Return pointer to a temporary register channel (src or dest).
* \param index which temporary register
* \param chan which channel of the temp register.
* \param is_indirect if true, add 'addr' to the index
* \param addr indirect addressing offset (should already have been
* multiplied by four).
*/
static LLVMValueRef
get_temp_ptr(struct lp_build_tgsi_soa_context *bld,
unsigned index,
@@ -413,15 +422,16 @@ get_temp_ptr(struct lp_build_tgsi_soa_context *bld,
LLVMValueRef addr)
{
assert(chan < 4);
if (!bld->has_indirect_addressing) {
return bld->temps[index][chan];
} else {
if (bld->has_indirect_addressing) {
LLVMValueRef lindex =
LLVMConstInt(LLVMInt32Type(), index * 4 + chan, 0);
if (is_indirect)
lindex = lp_build_add(&bld->base, lindex, addr);
return LLVMBuildGEP(bld->base.builder, bld->temps_array, &lindex, 1, "");
}
else {
return bld->temps[index][chan];
}
}