__builtin_return_address update for SUNPRO_C on sparc
Gregg Mattinson
gm138242 at scot.canada.sun.com
Fri Jul 19 09:19:56 CDT 2002
I should have known better than to try and mix asm code and C looping
constructs. Here's a version of __builtin_return_address that works.
License: LGPL/X11
Diffed against 20020710 snapshot.
ChangeLog: include/winnt.h
- Fixed __builtin_return_address
Gregg Mattinson
Co-op Developer
Sun Microsystems of Canada
-------------- next part --------------
Index: include/winnt.h
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/include/winnt.h,v
retrieving revision 1.2
diff -u -r1.2 winnt.h
--- /tmp/T0ryaidh Fri Jul 19 10:15:39 2002
+++ winnt.h Fri Jul 19 10:14:31 2002
@@ -1142,9 +1142,15 @@
static DWORD __builtin_return_address(int p_iDepth)
{
asm("ta 3");
+ asm("tst %i0");
+ asm("be End");
asm("mov %fp, %l0");
- while (p_iDepth--)
- asm("ld [%l0+56], %l0");
+ asm("Start:");
+ asm("sub %i0, 1, %i0");
+ asm("tst %i0");
+ asm("bne Start");
+ asm("ld [%l0+56], %l0");
+ asm("End:");
asm("ld [%l0+60], %i0");
}
#endif
More information about the wine-patches
mailing list