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]
Other format: [Raw text]

[Bug middle-end/19616] [4.0 regression] missed tail call


------- Additional Comments From steven at gcc dot gnu dot org  2005-01-25 02:42 -------
D'oh!  Of course this affects i686 too, just need to set up the stack, e.g. 
 
void bar (double); 
void foo (double a) { bar (0.0); } 
 
Without patch: 
foo: 
        pushl   %ebp 
        movl    %esp, %ebp 
        subl    $8, %esp 
        movl    $0, (%esp) 
        movl    $0, 4(%esp) 
        call    bar 
        leave 
        ret 
 
With patch: 
foo: 
        pushl   %ebp 
        movl    %esp, %ebp 
        movl    $0, 8(%ebp) 
        movl    $0, 12(%ebp) 
        leave 
        jmp     bar 
 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|x86_64-*-*                  |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19616


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