summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_bld_type.h
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-04 11:51:13 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-29 09:21:23 +0100
commitf081bacc25fa62888f0983e8e9658325dc835e95 (patch)
tree471aab38703433c0c64d02cc9960f56085502397 /src/gallium/drivers/llvmpipe/lp_bld_type.h
parent696f7f2be51672da41a947a7028e01e82e44a09f (diff)
llvmpipe: Move p_build_context to lp_bld_type.h
As it will be shared with more modules.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_bld_type.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_bld_type.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_bld_type.h b/src/gallium/drivers/llvmpipe/lp_bld_type.h
index 4623183223..0eeaf7b6aa 100644
--- a/src/gallium/drivers/llvmpipe/lp_bld_type.h
+++ b/src/gallium/drivers/llvmpipe/lp_bld_type.h
@@ -108,6 +108,32 @@ union lp_type {
};
+/**
+ * We need most of the information here in order to correctly and efficiently
+ * translate an arithmetic operation into LLVM IR. Putting it here avoids the
+ * trouble of passing it as parameters.
+ */
+struct lp_build_context
+{
+ LLVMBuilderRef builder;
+
+ /**
+ * This not only describes the input/output LLVM types, but also whether
+ * to normalize/clamp the results.
+ */
+ union lp_type type;
+
+ /** Same as lp_build_undef(type) */
+ LLVMValueRef undef;
+
+ /** Same as lp_build_zero(type) */
+ LLVMValueRef zero;
+
+ /** Same as lp_build_one(type) */
+ LLVMValueRef one;
+};
+
+
LLVMTypeRef
lp_build_elem_type(union lp_type type);