This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Long Double Register Spillage in PA Port


Hi, Jeff.

In my latest build (using the most recent snapshot), I get:

../../../libstdc++/std/ldcomplex.h: In method `complex<long
double>::complex (long double, long double)':
../../../libstdc++/std/ldcomplex.h:39: Unable to find a register to
spill in class `GENERAL_REGS'.
../../../libstdc++/std/ldcomplex.h:39: This is the insn:
(insn 10 17 12 (set (subreg:SI (reg/v:TF 40 %fr8) 0)
         (mem/f:SI (reg/v:SI 19 %r19) 0)) 69 {pre_ldw-4} (nil)
     (nil))
../../../libstdc++/std/ldcomplex.h:39: Internal compiler error in `
spill_failure', at reload1.c:1826

Is this something you've seen in other PA ports, or could this
be something just in my port?

I know that my function_args() was markedly different from yours
before the PA64 additions and now I don't recognize it at all :-)

In my function_args, I needed to consider that (at least for
the MPE port) arguments larger than 2 words were always passed
in the stack, regardless of whether or not arg0-arg3 were
available for the first long double. But, I don't see that is
the case in the current function_args. Note that this is class
GENERAL_REGS, so it appears that this might be the issue since
this long double value should be loaded into the GENERAL_REGS.

My copy of the calling convention doc (09740-90015) used by MPE
says:

"Any Larger Than 64 Bits: A short pointer (using sr5-sr7) to the
high-order byte of the value is passed as a nonfloating-point
32-bit value parameter."

Does HP-UX allow long doubles to be passed in registers for PA32?

TIA,


Regards,


Mark
--
Mark Klein                                 DIS International, Ltd.
http://www.dis.com                         415-892-8400
PGP Public Key Available			

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]