diff options
author | José Fonseca <jfonseca@vmware.com> | 2010-12-02 15:14:07 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2010-12-02 15:14:58 +0000 |
commit | 50a52ba67e06fa00e06d19370a0478a85f9011be (patch) | |
tree | 2695235052f1cb1d9cf4b46fad5187d49b792dbd | |
parent | 744ef8721b5ce0f6ea7f5a82d437e48d731803e3 (diff) |
util: __builtin_frame_address() doesn't work on mingw.
-rw-r--r-- | src/gallium/auxiliary/util/u_debug_stack.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/util/u_debug_stack.c b/src/gallium/auxiliary/util/u_debug_stack.c index 528a1c394b..24e039fd22 100644 --- a/src/gallium/auxiliary/util/u_debug_stack.c +++ b/src/gallium/auxiliary/util/u_debug_stack.c @@ -48,7 +48,10 @@ debug_backtrace_capture(struct debug_stack_frame *backtrace, if(!nr_frames) return; -#if defined(PIPE_CC_GCC) +#if defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86) + __asm__ __volatile__("mov (%%ebp),%0": "=r" (frame_pointer)); + frame_pointer = (const void **)frame_pointer[0]; +#elif defined(PIPE_CC_GCC) frame_pointer = ((const void **)__builtin_frame_address(1)); #elif defined(PIPE_CC_MSVC) && defined(PIPE_ARCH_X86) __asm { |