[committed] Fix old PA 2.0 regression in output_call

John David Anglin dave@hiauly1.hia.nrc.ca
Tue Jan 6 04:21:00 GMT 2009


The attached patch fixes a problem in lzma when it is compiled with
-march=2.0.  The delay insn wasn't being relocated when a long absolute
call was output.

Tested on hppa-unknown-linux-gnu and hppa2.0w-hp-hpux11.11.
Committed to trunk.

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

2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_call): Relocate non-jump insns in the delay slot of long
	absolute calls when generating PA 2.0 code.

Index: config/pa/pa.c
===================================================================
--- config/pa/pa.c	(revision 143062)
+++ config/pa/pa.c	(working copy)
@@ -7547,7 +7547,9 @@
 	  if (seq_length != 0
 	      && GET_CODE (NEXT_INSN (insn)) != JUMP_INSN
 	      && !sibcall
-	      && (!TARGET_PA_20 || indirect_call))
+	      && (!TARGET_PA_20
+		  || indirect_call
+		  || ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic)))
 	    {
 	      /* A non-jump insn in the delay slot.  By definition we can
 		 emit this insn before the call (and in fact before argument



More information about the Gcc-patches mailing list