This is the mail archive of the gcc-patches@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]

CVS-19981231: PATCH for incorrect label refs on i586-linux


Jeff, your recent change

Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)

	* i386.md (doubleword shifts): Avoid namespace pollution.

results in the following error while compiling libf2c/libF77/qbitbits.c:

/home/gnu/work/GNU/egcs-19981229-i586-linux/gcc/xgcc -B/home/gnu/work/GNU/egcs-19981229-i586-linux/gcc/ -B/tools/gnu/i586-linux/bin/ -c -DSkip_f2c_Undefs -I. -I../../../../egcs-19981229/libf2c/libF77 -I.. -I../../../../egcs-19981229/libf2c/libF77/..  -DSTDC_HEADERS=1 -DRETSIGTYPE=void -DIEEE_drem=1 -DSkip_f2c_Undefs=1  -O2 -g  ../../../../egcs-19981229/libf2c/libF77/qbitbits.c
/usr/tmp/ccgrcC6d.s: Assembler messages:
/usr/tmp/ccgrcC6d.s:125: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:139: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:234: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:249: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:285: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:294: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:325: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:380: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:400: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:423: Error: Ignoring junk ':' after expression
/usr/tmp/ccgrcC6d.s:443: Error: Ignoring junk ':' after expression
gmake[2]: *** [qbitbits.o] Error 1

The lines in question look like this:

	je .LLSHRDI0:

This is  caused by using  ASM_OUTPUT_INTERNAL_LABEL for outputting the
label ref for the "je" instruction (which emits a label *definition*),
while     it       should   have  been      a      call   sequence  of
ASM_GENERATE_INTERNAL_LABEL and assemble_name.

OK to install?

manfred

PS: A happy new year to everybody!


1998-12-31  Manfred Hollstein  <manfred@s-direktnet.de>

	* i386.md (doubleword shifts): Output label refs using
	ASM_GENERATE_INTERNAL_LABEL/assemble_name.

diff -rup -x CVS -x RCS -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x *~ -x version.el egcs-19981229.orig/gcc/config/i386/i386.md egcs-19981229/gcc/config/i386/i386.md
--- egcs-19981229.orig/gcc/config/i386/i386.md	Thu Dec 31 08:40:47 1998
+++ egcs-19981229/gcc/config/i386/i386.md	Thu Dec 31 14:21:13 1998
@@ -4688,6 +4688,7 @@ byte_xor_operation:
   "*
 {
   rtx xops[4], low[1], high[1];
+  char ashldi_label[20];
   static int ashldi_label_number;
 
   CC_STATUS_INIT;
@@ -4702,7 +4703,8 @@ byte_xor_operation:
   output_asm_insn (AS2 (sal%L2,%0,%2), xops);
   output_asm_insn (AS2 (test%B0,%1,%b0), xops);
   fputs (\"\\tje \", asm_out_file);
-  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHLDI\", ashldi_label_number);
+  ASM_GENERATE_INTERNAL_LABEL (ashldi_label, \"LASHLDI\", ashldi_label_number);
+  assemble_name (asm_out_file, ashldi_label);
   fputs (\"\\n\", asm_out_file);
   output_asm_insn (AS2 (mov%L3,%2,%3), xops);	/* Fast shift by 32 */
   output_asm_insn (AS2 (xor%L2,%2,%2), xops);
@@ -4878,6 +4880,7 @@ byte_xor_operation:
   "*
 {
   rtx xops[4], low[1], high[1];
+  char ashrdi_label[20];
   static int ashrdi_label_number;
 
   CC_STATUS_INIT;
@@ -4892,7 +4895,8 @@ byte_xor_operation:
   output_asm_insn (AS2 (sar%L3,%0,%3), xops);
   output_asm_insn (AS2 (test%B0,%1,%b0), xops);
   fputs (\"\\tje \", asm_out_file);
-  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LASHRDI\", ashrdi_label_number);
+  ASM_GENERATE_INTERNAL_LABEL (ashrdi_label, \"LASHRDI\", ashrdi_label_number);
+  assemble_name (asm_out_file, ashrdi_label);
   fputs (\"\\n\", asm_out_file);
   xops[1] = GEN_INT (31);
   output_asm_insn (AS2 (mov%L2,%3,%2), xops);
@@ -5044,6 +5048,7 @@ byte_xor_operation:
   "*
 {
   rtx xops[4], low[1], high[1];
+  char lshrdi_label[20];
   static int lshrdi_label_number;
 
   CC_STATUS_INIT;
@@ -5058,7 +5063,8 @@ byte_xor_operation:
   output_asm_insn (AS2 (shr%L3,%0,%3), xops);
   output_asm_insn (AS2 (test%B0,%1,%b0), xops);
   fputs (\"\\tje \", asm_out_file);
-  ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"LLSHRDI\", lshrdi_label_number);
+  ASM_GENERATE_INTERNAL_LABEL (lshrdi_label, \"LLSHRDI\", lshrdi_label_number);
+  assemble_name (asm_out_file, lshrdi_label);
   fputs (\"\\n\", asm_out_file);
   output_asm_insn (AS2 (mov%L2,%3,%2), xops);	/* Fast shift by 32 */
   output_asm_insn (AS2 (xor%L3,%3,%3), xops);


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