Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Aug 2001 16:03:02 +0300
From:      Peter Pentchev <roam@ringlet.net>
To:        Valentin Nechayev <netch@iv.nn.kiev.ua>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, David O'Brien <obrien@FreeBSD.ORG>, freebsd-hackers@FreeBSD.ORG, Steve Roome <stephen_roome@yahoo.com>
Subject:   Re: function calls/rets in assembly
Message-ID:  <20010825160302.A559@ringworld.oblivion.bg>
In-Reply-To: <20010825154427.B761@iv.nn.kiev.ua>; from netch@iv.nn.kiev.ua on Sat, Aug 25, 2001 at 03:44:27PM %2B0300
References:  <20010824110805.C88259@dragon.nuxi.com> <XFMail.010824113645.jhb@FreeBSD.org> <20010825154427.B761@iv.nn.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 25, 2001 at 03:44:27PM +0300, Valentin Nechayev wrote:
>  Fri, Aug 24, 2001 at 11:36:45, jhb (John Baldwin) wrote about "Re: function calls/rets in assembly": 
> 
> > > printasint:
> > >       pushl %ebp
> > >       movl %esp,%ebp
> > >       subl $8,%esp
> > >       addl $-8,%esp
> [...]
> 
> > Because this code is broken and obfuscated? :)
> > 
> > We save %esp in %ebp (the only thing that keeps it from breaking) then
> > for some
> > reason allocate two quadwords on the stack unnecessarily, one using an add
> > instruction, one using a sub.
> 
> Because gcc has `-mpreferred-stack-boundary=4' default.
> Please read info gcc to realize what this option means.
> If you want to avoid this, compile with `-mpreferred-stack-boundary=2',
> as FreeBSD kernel is compiled. The only illogical thing here is
> that it doesn't gather two %esp moving instructions (one for frame of
> this function, one for frame for called function) to single one.
[snip]
> 
> Well, now you should add wanted options to /etc/make.conf and avoid
> seeing of such nightmares.

I wonder if a mentioning of -mpreferred-stack-boundary should be
added to tuning(7)..

G'luck,
Peter

-- 
No language can express every thought unambiguously, least of all this one.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010825160302.A559>