+2001-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alpha/unicosmk.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Fix
+ format specifier warning.
+ * convex.h (ASM_OUTPUT_BYTE): Likewise.
+ * elfos.h (ALIGN_ASM_OP): Undef before defining.
+ * i386/att.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier
+ warning.
+ * i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/gas.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386-interix.h (gen_stdcall_suffix): Prototype.
+ * i386.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
+ * i386elf.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_LONG_DOUBLE): Likewise.
+ * i386/interix.c (gen_stdcall_suffix): Const-ify.
+ * i386/next.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Fix format
+ specifier warnings.
+ * i386/osfrose.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/ptx4-i.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_LONG_DOUBLE): Likewise.
+ * i386/sco5.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/sequent.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/sun386.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/svr3dbx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE,
+ ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * m68k/altos3068.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
+ * m68k/amix.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
+ Likewise.
+ * m68k/atari.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL):
+ Likewise.
+ * m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Likewise.
+ * m68k/dpx2.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, ASM_OUTPUT_FLOAT_OPERAND):
+ Likewise.
+ * m68k/hp320.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE):
+ Likewise.
+ * m68k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
+ Likewise.
+ * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Delete unused variable.
+ * m68k/mot3300.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
+ * m68k/news.h (PRINT_OPERAND): Likewise.
+ * m68k/next.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT,
+ ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
+ * m68k/next21.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
+ * m68k/plexus.h (ASM_SPEC): Insert space between macro name and
+ definition.
+ * m68k/sgs.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_FLOAT, ASM_OUTPUT_ASCII, ASM_OUTPUT_FLOAT_OPERAND,
+ ASM_OUTPUT_DOUBLE_OPERAND): Fix format specifier warnings.
+ * m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise.
+ * m68k/tower-as.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_DOUBLE,
+ ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE,
+ PRINT_OPERAND): Likewise.
+ * m88k/m88k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE):
+ Likewise.
+ * mips/elf.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
+ * mips/elf64.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise.
+ * mips/iris5gas.h (PUT_SDB_SIZE): Likewise.
+ * mips/linux.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+ * mips.c (mips_output_external_libcall): Mark parameter with
+ ATTRIBUTE_UNUSED.
+ (mips_asm_file_start): Move variable into the scope where it's
+ used.
+ * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise.
+ * mips/netbsd.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+ * mips/sni-gas.h (PUT_SDB_SIZE): Likewise.
+ * ns32k/encore.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * ns32k.c (print_operand): Likewise.
+ * pa.c (print_operand, output_div_insn): Likewise.
+ * pa.h (ASM_OUTPUT_MI_THUNK, ASM_GENERATE_INTERNAL_LABEL,
+ ASM_OUTPUT_BYTE, PRINT_OPERAND_ADDRESS): Likewise.
+ * pa/pa64-hpux.h (UNIQUE_SECTION): Const-ify.
+ * sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
+ specifier warnings.
+ * sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * sparc/pbd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ (ASM_OUTPUT_SOURCE_LINE): Don't list macro arguments in undef.
+ * sparc/vxsim.h (ASM_GENERATE_INTERNAL_LABEL): Fix format
+ specifier warnings.
+ * svr3.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+
+ * sdbout.c (sdbout_end_epilogue): Mark parameter with
+ ATTRIBUTE_UNUSED.
+ * varasm.c (assemble_global): Likewise.
+
2001-11-11 H.J. Lu <hjl@gnu.org>
* config.gcc: Add "elfos.h svr4.h" to $tm_file for Linux/mips.
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long t[2]; \
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), t); \
- fprintf (FILE, "\t.quad ^X%x\n", t[0]); \
+ fprintf (FILE, "\t.quad ^X%lx\n", t[0]); \
} while(0)
#endif
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long t; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), t); \
- fprintf (FILE, "\t.long ^X%x\n", t & 0xffffffff);\
+ fprintf (FILE, "\t.long ^X%lx\n", t & 0xffffffff);\
} while (0)
#else
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long t; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), t); \
- fprintf (FILE, "\t.long ^X%x\n", (t >> 32) & 0xffffffff);\
+ fprintf (FILE, "\t.long ^X%lx\n", (t >> 32) & 0xffffffff);\
} while(0)
#endif
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\tds.b %#x\n", (VALUE))
+ fprintf (FILE, "\tds.b %#x\n", (int)(VALUE))
/* This is how to output a string */
make sure that the location counter for the .rodata section gets pro-
perly re-aligned prior to the actual beginning of the jump table. */
+#undef ALIGN_ASM_OP
#define ALIGN_ASM_OP "\t.align\t"
#ifndef ASM_OUTPUT_BEFORE_CASE_LABEL
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "%s%s%d", LOCAL_LABEL_PREFIX, (PREFIX), (NUMBER))
+ sprintf ((BUF), "%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUMBER))
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */
#ifdef NO_UNDERSCORES
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*.%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*.%s%ld", (PREFIX), (long)(NUMBER))
#else
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER))
#endif
/* This is how to output an internal numbered label where
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), ".%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), ".%s%ld", (PREFIX), (long)(NUMBER))
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */
stddef renaming does NOT apply to Alpha. */
-char *gen_stdcall_suffix ();
+union tree_node;
+const char *gen_stdcall_suffix PARAMS ((union tree_node *));
#undef ENCODE_SECTION_INFO
#define ENCODE_SECTION_INFO(DECL) \
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- asm_fprintf ((FILE), "%s0x%x\n", ASM_BYTE_OP, (VALUE))
+ asm_fprintf ((FILE), "%s0x%x\n", ASM_BYTE_OP, (int) (VALUE))
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
do { long value; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
- fprintf((FILE), "%s0x%x\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value); \
else \
fprintf((FILE), "%s0x%lx\n", ASM_LONG, value); \
} while (0)
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- 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, (int) value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[1]); \
} \
else \
{ \
REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- 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]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[2]); \
} \
else \
{ \
suffix consisting of an atsign (@) followed by the number of bytes of
arguments */
-char *
+const char *
gen_stdcall_suffix (decl)
tree decl;
{
int total = 0;
/* ??? This probably should use XSTR (XEXP (DECL_RTL (decl), 0), 0) instead
of DECL_ASSEMBLER_NAME. */
- char *asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+ const char *const asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
char *newsym;
if (TYPE_ARG_TYPES (TREE_TYPE (decl)))
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n\t.long 0x%x\n", \
- hex[0], hex[1], hex[2]); \
+ (int) hex[0], (int) hex[1], (int) hex[2]); \
else \
fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n\t.long 0x%lx\n", \
hex[0], hex[1], hex[2]); \
long hex[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
- fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n", hex[0], hex[1]); \
+ fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n", \
+ (int) hex[0], (int) hex[1]); \
else \
fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", hex[0], hex[1]); \
} while (0)
long hex; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, hex); \
if (sizeof (int) == sizeof (long)) \
- fprintf (FILE, "\t.long 0x%x\n", hex); \
+ fprintf (FILE, "\t.long 0x%x\n", (int) hex); \
else \
fprintf (FILE, "\t.long 0x%lx\n", hex); \
} while (0)
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER))
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*%s%s%d", (TARGET_UNDERSCORES) ? "" : ".", \
- (PREFIX), (NUMBER))
+ sprintf ((BUF), "*%s%s%ld", (TARGET_UNDERSCORES) ? "" : ".", \
+ (PREFIX), (long)(NUMBER))
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */
do { long value; \
REAL_VALUE_TO_TARGET_SINGLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
- fprintf((FILE), "%s0x%x\n", ASM_LONG, value); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value); \
else \
fprintf((FILE), "%s0x%lx\n", ASM_LONG, value); \
} while (0)
REAL_VALUE_TO_TARGET_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- 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, (int) value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[1]); \
} \
else \
{ \
REAL_VALUE_TO_TARGET_LONG_DOUBLE ((VALUE), value); \
if (sizeof (int) == sizeof (long)) \
{ \
- 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]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[0]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[1]); \
+ fprintf((FILE), "%s0x%x\n", ASM_LONG, (int) value[2]); \
} \
else \
{ \
#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
do { \
if (TARGET_ELF) \
- sprintf (LABEL, "*.%s%d", (PREFIX), (NUM)); \
+ sprintf (LABEL, "*.%s%ld", (PREFIX), (long)(NUM)); \
else \
- sprintf (LABEL, ".%s%d", (PREFIX), (NUM)); \
+ sprintf (LABEL, ".%s%ld", (PREFIX), (long)(NUM)); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_COMMON
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)\
- sprintf ((BUF), "*.%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*.%s%ld", (PREFIX), (long)(NUMBER))
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)\
This is suitable for output with `assemble_name'. */
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*.%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*.%s%ld", (PREFIX), (long)(NUMBER))
/* The prefix to add to user-visible assembler symbols. */
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
- sprintf ((BUF), "*.%s%d", (PREFIX), (NUMBER))
+ sprintf ((BUF), "*.%s%ld", (PREFIX), (long)(NUMBER))
/* With the current gas, .align N aligns to an N-byte boundary.
This is done to be compatible with the system assembler.
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tlong 0x%x,0x%x\n", l[0], l[1]); \
+ fprintf (FILE, "\tlong 0x%lx,0x%lx\n", l[0], l[1]); \
} while (0)
#undef ASM_OUTPUT_LONG_DOUBLE
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tlong 0x%x,0x%x,0x%x\n", l[0], l[1], l[2]); \
+ fprintf (FILE, "\tlong 0x%lx,0x%lx,0x%lx\n", 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), "\tlong 0x%x\n", l); \
+ fprintf ((FILE), "\tlong 0x%lx\n", l); \
} while (0)
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
}}
#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
- sprintf ((LABEL), "%s%%%d", (PREFIX), (NUM))
+ sprintf ((LABEL), "%s%%%ld", (PREFIX), (long)(NUM))
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
fprintf (FILE, "%s%%%d:\n", PREFIX, NUM)
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%x", (int) l); \
else \
asm_fprintf ((FILE), "%I0x%lx", l); \
} \
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
- register int sp = 0, lp = 0, ch; \
+ register int sp = 0, ch; \
fprintf ((FILE), "%s", BYTE_ASM_OP); \
do { \
ch = (PTR)[sp]; \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
if (flag_pic && !strcmp(PREFIX,"LC")) \
- sprintf (LABEL, "*%s%%%d", PREFIX, NUM); \
+ sprintf (LABEL, "*%s%%%ld", PREFIX, (long)(NUM)); \
else \
- sprintf (LABEL, "*%s%s%d", LOCAL_LABEL_PREFIX, PREFIX, NUM)
+ sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM))
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
{ \
- register int sp = 0, lp = 0, ch; \
+ register int sp = 0, ch; \
fprintf ((FILE), "%s", BYTE_ASM_OP); \
do { \
ch = (PTR)[sp]; \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
if (flag_pic && !strcmp(PREFIX,"LC")) \
- sprintf (LABEL, "*%s%%%d", PREFIX, NUM); \
+ sprintf (LABEL, "*%s%%%ld", PREFIX, (long)(NUM)); \
else \
- sprintf (LABEL, "*%s%s%d", LOCAL_LABEL_PREFIX, PREFIX, NUM)
+ sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM))
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
/* This is how to output an assembler line defining a `double' constant. */
-#undef ASM_OUTPUT_DOUBLE
+#undef ASM_OUTPUT_DOUBLE
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf (FILE, "\t.long 0x%x, 0x%x\n", l[0], l[1]); \
+ fprintf (FILE, "\t.long 0x%lx, 0x%lx\n", l[0], l[1]); \
} while (0)
/*unos has no .skip :-( */
ASM_OUTPUT_FLOAT_OPERAND (CODE, FILE, r); \
else \
{ REAL_VALUE_TO_TARGET_SINGLE (r, l); \
- fprintf (FILE, "$0x%x", l); } } \
+ fprintf (FILE, "$0x%lx", l); } } \
else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == DFmode) \
{ REAL_VALUE_TYPE r; \
REAL_VALUE_FROM_CONST_DOUBLE (r, X); \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- fprintf (FILE, "\tdc.l $%x,$%x,$%x\n", l[0], l[1], l[2]); \
+ fprintf (FILE, "\tdc.l $%x,$%x,$%x\n", (int)l[0], (int)l[1], (int)l[2]); \
else \
fprintf (FILE, "\tdc.l $%lx,$%lx,$%lx\n", l[0], l[1], l[2]); \
} while (0)
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tdc.l $%x,$%x\n", l[0], l[1]); \
+ fprintf (FILE, "\tdc.l $%lx,$%lx\n", l[0], l[1]); \
} while (0)
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- fprintf (FILE, "\tdc.l $%x\n", l); \
+ fprintf (FILE, "\tdc.l $%x\n", (int) l); \
else \
fprintf (FILE, "\tdc.l $%lx\n", l); \
} while (0)
/* This is how to output an assembler line for a numeric constant byte. */
#undef ASM_OUTPUT_BYTE
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\tdc.b $%x\n", (VALUE))
+ fprintf (FILE, "\tdc.b $%x\n", (int)(VALUE))
/* This is how to output an element of a case-vector that is absolute.
(The 68000 does not use such vectors,
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I$%x", l); \
+ asm_fprintf ((FILE), "%I$%x", (int) l); \
else \
asm_fprintf ((FILE), "%I$%lx", l); \
} \
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tlong 0x%x,0x%x,0x%x\n", l[0], l[1], l[2]); \
+ fprintf (FILE, "\tlong 0x%lx,0x%lx,0x%lx\n", l[0], l[1], l[2]); \
} while (0)
/* This is how to output an assembler line defining an `int' constant. */
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\tbyte 0x%x\n", (VALUE))
+ fprintf (FILE, "\tbyte 0x%x\n", (int)(VALUE))
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
fprintf (FILE, "\tlong L%d\n", VALUE)
This is suitable for output with `assemble_name'. */
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*%s%s%d", LOCAL_LABEL_PREFIX, PREFIX, NUM)
+ sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM))
/* This is how to output a `long double' extended real constant. */
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\t.byte 0x%x\n", (VALUE))
+ fprintf (FILE, "\t.byte 0x%x\n", (int)(VALUE))
/* This is how to output an insn to push a register on the stack.
It need not be very fast code. */
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
- register int sp = 0, lp = 0, ch; \
+ register int sp = 0, ch; \
fprintf ((FILE), "%s", BYTE_ASM_OP); \
do { \
ch = (PTR)[sp]; \
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
- register int sp = 0, lp = 0, ch; \
+ register int sp = 0, ch; \
fprintf ((FILE), "%s", BYTE_ASM_OP); \
do { \
ch = (PTR)[sp]; \
#undef ASM_OUTPUT_BYTE
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\t%s 0x%x\n", ASM_BYTE, (VALUE))
+ fprintf (FILE, "\t%s 0x%x\n", ASM_BYTE, (int)(VALUE))
/* This is how to output an assembler line
that says to advance the location counter
else \
{ long l; \
REAL_VALUE_TO_TARGET_SINGLE (r, l); \
- fprintf (FILE, "#0x%x", l); \
+ fprintf (FILE, "#0x%lx", l); \
}} \
else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == XFmode) \
{ REAL_VALUE_TYPE r; \
do { \
long hex[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, hex); \
- fprintf (FILE, "\t.long 0x%x\n\t.long 0x%x\n", hex[0], hex[1]); \
+ fprintf (FILE, "\t.long 0x%lx\n\t.long 0x%lx\n", hex[0], hex[1]); \
} while (0)
#else
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { \
long hex; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, hex); \
- fprintf (FILE, "\t.long 0x%x\n", hex); \
+ fprintf (FILE, "\t.long 0x%lx\n", hex); \
} while (0)
#else
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { \
long hex; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, hex); \
- fprintf (FILE, "#0%c%x", (CODE) == 'f' ? 'b' : 'x', hex); \
+ fprintf (FILE, "#0%c%lx", (CODE) == 'f' ? 'b' : 'x', hex); \
} while (0)
#else
#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%x", (int) l); \
else \
asm_fprintf ((FILE), "%I0x%lx", l); \
} \
do { \
long hex[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, hex); \
- fprintf (FILE, "#0b%x%08x", hex[0], hex[1]); \
+ fprintf (FILE, "#0b%lx%08lx", hex[0], hex[1]); \
} while (0)
#else
#define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%x", (int) l); \
else \
asm_fprintf ((FILE), "%I0x%lx", l); \
} \
#define CPP_PREDEFINES "-Dm68 -Dunix -Dplexus -Asystem=unix -Acpu=m68k -Amachine=m68k"
#if TARGET_DEFAULT & MASK_68020
-#define ASM_SPEC\
+#define ASM_SPEC \
"%{m68000:-mc68000}%{mc68000:-mc68000}%{!mc68000:%{!m68000:-mc68020}}"
#undef STRICT_ALIGNMENT
#define STRICT_ALIGNMENT 0
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
- fprintf ((FILE), "%s0x%x,0x%x,0x%x\n", LONG_ASM_OP, \
+ fprintf ((FILE), "%s0x%lx,0x%lx,0x%lx\n", LONG_ASM_OP, \
l[0], l[1], l[2]); \
} while (0)
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf ((FILE), "%s0x%x,0x%x\n", LONG_ASM_OP, \
+ fprintf ((FILE), "%s0x%lx,0x%lx\n", LONG_ASM_OP, \
l[0], l[1]); \
} while (0)
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
- fprintf ((FILE), "%s0x%x\n", LONG_ASM_OP, l); \
+ fprintf ((FILE), "%s0x%lx\n", LONG_ASM_OP, l); \
} while (0)
/* This is how to output an assembler line that says to advance the
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
- register int sp = 0, lp = 0, ch; \
+ register int sp = 0, ch; \
fprintf ((FILE), "%s", BYTE_ASM_OP); \
do { \
ch = (PTR)[sp]; \
#define ASM_OUTPUT_FLOAT_OPERAND(CODE,FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%lx", l); \
} while (0)
#undef ASM_OUTPUT_DOUBLE_OPERAND
#define ASM_OUTPUT_DOUBLE_OPERAND(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- asm_fprintf ((FILE), "%I0x%x%08x", l[0], l[1]); \
+ asm_fprintf ((FILE), "%I0x%lx%08lx", l[0], l[1]);\
} while (0)
/* How to output a block of SIZE zero bytes. Note that the `space' pseudo,
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%x", (int) l); \
else \
asm_fprintf ((FILE), "%I0x%lx", l); \
} \
long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
if (sizeof (int) == sizeof (long)) \
- asm_fprintf ((FILE), "%I0x%x", l); \
+ asm_fprintf ((FILE), "%I0x%x", (int) l); \
else \
asm_fprintf ((FILE), "%I0x%lx", l); \
} \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
- sprintf ((LABEL), "%s%%%d", (PREFIX), (NUM))
+ sprintf ((LABEL), "%s%%%ld", (PREFIX), (long)(NUM))
#undef ASM_OUTPUT_INTERNAL_LABEL
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \
do { long l[2]; \
REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tlong 0x%x,0x%x\n", l[0], l[1]); \
+ fprintf (FILE, "\tlong 0x%lx,0x%lx\n", l[0], l[1]); \
} while (0)
#undef ASM_OUTPUT_LONG_DOUBLE
#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \
do { long l[3]; \
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
- fprintf (FILE, "\tlong 0x%x,0x%x,0x%x\n", l[0], l[1], l[2]); \
+ fprintf (FILE, "\tlong 0x%lx,0x%lx,0x%lx\n", l[0], l[1], l[2]); \
} while (0)
#undef ASM_OUTPUT_FLOAT
#define ASM_OUTPUT_FLOAT(FILE,VALUE) \
do { long l; \
REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \
- fprintf ((FILE), "\tlong 0x%x\n", l); \
+ fprintf ((FILE), "\tlong 0x%lx\n", l); \
} while (0)
/* This is how to output an assembler line defining an `int' constant. */
#undef ASM_OUTPUT_BYTE
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\tbyte 0x%x\n", (VALUE))
+ fprintf (FILE, "\tbyte 0x%x\n", (int)(VALUE))
#undef ASM_OUTPUT_ADDR_VEC_ELT
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
{ REAL_VALUE_TYPE r; long l; \
REAL_VALUE_FROM_CONST_DOUBLE (r, X); \
REAL_VALUE_TO_TARGET_SINGLE (r, l); \
- fprintf (FILE, "&0x%x", l); } \
+ fprintf (FILE, "&0x%lx", l); } \
else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == DFmode) \
{ REAL_VALUE_TYPE r; int i[2]; \
REAL_VALUE_FROM_CONST_DOUBLE (r, X); \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, TARGET_SVR4 ? "*.%s%d" : "*@%s%d", PREFIX, NUM)
+ sprintf (LABEL, TARGET_SVR4 ? "*.%s%ld" : "*@%s%ld", PREFIX, (long)(NUM))
/* Internal macro to get a single precision floating point value into
an int, so we can print its value in hex. */
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "%s0x%x\n", CHAR_ASM_OP, (VALUE))
+ fprintf (FILE, "%s0x%x\n", CHAR_ASM_OP, (int)(VALUE))
/* The single-byte pseudo-op is the default. Override svr[34].h. */
#undef ASM_BYTE_OP
#define PUT_SDB_SIZE(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.esize\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.esize\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT) (a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#undef PUT_SDB_TYPE
size_directive_output = 1; \
fprintf (FILE, "%s", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
- fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, ","); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, \
+ int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, "\n"); \
} \
mips_declare_object (FILE, NAME, "", ":\n", 0); \
} while (0)
#define PUT_SDB_SIZE(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.esize\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.esize\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT) (a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#undef PUT_SDB_TYPE
size_directive_output = 1; \
fprintf (FILE, "%s", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
- fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, ","); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, \
+ int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, "\n"); \
} \
mips_declare_object (FILE, NAME, "", ":\n", 0); \
} while (0)
#define PUT_SDB_SIZE(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.esize\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.esize\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT) (a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#undef PUT_SDB_TYPE
size_directive_output = 1; \
fprintf (FILE, "%s", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
- fprintf (FILE, ",%d\n", \
+ fprintf (FILE, ","); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, \
int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, "\n"); \
} \
mips_declare_object (FILE, NAME, "", ":\n", 0); \
} while (0)
#ifdef ASM_OUTPUT_UNDEF_FUNCTION
int
mips_output_external_libcall (file, name)
- FILE *file;
+ FILE *file ATTRIBUTE_UNUSED;
const char *name;
{
register struct extern_list *p;
mips_asm_file_start (stream)
FILE *stream;
{
- const char * abi_string = NULL;
-
ASM_OUTPUT_SOURCE_FILENAME (stream, main_input_filename);
/* Versions of the MIPS assembler before 2.20 generate errors if a branch
bits. GDB needs this information in order to be able to correctly
debug these binaries. See the function mips_gdbarch_init() in
gdb/mips-tdep.c. */
+ const char * abi_string = NULL;
switch (mips_abi)
{
#define PUT_SDB_INT_VAL(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.val\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.val\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT)(a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#define PUT_SDB_VAL(a) \
#define PUT_SDB_SIZE(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.size\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.size\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT)(a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#define PUT_SDB_DIM(a) \
size_directive_output = 1; \
fprintf (FILE, "%s", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
- fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, ","); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, \
+ int_size_in_bytes (TREE_TYPE (DECL))); \
+ fprintf (FILE, "\n"); \
} \
ASM_OUTPUT_LABEL(FILE, NAME); \
} while (0)
avoid conflicting with ELF directives. These are only recognized
by gas, anyhow, not the native assembler. */
#undef PUT_SDB_SIZE
-#define PUT_SDB_SIZE(a) \
+#define PUT_SDB_SIZE(a) \
do { \
extern FILE *asm_out_text_file; \
- fprintf (asm_out_text_file, "\t.esize\t%d;", (a)); \
+ fprintf (asm_out_text_file, "\t.esize\t"); \
+ fprintf (asm_out_text_file, HOST_WIDE_INT_PRINT_DEC, (HOST_WIDE_INT) (a)); \
+ fprintf (asm_out_text_file, ";"); \
} while (0)
#undef PUT_SDB_TYPE
*/
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*.%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*.%s%ld", PREFIX, (long)(NUM))
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
{
union { float f; long l; } uu;
uu.f = u.d;
- fprintf (file, "0Fx%08x", uu.l);
+ fprintf (file, "0Fx%08lx", uu.l);
}
#else
fprintf (file, "0f%.20e", u.d);
case 'k':
if (GET_CODE (x) == CONST_INT)
{
- fprintf (file, "%d", ~INTVAL (x));
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, ~INTVAL (x));
return;
}
abort ();
case 'Q':
if (GET_CODE (x) == CONST_INT)
{
- fprintf (file, "%d", 64 - (INTVAL (x) & 63));
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, 64 - (INTVAL (x) & 63));
return;
}
abort ();
case 'L':
if (GET_CODE (x) == CONST_INT)
{
- fprintf (file, "%d", 32 - (INTVAL (x) & 31));
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, 32 - (INTVAL (x) & 31));
return;
}
abort ();
case 'p':
if (GET_CODE (x) == CONST_INT)
{
- fprintf (file, "%d", 63 - (INTVAL (x) & 63));
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, 63 - (INTVAL (x) & 63));
return;
}
abort ();
case 'P':
if (GET_CODE (x) == CONST_INT)
{
- fprintf (file, "%d", 31 - (INTVAL (x) & 31));
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, 31 - (INTVAL (x) & 31));
return;
}
abort ();
}
if (unsignedp)
{
- sprintf (buf, "$$divU_%d", INTVAL (operands[0]));
+ sprintf (buf, "$$divU_");
+ sprintf (buf + 7, HOST_WIDE_INT_PRINT_DEC, INTVAL (operands[0]));
return output_millicode_call (insn,
gen_rtx_SYMBOL_REF (SImode, buf));
}
else
{
- sprintf (buf, "$$divI_%d", INTVAL (operands[0]));
+ sprintf (buf, "$$divI_");
+ sprintf (buf + 7, HOST_WIDE_INT_PRINT_DEC, INTVAL (operands[0]));
return output_millicode_call (insn,
gen_rtx_SYMBOL_REF (SImode, buf));
}
STRIP_NAME_ENCODING (target_name, target_name); \
pa_output_function_prologue (FILE, 0); \
if (VAL_14_BITS_P (DELTA)) \
- fprintf (FILE, "\tb %s\n\tldo %d(%%r26),%%r26\n", target_name, DELTA); \
+ { \
+ fprintf (FILE, "\tb %s\n\tldo ", target_name); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, DELTA); \
+ fprintf (FILE, "(%%r26),%%r26\n"); \
+ } \
else \
- fprintf (FILE, "\taddil L%%%d,%%r26\n\tb %s\n\tldo R%%%d(%%r1),%%r26\n", \
- DELTA, target_name, DELTA); \
+ { \
+ fprintf (FILE, "\taddil L%%"); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, DELTA); \
+ fprintf (FILE, ",%%r26\n\tb %s\n\tldo R%%", target_name); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, DELTA); \
+ fprintf (FILE, "(%%r1),%%r26\n"); \
+ } \
fprintf (FILE, "\n\t.EXIT\n\t.PROCEND\n"); \
}
This is suitable for output with `assemble_name'. */
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*%c$%s%04d", (PREFIX)[0], (PREFIX) + 1, NUM)
+ sprintf (LABEL, "*%c$%s%04ld", (PREFIX)[0], (PREFIX) + 1, (long)(NUM))
/* This is how to output an assembler line defining a `double' constant. */
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "\t.byte 0x%x\n", (VALUE))
+ fprintf (FILE, "\t.byte 0x%x\n", (int)(VALUE))
/* C string constants giving the pseudo-op to use for a sequence of
2, 4, and 8 byte unaligned constants. dwarf2out.c needs these. */
fputs (")", FILE); \
break; \
case CONST_INT: \
- fprintf (FILE, "%d(%%r0)", INTVAL (addr)); \
+ fprintf (FILE, HOST_WIDE_INT_PRINT_DEC, INTVAL (addr)); \
+ fprintf (FILE, "(%%r0)"); \
break; \
default: \
output_addr_const (FILE, addr); \
#define UNIQUE_SECTION(DECL,RELOC) \
do { \
int len; \
- char *name, *string, *prefix; \
- \
- name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
+ char *string; \
+ const char *prefix, \
+ *const name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL));\
\
if (! DECL_ONE_ONLY (DECL)) \
{ \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*.L%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*.L%s%ld", PREFIX, (long)(NUM))
\f
/* Define for support of TFmode long double and REAL_ARITHMETIC.
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*.L%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*.L%s%ld", PREFIX, (long)(NUM))
/* Define the names of various pseudo-ops used by the Sparc/svr4 assembler.
??? If ints are 64 bits then UNALIGNED_INT_ASM_OP (defined elsewhere) is
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*.%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*.%s%ld", PREFIX, (long)(NUM))
/* This is how to output an internal numbered label where
/* This is needed for SunOS 4.0, and should not hurt for 3.2
versions either. */
-#undef ASM_OUTPUT_SOURCE_LINE(file, line)
+#undef ASM_OUTPUT_SOURCE_LINE
#define ASM_OUTPUT_SOURCE_LINE(file, line) \
{ static int sym_lineno = 1; \
fprintf (file, ".stabn 68,0,%d,.LM%d\n.LM%d:\n", \
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*.L%s%d", PREFIX, NUM)
+ sprintf (LABEL, "*.L%s%ld", PREFIX, (long)(NUM))
\f
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
- sprintf (LABEL, "*%s%s%d", LOCAL_LABEL_PREFIX, PREFIX, NUM)
+ sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM))
/* We want local labels to start with period if made with asm_fprintf. */
#undef LOCAL_LABEL_PREFIX
static void
sdbout_end_epilogue ()
{
- const char *const name
+ const char *const name ATTRIBUTE_UNUSED
= IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl));
#ifdef PUT_SDB_EPILOGUE_END
void
assemble_global (name)
- const char *name;
+ const char *name ATTRIBUTE_UNUSED;
{
ASM_GLOBALIZE_LABEL (asm_out_file, name);
}