------- Comment #6 from r dot emrich at de dot tecosim dot com  2009-01-28 
14:45 -------
(In reply to comment #3)
> We need the preprocessed source of a *complete* (including main) program to be
> able to reproduce this.
> 

That's a little bit difficult here. It's a really large application.
But what I see from the assembler source is the following.

The spnapshot produces:

.globl __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_
        .def    __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_;    .scl   
2;      .type   32;     .endef
__Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_:
        subq    $8, %rsp
        xorpd   %xmm3, %xmm3
.
.
.
L15:
        addq    $8, %rsp
        ret

here the function returns.


trunk produces:

.globl __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_
        .def    __Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_;    .scl   
2;      .type   32;     .endef
__Z18calc_tria_height_2P4NODES0_S0_RSoRiS2_RdS3_S3_:
        subq    $88, %rsp
        xorpd   %xmm3, %xmm3
.
.
.
        movsd   %xmm8, (%rax)
        ret

This looks like the stackpointer is no restored.


-- 


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

Reply via email to