summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-05-10 08:30:28 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-05-10 08:31:54 +0100
commite3205b05407473e462f2c3668f56062da00ee0ea (patch)
tree48aae9d5299741dbb72e05bdc5b809698b8bfb51
parent7c5e2672f050644bcab6902b11d0ff4036603bb3 (diff)
gallivm: cosf/sinf are macros on MSVC.
So taking the function address does not work.
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_arit.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index 9aea04e05be..0f56f2a1d68 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -1231,18 +1231,28 @@ lp_build_sincos(struct lp_build_context *bld,
return res;
}
+static float c_cosf( float f )
+{
+ return (float) cos( (double) f );
+}
+
+static float c_sinf( float f )
+{
+ return (float) sin( (double) f );
+}
+
LLVMValueRef
lp_build_cos(struct lp_build_context *bld,
LLVMValueRef a)
{
- return lp_build_sincos(bld, "cosf", &cosf, a);
+ return lp_build_sincos(bld, "cosf", &c_cosf, a);
}
LLVMValueRef
lp_build_sin(struct lp_build_context *bld,
LLVMValueRef a)
{
- return lp_build_sincos(bld, "sinf", &sinf, a);
+ return lp_build_sincos(bld, "sinf", &c_sinf, a);
}
#else /* !PIPE_OS_WINDOWS */