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)