Date: Tue, 30 Nov 1999 19:01:23 +0100 From: Marcel Moolenaar <marcel@scc.nl> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: Ville-Pertti Keinonen <will@iki.fi>, current@FreeBSD.ORG Subject: Re: kernel: -mpreferred-stack-boundary=2 ?? Message-ID: <384410F3.F5247785@scc.nl> References: <19991130133337.25847.qmail@ns.demophon.com> <199911301735.JAA25885@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon wrote: > > :> > Anyhow, I'll repeat it here - stack alignment does *not* break > :> > link-compatibility. It does not change calling conventions, it just > :> > adds padding after the args to ensure that local variables can be > :> > predictably aligned. > : > :> So, how does aligning stackframes affect the inherently static property > :> of code size then? > : > :Instructions are inserted to perform that alignment (add padding). > :When the alignment is 2 (i.e. on 4-byte boundaries), no padding is > :required in typical cases. > > I can't think of a single case where the stack isn't inherently > 4-byte aligned already, whether you use the option or not. It's more a case of overriding the new behaviour of gcc to align the stack on 16-byte boundaries by default (for performance reasons for the PIII SIMD instructions, IIRC) > To whomever added the option: Did you actually test to see that > this option resulted in an improvement? If not, I recommend removing > it. It sounds like unnecessary extra junk to me. For the bootcode the option is necessary. It does remove a lot of "subl $..,%esp" instructions that bloated the code, which in turn prevented boot2 to build. It's not necessary for kernel/module builds. But the option does prevent a lot of unnecessary alignment instructions in the code... Maybe -mpreferred-stack-boundary=2 should be the default so that we don't need the option in the general case. Overriding this in certain cases, can be considered an optimisation... -- Marcel Moolenaar mailto:marcel@scc.nl SCC Internetworking & Databases http://www.scc.nl/ The FreeBSD project mailto:marcel@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?384410F3.F5247785>