[llvm-commits] New FastCC breaks struct return

Evan Cheng evan.cheng at apple.com
Wed Sep 10 08:51:10 PDT 2008


I'll take a look. Can you send me a bc file?

Thanks,

Evan

On Sep 10, 2008, at 7:41 AM, Duncan Sands wrote:

> Hi Evan, it looks like the reason the new FastCC
> calling convention broke several Ada tests is that
> it doesn't interact properly with struct return.
> Here are the differences between working (no FastCC)
> and not working (FastCC):
>
>        subl    $8, %esp                                       
> |         leal    -32(%ebp), %ecx
>        leal    -32(%ebp), %eax                               <
>        movl    %eax, (%esp)                                  <
>        call    c34005c__pkg__create. 
> 234                                call    c34005c__pkg__create.234
>        addl    $4, %esp                                      <
>
> where c34005c__pkg__create.234 is:
>
> define internal fastcc void @c34005c__pkg__create. 
> 234(%struct.c34005c__TsB___XUP* noalias sret %agg.result) {
>
> The call was in fact an invoke.
>
> Best wishes,
>
> Duncan.




More information about the llvm-commits mailing list