diff options
author | José Fonseca <[email protected]> | 2012-04-25 16:35:05 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2012-05-02 10:24:34 +0100 |
commit | 494619ebacb632a879ebeecf0a1d732c10ddf25b (patch) | |
tree | fddc0b030d87b07b212792acffca8342930d40b9 /src/gallium/auxiliary/gallivm | |
parent | 9ad2cb18857c1cd75ab073e8662700d1761c20ac (diff) |
gallivm: Use debug_printf in lp_build_printf.
So that its output can be seen on GUI window apps.
Tested-by: James Benton <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_printf.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c index 806b8e0d085..5e359ceaa20 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c @@ -81,17 +81,20 @@ lp_build_printf(struct gallivm_state *gallivm, const char *fmt, ...) int argcount = lp_get_printf_arg_count(fmt); LLVMBuilderRef builder = gallivm->builder; LLVMContextRef context = gallivm->context; - LLVMModuleRef module = gallivm->module; LLVMValueRef params[50]; LLVMValueRef fmtarg = lp_build_const_string(gallivm, fmt); - LLVMValueRef func_printf = LLVMGetNamedFunction(module, "printf"); + LLVMTypeRef printf_type; + LLVMValueRef func_printf; assert(Elements(params) >= argcount + 1); - if (!func_printf) { - LLVMTypeRef printf_type = LLVMFunctionType(LLVMIntTypeInContext(context, 32), NULL, 0, 1); - func_printf = LLVMAddFunction(module, "printf", printf_type); - } + printf_type = LLVMFunctionType(LLVMIntTypeInContext(context, 32), NULL, 0, 1); + + func_printf = lp_build_const_int_pointer(gallivm, func_to_pointer((func_pointer)debug_printf)); + + func_printf = LLVMBuildBitCast(gallivm->builder, func_printf, + LLVMPointerType(printf_type, 0), + "debug_printf"); params[0] = fmtarg; |