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

Re: pa-risc/linux abi



> as if they were the same register to avoid unnecessary pipeline stalls.
> A very easy fix would be to use only the left or right all the time (thereby
> halving the number of available sp regs).  The way gcc presently does
> things,

This could be done.  The next passibilty is to disparge using left and
right in one instruction.  This is somewhat more difficult.  Finally,
avoiding using the left and right halves of the same register in one
insn is probably difficult as this is an overall constraint.  I'm not
sure how the register allocator would handle this.

> >> Debian HPPA is 32-bit ELF.
> >> HPUX is 32-bit SOM. Different binary format.
> >> I'm pretty sure the calling convention is the same for both.
> >
> >No, it is not the same. We cannot generate "pass fpregs in general
> >registers" as HPUX does, this would require tons of code in the linker
> >and stubs into/outof to move parameters around to the right places.
> >Aside from that major bit, we also probably differ in how we pass small
> >structs to functions. SOM was "ported" (and I use the word loosely) to
> >become ELF32 for hppa. We had to make things up as it went along.

The calling conventions are essentially the same.  However, there is
no argument adjustment of argument/return locations in ELF32.  In some
cases (varargs), float parameters are passed in both floating-point
and general registers.  The passing of small structs is the same.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)



Reply to: