This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

Re: target/6869: G++ 3.1 generates incorrect assembler instructions


>  > 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
>  > 
>  > 	* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
>  > 	(output_call): Likewise.
> Ah yes.  Now I recall.  We fixed the assembler to require the explicit 
> %sr0,%r31
> per the PA2.0 manuals, but apparently forgot to update GCC at the same time.
> Sigh.  It's really annoying when the syntax for an instruction changes like
> this :(

Argh!  You need big code to check this.

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

2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Add missing '%' characters.
	(output_call): Likewise.

Index: config/pa/pa.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.166
diff -u -3 -p -r1.166 pa.c
--- config/pa/pa.c	31 May 2002 05:41:30 -0000	1.166
+++ config/pa/pa.c	31 May 2002 16:16:04 -0000
@@ -6100,7 +6100,7 @@ output_millicode_call (insn, call_dest)
 	  xoperands[0] = call_dest;
 	  output_asm_insn ("ldil L%%%0,%3", xoperands);
 	  if (TARGET_PA_20)
-	    output_asm_insn ("be,l R%%%0(%%sr4,%3),%sr0,%r31", xoperands);
+	    output_asm_insn ("be,l R%%%0(%%sr4,%3),%%sr0,%%r31", xoperands);
 	  else
 	    output_asm_insn ("ble R%%%0(%%sr4,%3)", xoperands);
 	  output_asm_insn ("nop", xoperands);
@@ -6359,7 +6359,7 @@ output_call (insn, call_dest, sibcall)
 		 add in the low part in the branch instruction.  */
 	      output_asm_insn ("ldil L%%$$dyncall,%%r2", xoperands);
 	      if (TARGET_PA_20)
-		output_asm_insn ("be,l R%%$$dyncall(%%sr4,%%r2),%sr0,%r31",
+		output_asm_insn ("be,l R%%$$dyncall(%%sr4,%%r2),%%sr0,%%r31",
 				 xoperands);
 	      else
 		output_asm_insn ("ble R%%$$dyncall(%%sr4,%%r2)", xoperands);


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