Hi, On Wed, 9 Dec 2009, Andrew Haley wrote:
> > The intent of H.J.'s proposal is to require bits <7:1> == 0 in all cases > > (and higher bits as don't cares, the same way a char is passed), as > > opposed to the current text which requires <63:1> == 0 when passed as > > registers or on the stack (and <7:1> == 0 when stored in a memory > > object.) Furthermore, the current psABI text is inconsistent for > > arguments are return values; this is a bug in the wordsmithing of the > > text rather than intentional, if I remember the original discussions > > correctly. > > Surely Postel's Law applies: > > Be conservative in what you do; be liberal in what you accept from others. > > So, return values should be zero-extended to the full word, but we shouldn't > assume that parameters will be. We also try to be efficient (meaning not doing booleanization at producer _and_ consumer side), that's why we define an psABI at all. So, while generally a good principle, it shouldn't be applied blindly :) Ciao, Michael.