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