Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Jan 2016 16:41:11 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        Roman Divacky <rdivacky@vlakno.cz>
Cc:        Nathan Whitehorn <nwhitehorn@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: 3 quick questions about stack alignment for powerpc (32-bit) signal handlers
Message-ID:  <0716BE3E-B7D1-4A10-B011-C1F0245296E7@dsl-only.net>
In-Reply-To: <20160131140807.GA83147@vlakno.cz>
References:  <517B7923-5166-42D0-8FA8-52C05F956F06@dsl-only.net> <20160131140807.GA83147@vlakno.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
I have submitted Bug 206810 for this 11.0-CURRENT/clang380-import stack =
alignment problem for TARGET_ARCH=3Dpowerpc signal delivery.

=3D=3D=3D
Mark Millard
markmi at dsl-only.net

On 2016-Jan-31, at 6:08 AM, Roman Divacky <rdivacky at vlakno.cz> wrote:

Fwiw, LLVM expect 16B aligned stack on PowerPC.

On Sun, Jan 31, 2016 at 05:55:20AM -0800, Mark Millard wrote:
> 3 quick FreeBSD for powerpc (32-bit) questions:
>=20
>=20
> A) For PowerPC (32-bit) what is the stack alignment requirement by the =
ABI(s) that FreeBSD targets?
>=20
> B) Are signal handlers supposed to be given that alignment?
>=20
>=20
> I ask because signal handlers are at times begin given just 4-byte =
alignment but clang 3.8.0 powerpc's code generation can depend on the =
alignment being more than 4.
>=20
> clang 3.8.0 can calculate addresses by, for example, masking in a 0x4 =
relative to what would need to be an aligned address with alignment 8 or =
more instead of adding 0x4 to a more arbitrary address.
>=20
> So far I've only seen less than 8 byte stack alignment via signal =
handler activity.
>=20
>=20
> C) Which should be blamed for problems here: clang's code generation, =
FreeBSD's stack alignment handling for signals, or both?
>=20
> =3D=3D=3D
> Mark Millard
> markmi at dsl-only.net
>=20
> _______________________________________________
> freebsd-toolchain@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
> To unsubscribe, send any mail to =
"freebsd-toolchain-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0716BE3E-B7D1-4A10-B011-C1F0245296E7>