Bug 84762 - GCC for PowerPC32 violates the SysV ABI spec for small struct returns

Lokesh Janghel lokeshjanghel91@gmail.com
Mon Nov 19 18:03:00 GMT 2018


Hi Segher,

I am building the GCC with the following configuration ( using gcc trunk ).
 ../gcc/configure --target=powerpc-linux
--prefix=/opt/buckeye/powerpc-linux --disable-shared --disable-threads
--enable-languages=c --with-newlib

And my assembly code (without optimization) is:
$ cc1   -msvr4-struct-return test.c
.LFB0:
        stwu 1,-32(1)
.LCFI0:
        stw 31,28(1)
.LCFI1:
        mr 31,1
.LCFI2:
        lis 9,.LC0@ha
        la 9,.LC0@l(9)
        lhz 10,0(9)
        lbz 9,2(9)
        sth 10,11(31)
        stb 9,13(31)
        lhz 10,11(31)
        lbz 9,13(31)
        sth 10,8(31)
        stb 9,10(31)
        li 9,0
        lbz 10,8(31)
        rlwinm 10,10,0,24,31
        slwi 10,10,16
        rlwinm 9,9,0,16,7
        or 9,9,10
        lbz 10,9(31)
        rlwinm 10,10,0,24,31
        slwi 10,10,8
        rlwinm 9,9,0,24,15
        or 9,9,10
         lbz 10,10(31)
        rlwinm 10,10,0,24,31
        rlwinm 9,9,0,0,23
        or 9,9,10
        mr 3,9
        addi 11,31,32
        lwz 31,-4(11)
.LCFI3:
        mr 1,11
.LCFI4:
        blr


Assembly code (with optimization -O2) is:
$ cc1   -msvr4-struct-return -O2 test.c
.LFB0:
        stwu 1,-32(1)
.LCFI0:
        lis 3,0x11
        ori 3,3,0x2233
        addi 1,1,32
.LCFI1:
        blr

As you mentioned assembly code in the GCC Bugzilla, I am not able to
reproduce the issue.
Please let me know your options used to reproduce this issue.

Sirl,
If you got the patch for this issue or will look into the issue.
-- 
Thanks & Regards
Lokesh Janghel



More information about the Gcc mailing list