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