Port-m68k archive

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

Re: More toolchain issues



On Tue, 29 Sep 2009 14:21:35 +0200
Martin Husemann <martin%duskware.de@localhost> wrote:

> On Tue, Sep 29, 2009 at 01:59:06PM +0200, Frank Wille wrote:
> >  #endif /* _REENTRANT */
> >         movl    #-1,%d0
> > +       movl    %d0,%a0
> >         movl    #-1,%d1
> >         rts
> > 
> > But maybe I'm missing something?
> 
> Wouldn't that erroneously clobber %a0 in error paths of calls not
> returning a pointer?

We should check the M68k/V.4-ABI specs, but I guess that the ABI defines
d0, d1, a0 and a1 as volatile registers over a function call. Integers
are returned in d0, (64-bit in d0/d1 ?) and pointers in a0.

Provided this is the case, there is no risk in clobbering a0 when the
caller expects an integer.

-- 
Frank Wille


Home | Main Index | Thread Index | Old Index