split_complex_* flaw
Ian Lance Taylor
ian@wasabisystems.com
Sun Feb 1 14:25:00 GMT 2004
David Edelsohn <dje@watson.ibm.com> writes:
> Which symptom are we concerned about? On AIX and PPC64 Linux, the
> parameter save area is GPR register images. GPRs are doublewords for
> PPC64, so all parameter save area slots are doublewords. Float and
> _Complex float arguments only occupy half of the slot, but the slot still
> is a doubleword.
>
> A pointer to a complex float is a pointer to a pair of packed,
> adjacent floats occupying a doubleword, but the stack image is two
> doublewords.
As you know, I originally wrote the PPC64 Linux ABI to be calling
convention compatible with the 64-bit AIX ABI. I think that any
differences between the calling convention on AIX and Linux are the
result of independent evolution, or are mistakes.
The AIX documentation I was working from said this:
- Other scalar values, such as FORTRAN complex numbers, are mapped
to the number of doublewords required by their size.
I copied that directly into the PPC64 Linux ABI. That says pretty
clearly to me that complex float is represented as a single
doubleword, since that is all that the size requires.
So, did AIX change, or was the ABI documentation incorrect?
Ian
More information about the Gcc
mailing list