This is the mail archive of the
libc-hacker@sourceware.cygnus.com
mailing list for the glibc project.
egcs 980520 miscompiles glibc/x86
- To: amylaar@cygnus.co.uk (Joern Rennecke)
- Subject: egcs 980520 miscompiles glibc/x86
- From: hjl@lucon.org (H.J. Lu)
- Date: Wed, 20 May 1998 16:53:28 -0700 (PDT)
- Cc: law@cygnus.com, wilson@cygnus.com, egcs@cygnus.com, libc-hacker@cygnus.com (GNU C Library)
>
> Oops, the actual change was missing in the previous patch.
>
> Wed May 20 20:54:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
>
> * reload1.c (reload_reg_free_before_p): Earlier inputs might
> now conflict.
>
egcs 980520 miscompiles glibc 2.1/x86. Here is the resulting asm
code:
0x4002fbb1 <__sigaction+429>: movl $0x43,%eax
0x4002fbb6 <__sigaction+434>: movl 0x8(%ebp),%edx
0x4002fbb9 <__sigaction+437>: movl 0xfffffea0(%ebp),%ecx
0x4002fbbf <__sigaction+443>: movl %edi,%edx
0x4002fbc1 <__sigaction+445>: pushl %ebx
0x4002fbc2 <__sigaction+446>: movl %edx,%ebx
0x4002fbc4 <__sigaction+448>: int $0x80
0x4002fbc6 <__sigaction+450>: popl %ebx
Here is the source:
asm volatile ("pushl %%ebx\n"
"movl %2, %%ebx\n"
"int $0x80\n"
"popl %%ebx"
: "=a" (result)
: "0" (SYS_ify (sigaction)), "r" (sig),
"c" (act ? &k_newact : 0), "d" (oact ? &k_oldact : 0));
As you can see, edx doesn't have "SIG" anymore. I think it may be
related to the reload1.c change and the new regression failure.
Thanks.
H.J.