illegal assembler output on ix86
Philippe De Muyter
phdm@macqel.be
Thu Nov 20 15:37:00 GMT 1997
> 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 */
More information about the Gcc
mailing list