* config/i386/att.h (ASM_SHORT, ASM_LONG): Add trailing \t.
(ASM_DOUBLE): Remove.
* config/i386/bsd.h, config/i386/sco5.h: Likewise.
* config/i386/sun386.h: Likewise.
* config/i386/i386.h (UNALIGNED_SHORT_ASM_OP): New.
(UNALIGNED_INT_ASM_OP, INT_ASM_OP): New.
* config/i386/cygwin.h (INT_ASM_OP): Remove.
* config/i386/freebsd-aout.h, config/i386/i386-aout.h: Likewise.
* config/i386/i386-coff.h, config/i386/i386-interix.h: Likewise.
* config/i386/netbsd.h, config/i386/openbsd.h: Likewise.
* config/i386/cygwin.h: Adjust uses of ASM_LONG for trailing \t.
* config/i386/djgpp.h, config/i386/i386.h: Likewise.
* config/i386/i386elf.h, config/i386/ptx4-i.h: Likewise.
* config/i386/sco5.h, config/i386/svr3gas.h: Likewise.
* config/i386/sysv4.h, config/i386/vsta.h: Likewise.
* config/i386/win32.h: Likewise.
From-SVN: r42355
+2001-05-20 Richard Henderson <rth@redhat.com>
+
+ * config/i386/att.h (ASM_SHORT, ASM_LONG): Add trailing \t.
+ (ASM_DOUBLE): Remove.
+ * config/i386/bsd.h, config/i386/sco5.h: Likewise.
+ * config/i386/sun386.h: Likewise.
+
+ * config/i386/i386.h (UNALIGNED_SHORT_ASM_OP): New.
+ (UNALIGNED_INT_ASM_OP, INT_ASM_OP): New.
+
+ * config/i386/cygwin.h (INT_ASM_OP): Remove.
+ * config/i386/freebsd-aout.h, config/i386/i386-aout.h: Likewise.
+ * config/i386/i386-coff.h, config/i386/i386-interix.h: Likewise.
+ * config/i386/netbsd.h, config/i386/openbsd.h: Likewise.
+
+ * config/i386/cygwin.h: Adjust uses of ASM_LONG for trailing \t.
+ * config/i386/djgpp.h, config/i386/i386.h: Likewise.
+ * config/i386/i386elf.h, config/i386/ptx4-i.h: Likewise.
+ * config/i386/sco5.h, config/i386/svr3gas.h: Likewise.
+ * config/i386/sysv4.h, config/i386/vsta.h: Likewise.
+ * config/i386/win32.h: Likewise.
+
2001-05-20 Joseph S. Myers <jsm28@cam.ac.uk>
* invoke.texi: Add more options to summary list.
2001-05-18 Per Bothner <per@bothner.com>
- Changes needed for java/jvspec.c
- * gcc.h (n_infiles, outfiles): Add declarations.
- * gcc.c (n_infiles, outfiles): Mske no longer static.
+ Changes needed for java/jvspec.c
+ * gcc.h (n_infiles, outfiles): Add declarations.
+ * gcc.c (n_infiles, outfiles): Mske no longer static.
Fri May 18 10:14:42 2001 Jeffrey A Law (law@cygnus.com)
2001-05-16 Jakub Jelinek <jakub@redhat.com>
Nathan Sidwell <nathan@codesourcery.com>
- * gcc.c (give_switch): Don't write before start of string.
+ * gcc.c (give_switch): Don't write before start of string.
Always append suffix.
2001-05-16 Nathan Sidwell <nathan@codesourcery.com>
/* Assembler pseudos to introduce constants of various size. */
-/* #define ASM_BYTE_OP "\t.byte" Now in svr3.h or svr4.h. */
-#define ASM_SHORT "\t.value"
-#define ASM_LONG "\t.long"
-#define ASM_DOUBLE "\t.double"
+#define ASM_SHORT "\t.value\t"
+#define ASM_LONG "\t.long\t"
/* How to output an ASCII string constant. */
/* Assembler pseudos to introduce constants of various size. */
#define ASM_BYTE_OP "\t.byte\t"
-#define ASM_SHORT "\t.word"
-#define ASM_LONG "\t.long"
-#define ASM_DOUBLE "\t.double"
+#define ASM_SHORT "\t.word\t"
+#define ASM_LONG "\t.long\t"
/* Output at beginning of assembler file.
??? I am skeptical of this -- RMS. */
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define SET_ASM_OP "\t.set\t"
#endif
-#ifndef INT_ASM_OP
-#define INT_ASM_OP "\t.long\t"
-#endif
-
#undef MD_STARTFILE_PREFIX
#define MD_STARTFILE_PREFIX "/usr/lib/"
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
/* Define this so we can compile MS code for use with WINE. */
#define HANDLE_PRAGMA_PACK_PUSH_POP
-
-/* This is the pseudo-op used to generate a 32-bit word of data with a
- specific value in some section. */
-
-#define INT_ASM_OP "\t.long\t"
#undef CPP_PREDEFINES
#define CPP_PREDEFINES ""
-#define INT_ASM_OP "\t.long\t"
-
/* end of i386-aout.h */
} \
}
-#define INT_ASM_OP "\t.long\t"
-
/* A C statement (sans semicolon) to output an element in the table of
global constructors. */
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
(DECL) && TREE_READONLY (DECL) ? "a" : "aw")
#endif
-#define INT_ASM_OP "\t.long\t"
-
/* The MS compilers take alignment as a number of bytes, so we do as well */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf (FILE, "%s\t0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
+ fprintf (FILE, "%s0x%lx,0x%lx\n", ASM_LONG, l[0], l[1]); \
} while (0)
/* This is how to output a `long double' extended real constant. */
do { long l[4]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
if (TARGET_128BIT_LONG_DOUBLE) \
- fprintf (FILE, "%s\t0x%lx,0x%lx,0x%lx,0x0\n", ASM_LONG, l[0], l[1], l[2]); \
+ fprintf (FILE, "%s0x%lx,0x%lx,0x%lx,0x0\n", ASM_LONG, l[0], l[1], l[2]); \
else \
- fprintf (FILE, "%s\t0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
+ fprintf (FILE, "%s0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
} while (0)
/* This is how to output an assembler line defining a `float' constant. */
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
- fprintf ((FILE), "%s\t0x%lx\n", ASM_LONG, l); \
+ fprintf ((FILE), "%s0x%lx\n", ASM_LONG, l); \
} while (0)
/* Store in OUTPUT a string (made with alloca) containing
/* This is how to output an assembler line defining an `int' constant. */
#define ASM_OUTPUT_INT(FILE,VALUE) \
-( fprintf (FILE, "%s\t", ASM_LONG), \
+( fputs (ASM_LONG, FILE), \
output_addr_const (FILE,(VALUE)), \
putc('\n',FILE))
/* Likewise for `char' and `short' constants. */
-/* is this supposed to do align too?? */
#define ASM_OUTPUT_SHORT(FILE,VALUE) \
-( fprintf (FILE, "%s\t", ASM_SHORT), \
+( fputs (ASM_SHORT, FILE), \
output_addr_const (FILE,(VALUE)), \
putc('\n',FILE))
#define ASM_OUTPUT_CHAR(FILE,VALUE) \
-( fprintf (FILE, "%s", ASM_BYTE_OP), \
+( fputs (ASM_BYTE_OP, FILE), \
output_addr_const (FILE, (VALUE)), \
putc ('\n', FILE))
+/* Given that x86 natively supports unaligned data, it's reasonable to
+ assume that all x86 assemblers don't auto-align data. Thus the
+ unaligned output macros required by dwarf2 frame unwind information
+ degenerate to the macros used above. */
+#define UNALIGNED_SHORT_ASM_OP ASM_SHORT
+#define UNALIGNED_INT_ASM_OP ASM_LONG
+#define INT_ASM_OP ASM_LONG
+
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
*/
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
- fprintf (FILE, "%s %s%d\n", ASM_LONG, LPREFIX, VALUE)
+ fprintf (FILE, "%s%s%d\n", ASM_LONG, LPREFIX, VALUE)
/* This is how to output an element of a case-vector that is relative.
We don't use these on the 386 yet, because the ATT assembler can't do
*/
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t%s\t%s%d-%s%d\n",ASM_LONG, LPREFIX, VALUE, LPREFIX, REL)
+ fprintf (FILE, "%s%s%d-%s%d\n",ASM_LONG, LPREFIX, VALUE, LPREFIX, REL)
/* A C statement that outputs an address constant appropriate to
for DWARF debugging. */
do { long value; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value); \
else \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value); \
} while (0)
/* This is how to output assembly code to define a `double' constant.
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
} \
} while (0)
REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[2]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[2]); \
} \
} while (0)
/* Until they use ELF or something that handles dwarf2 unwinds
and initialization stuff better. */
#define DWARF2_UNWIND_INFO 0
-
-/* This is the pseudo-op used to generate a 32-bit word of data with a
- specific value in some section. */
-
-#define INT_ASM_OP "\t.long\t"
#endif
/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */
-
-/* This is the pseudo-op used to generate a 32-bit word of data with a
- specific value in some section. */
-
-#define INT_ASM_OP "\t.long\t"
do { long value; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value); \
else \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value); \
} while (0)
/* This is how to output assembly code to define a `double' constant.
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
} \
} while (0)
REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[2]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[2]); \
} \
} while (0)
#define INT_ASM_OP "\t.long\t"
#undef ASM_SHORT
-#define ASM_SHORT "\t.value"
+#define ASM_SHORT "\t.value\t"
#undef ASM_LONG
-#define ASM_LONG "\t.long"
-
-#undef ASM_DOUBLE
-#define ASM_DOUBLE "\t.double"
+#define ASM_LONG "\t.long\t"
#undef TYPE_ASM_OP
#define TYPE_ASM_OP "\t.type\t"
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
do { \
if (TARGET_ELF) \
- fprintf (FILE, "%s _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", ASM_LONG, LPREFIX, VALUE); \
+ fprintf (FILE, "%s_GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", ASM_LONG, LPREFIX, VALUE); \
else \
- fprintf (FILE, "\t.word %s%d-%s%d\n", LPREFIX,VALUE,LPREFIX,REL); \
+ fprintf (FILE, "%s%s%d-%s%d\n", ASM_LONG, LPREFIX,VALUE,LPREFIX,REL); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_COMMON
fprintf (FILE, "\n"); \
} else { \
fini_section (); \
- fprintf (FILE, "%s\t ", ASM_LONG); \
+ fprintf (FILE, "%s", INT_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); } \
} while (0)
/* Assembler pseudos to introduce constants of various size. */
#define ASM_BYTE_OP "\t.byte\t"
-#define ASM_SHORT "\t.value"
-#define ASM_LONG "\t.long"
-#define ASM_DOUBLE "\t.double"
+#define ASM_SHORT "\t.value\t"
+#define ASM_LONG "\t.long\t"
/* How to output an ASCII string constant. */
global destructors. */
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
- fini_section (); \
- fprintf (FILE, "%s\t ", ASM_LONG); \
+ fini_section (); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
do { long value; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value); \
else \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value); \
} while (0)
/* This is how to output assembly code to define a `double' constant.
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
} \
} while (0)
REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%x\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, value[2]); \
} \
else \
{ \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[0]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[1]); \
- fprintf((FILE), "%s\t0x%lx\n", ASM_LONG, value[2]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[0]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[1]); \
+ fprintf((FILE), "%s0x%lx\n", ASM_LONG, value[2]); \
} \
} while (0)
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtor_section (); \
- fprintf (FILE, "%s\t", ASM_LONG); \
+ fputs (ASM_LONG, FILE); \
assemble_name (FILE, NAME); \
fprintf (FILE, "\n"); \
} while (0)