FreeBSD/ppc ABI

Justin Hibbits jrh29 at alumni.cwru.edu
Tue Jul 7 17:07:02 UTC 2009


Thanks.  The trick is only needed in user space, as a shim between two
functions, so I just need any volatile registers that I can use but
aren't function arguments.  The target is G4/G5.  I only need 3 or 4
volatile registers, but the more the better.

- Justin

On Tue, Jul 7, 2009 at 11:56 AM, Rafal Jaworowski<raj at semihalf.com> wrote:
>
> On 2009-07-07, at 15:41, Justin Hibbits wrote:
>
>> What's the current FreeBSD/ppc ABI register usage?  I'm writing a
>> proxy function that messes with some arguments before making the
>> target function call, and need to know which registers are free for me
>> to use without having to save argument registers.  From reading the
>> gcc source it looks like it's a strict SysV R4 ABI, leaving r0, r11,
>> and r12 available for me to use.  Is this the case, and are there any
>> others available?
>
> We use the plain SVR4 ABI. My understanding is R0, R11 and R12 are among
> volatile group, so you should be careful. Can you use one of the SPRGs (what
> CPU is this, do you need to do the trick in user or supervisor mode)?
>
> Rafal
>
>


More information about the freebsd-ppc mailing list