From 4ede296356dcadef5cb12d2e828ee59a6a408d08 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sun, 21 Feb 1999 18:18:42 +0000 Subject: [PATCH] Change "g" (general regs) into "r" (hardregs) in clone / modify_ldt / wine_sigaction __PIC__ cases, since "g" will not work with -fomit-frame-pointer ("g" is referenced using %esp which was invalidated before). Bug found and (other) fix suggested by Daniel Serpell. --- loader/signal.c | 2 +- memory/ldt.c | 2 +- misc/port.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/loader/signal.c b/loader/signal.c index 6be2645b5c0..8e4d863cb26 100644 --- a/loader/signal.c +++ b/loader/signal.c @@ -96,7 +96,7 @@ static __inline__ int wine_sigaction( int sig, struct kernel_sigaction *new, "popl %%ebx" : "=a" (sig) : "0" (SYS_sigaction), - "g" (sig), + "r" (sig), "c" (new), "d" (old) ); #else diff --git a/memory/ldt.c b/memory/ldt.c index cdbe7f3c5d7..e4bd23076c6 100644 --- a/memory/ldt.c +++ b/memory/ldt.c @@ -39,7 +39,7 @@ static __inline__ int modify_ldt( int func, struct modify_ldt_s *ptr, "popl %%ebx" : "=a" (res) : "0" (SYS_modify_ldt), - "g" (func), + "r" (func), "c" (ptr), "d" (count) ); #else diff --git a/misc/port.c b/misc/port.c index 07d2650a7b4..668bf1a6902 100644 --- a/misc/port.c +++ b/misc/port.c @@ -88,7 +88,7 @@ int clone( int (*fn)(void *), void *stack, int flags, void *arg ) "xorl %%eax,%%eax\n\t" /* Just in case it does*/ "0:" : "=a" (ret) - : "0" (SYS_clone), "g" (flags), "c" (stack_ptr) ); + : "0" (SYS_clone), "r" (flags), "c" (stack_ptr) ); assert( ret ); /* If ret is 0, we returned from the child function */ if (ret > 0) return ret; errno = -ret;