openssl reveals a problem
Dima Volodin
dvv@egcs.dvv.ru
Tue Jan 11 10:51:00 GMT 2000
One question here. When compiling the that demonstated the now fixed bug
with the latest snapshot, I now get this code:
...
.stabn 68,0,4762,.LM99-des_ede3_cbcm_encrypt
.LM99:
xorl %edx, %edx
movb (%ebx), %dl
incl %ebx
movl %edx, 80(%esp)
xorl %eax, %eax
movl 80(%esp), %edx
movb (%ebx), %al
incl %ebx
sall $8, %eax
orl %eax, %edx
xorl %eax, %eax
movl %edx, 80(%esp)
movb (%ebx), %al
incl %ebx
sall $16, %eax
movl 80(%esp), %edx
orl %eax, %edx
xorl %eax, %eax
movl %edx, 80(%esp)
movb (%ebx), %al
incl %ebx
sall $24, %eax
movl 80(%esp), %edx
orl %eax, %edx
movl %edx, 80(%esp)
.stabn 68,0,4763,.LM100-des_ede3_cbcm_encrypt
.LM100:
addl $48, %esp
subl $8, %esp
movl 40(%esp), %eax
pushl %eax
pushl $.LC5
call printf
...
Note all those intermediate memory writes to a non-volatile auto
variable. Is it what I should expect from the compiler? And which part
of the compiler produces results like this - the machine-independent one
or the i386 definition?
(The stack pointer games are already discussed in a separate thread.)
Cheers!
Dima
On Thu, 06 Jan 2000 01:35:14 -0700, you wrote:
> In message < XFMail.000106172823.bregor@anusf.anu.edu.au >you write:
> >
> >
> > Ref:
> >
> > http://gcc.gnu.org/ml/gcc-bugs/1999-12/msg00419.html
> > http://gcc.gnu.org/ml/gcc-bugs/1999-12/msg00313.html etc.
> >
> >
> > It's fixed !!
> >
> > I presume that bug was nailed by:
> >
> > ================================================================
> >
> > CVSROOT: /cvs/gcc
> > Module name: egcs
> > Changes by: crux@sourceware.cygnus.com 00/01/05 04:41:07
> >
> > Modified files:
> > gcc : ChangeLog reload1.c
> >
> > Log message:
> > Incorrect code gen fix in reload
>Yes. We were working from a simpler (but alas commercial) testcase. This is
>also the fix for an ia32 fortran bug with -fomit-frame-pointer that someone
>has posted several times.
>
>jeff
>
>
More information about the Gcc-bugs
mailing list