Port-sparc64 archive

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

Re: Stack bias

> That is correct.  The %o6/%sp definition as a stack point is part of
> the ABI.  You can write sparc(64) code w/o stack, but you can not run
> them as NetBSD userland binaries (nor solaris or whatever).

"Without stack" != "using %o6 as a stack pointer".  Leaf routines may
very well need %sp for nothing at all - everything they need of the
stack may come off %fp.

Of course, this isn't to say your second sentence is false, just that I
think it's a stupid design (not the first, won't be the last).  (It
also means there's another, noise, message on the subject in the
pipeline which people will probably see and respnod to before seeing
this, sigh.)  But even given an ABI that imposes such semantics on %o6,
using the low bit of it to indicate whether the high halves of all the
other registers hold anything strikes me as rather brittle, producing
some extremely-difficult-to-debug failure modes.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Home | Main Index | Thread Index | Old Index