Oust HPPA PIC_OFFSET_TABLE_REGNUM_SAVED
John David Anglin
dave@hiauly1.hia.nrc.ca
Tue, 16 Jan 2001 22:54:45 -0500 (EST)
> ../../gcc/libgcc2.c:1043: warning: ICE: would have deleted prologue/epilogue ins
> n
> (insn 372 370 373 (set (reg:SI 4 %r4 [94])
> (reg:SI 19 %r19)) -1 (nil)
> (nil))
The patch has problems:
__floatditf
.PROC
.CALLINFO FRAME=192,CALLS,SAVE_RP,ENTRY_GR=4
.ENTRY
...
stw %r4,-72(%r30)
...
copy %r19,%r4
...
bl _U_Qfadd,%r2
stw %r19,-32(%r30)
copy %r3,%r28
...
ldw -212(%r30),%r2
ldw -72(%r30),%r4
ldw -68(%r30),%r3
bv %r0(%r2)
ldo -192(%r30),%r30
.EXIT
.PROCEND
The restoration of r19 after the call to _U_Qfadd is deleted in the flow2
pass. When this happens, the prologue save to r4 isn't needed leading to
the ICE warning. However, the restoration of r19 after the call shouldn't
be deleted because r19 is needed for the return (previous discussion).
We need a "use" in the return to prevent this.
The save of r19 to the stack looks extraneous but I think it is mandated
by the ABI.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)