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@mat.utfsm.cl> Daniel Serpell.

diff --git a/loader/signal.c b/loader/signal.c
index 6be2645..8e4d863 100644
--- a/loader/signal.c
+++ b/loader/signal.c
@@ -96,7 +96,7 @@
                           "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 cdbe7f3..e4bd230 100644
--- a/memory/ldt.c
+++ b/memory/ldt.c
@@ -39,7 +39,7 @@
                           "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 07d2650..668bf1a 100644
--- a/misc/port.c
+++ b/misc/port.c
@@ -88,7 +88,7 @@
                           "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;