This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: openssl reveals a problem


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
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]