NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-macppc/54827: alloca() is broken in gcc 8 on powerpc



The following reply was made to PR port-macppc/54827; it has been noted by GNATS.

From: "David H. Gutteridge" <david%gutteridge.ca@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: port-macppc/54827: alloca() is broken in gcc 8 on powerpc
Date: Mon, 06 Jan 2020 15:40:42 -0500

 I'm not sure there is an upstream GCC fix for this, as I've found the
 issue is isolated to the GCC built as part of the NetBSD tooling. That
 is, I tested by building the following natively on a G4 Mac:
 
 GCC 8.3 from the NetBSD tree
 GCC 8.3 from pkgsrc
 GCC 9-snapshot from pkgsrc-wip
 
 The two GCCs from pkgsrc generate the correct instruction (as
 previously detailed), where the one from the NetBSD src tree does not,
 e.g.:
 
 --- alloca-ppc8.s       2020-01-06 08:49:43.908981299 -0500
 +++ alloca-ppc8native.s 2020-01-06 11:21:06.732122549 -0500
 @@ -7,17 +7,17 @@
  foo:
  .LFB0:
         .cfi_startproc
 -       stwu 1,-32(1)
 -       .cfi_def_cfa_offset 32
 +       stwu 1,-48(1)
 +       .cfi_def_cfa_offset 48
         mflr 0
 -       stw 0,36(1)
 -       stw 31,28(1)
 +       stw 0,52(1)
 +       stw 31,44(1)
         .cfi_offset 65, 4
         .cfi_offset 31, -4
         mr 31,1
         .cfi_def_cfa_register 31
         lwz 9,0(1)
 -       stwu 9,-32(1)
 +       stwu 9,-16(1)
         addi 9,1,8
         addi 9,9,15
         srwi 9,9,4
 @@ -30,7 +30,7 @@
         lwz 3,8(31)
         bl bar
         nop
 -       addi 11,31,32
 +       addi 11,31,48
         lwz 0,4(11)
         mtlr 0
         lwz 31,-4(11)
 @@ -42,4 +42,4 @@
         .cfi_endproc
  .LFE0:
         .size   foo, .-foo
 -       .ident  "GCC: (GNU) 8.3.0"
 +       .ident  "GCC: (NetBSD nb1 20190930) 8.3.0"
 
 I also looked through GCC PRs and commit entries, but didn't find
 anything that seemed to directly relate to this. (Having said that, I'm
 out of my depths here, so I could well have missed something!)
 
 Dave
 
 


Home | Main Index | Thread Index | Old Index