This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: illegal assembler output on ix86
- To: drepper at ipd dot info dot uni-karlsruhe dot de
- Subject: Re: illegal assembler output on ix86
- From: "Philippe De Muyter" <phdm at macqel dot be>
- Date: Thu, 20 Nov 1997 23:40:42 +0100 (MET)
- Cc: egcs at cygnus dot com
> I just checked updated my egcs archive and tried to compile
> it on ix86. The libgcc compilation failed because of illegal
> assembler code. The messages are:
>
> [...]
> .4byte *.LLCIE1 <<----- 178
> [...]
> .set *.LLCIE1,*.LECIE1-*.LSCIE1 <<----- 193
> [...]
> .set *.LLFDE1,*.LEFDE1-*.LSFDE1 <<----- 219
Try the following (and Jim or Jason please check it in).
This is against my sources. What got installed is perhaps slightly different.
Thu Nov 20 23:33:01 1997 Philippe De Muyter <phdm@macqel.be>
* dwarf2out.c (ASM_OUTPUT_DWARF_VALUE4) : Print label using
assemble_name, not '%s'.
(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Likewise.
--- /tmp/dm28991 Thu Nov 20 23:31:20 1997
+++ ./dwarf2out.c Thu Nov 20 23:30:44 1997
@@ -376,7 +376,9 @@ dwarf2out_do_frame ()
#ifndef ASM_OUTPUT_DWARF_VALUE4
#define ASM_OUTPUT_DWARF_VALUE4(FILE,LABEL) \
- fprintf ((FILE), "\t%s\t%s", UNALIGNED_INT_ASM_OP, LABEL)
+ do { fprintf ((FILE), "\t%s\t", UNALIGNED_INT_ASM_OP); \
+ assemble_name (FILE, LABEL); \
+ } while (0)
#endif
#else /* UNALIGNED_INT_ASM_OP */
@@ -422,7 +424,14 @@ dwarf2out_do_frame ()
#ifdef SET_ASM_OP
#ifndef ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL
#define ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL(FILE, SY, HI, LO) \
- fprintf (FILE, "\t%s\t%s,%s-%s\n", SET_ASM_OP, SY, HI, LO)
+ do { fprintf ((FILE), "\t%s\t", SET_ASM_OP); \
+ assemble_name (FILE, SY); \
+ fprintf ((FILE), ","); \
+ assemble_name (FILE, HI); \
+ fprintf ((FILE), "-"); \
+ assemble_name (FILE, LO); \
+ fprintf ((FILE), "\n"); \
+ } while (0)
#endif
#endif /* SET_ASM_OP */