mips.h (ASM_OUTPUT_ASCII): Convert to function.
* config/mips/mips.h (ASM_OUTPUT_ASCII): Convert to function. * config/mips/mips.c (mips_output_ascii): New function. * config/mips/mips-protos.h (mips_output_ascii): Prototype. * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Force to 4. From-SVN: r42753
This commit is contained in:
parent
d29087b431
commit
b3276c7a5d
|
@ -1,3 +1,11 @@
|
||||||
|
2001-05-31 Geoff Keating <geoffk@cygnus.com>
|
||||||
|
|
||||||
|
* config/mips/mips.h (ASM_OUTPUT_ASCII): Convert to function.
|
||||||
|
* config/mips/mips.c (mips_output_ascii): New function.
|
||||||
|
* config/mips/mips-protos.h (mips_output_ascii): Prototype.
|
||||||
|
|
||||||
|
* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Force to 4.
|
||||||
|
|
||||||
Thu May 31 19:09:53 CEST 2001 Jan Hubicka <jh@suse.cz>
|
Thu May 31 19:09:53 CEST 2001 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
* flow.c (set_block_for_new_insns): Remove bogus shortcut.
|
* flow.c (set_block_for_new_insns): Remove bogus shortcut.
|
||||||
|
|
|
@ -41,6 +41,7 @@ extern void mips_output_float PARAMS ((FILE *, REAL_VALUE_TYPE));
|
||||||
#endif /* REAL_VALUE_TYPE */
|
#endif /* REAL_VALUE_TYPE */
|
||||||
extern void mips_output_filename PARAMS ((FILE *, const char *));
|
extern void mips_output_filename PARAMS ((FILE *, const char *));
|
||||||
extern void mips_output_lineno PARAMS ((FILE *, int));
|
extern void mips_output_lineno PARAMS ((FILE *, int));
|
||||||
|
extern void mips_output_ascii PARAMS ((FILE *, const char *, size_t));
|
||||||
extern void mips_order_regs_for_local_alloc PARAMS ((void));
|
extern void mips_order_regs_for_local_alloc PARAMS ((void));
|
||||||
extern struct rtx_def * mips16_gp_pseudo_reg PARAMS ((void));
|
extern struct rtx_def * mips16_gp_pseudo_reg PARAMS ((void));
|
||||||
#ifdef ASM_OUTPUT_UNDEF_FUNCTION
|
#ifdef ASM_OUTPUT_UNDEF_FUNCTION
|
||||||
|
|
|
@ -5882,6 +5882,85 @@ mips_output_lineno (stream, line)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Output an ASCII string, in a space-saving way. */
|
||||||
|
|
||||||
|
void
|
||||||
|
mips_output_ascii (stream, string_param, len)
|
||||||
|
FILE *stream;
|
||||||
|
const char *string_param;
|
||||||
|
size_t len;
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
int cur_pos = 17;
|
||||||
|
register const unsigned char *string =
|
||||||
|
(const unsigned char *)string_param;
|
||||||
|
|
||||||
|
fprintf (stream, "\t.ascii\t\"");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
register int c = string[i];
|
||||||
|
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case '\"':
|
||||||
|
case '\\':
|
||||||
|
putc ('\\', stream);
|
||||||
|
putc (c, stream);
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_NEWLINE:
|
||||||
|
fputs ("\\n", stream);
|
||||||
|
if (i+1 < len
|
||||||
|
&& (((c = string[i+1]) >= '\040' && c <= '~')
|
||||||
|
|| c == TARGET_TAB))
|
||||||
|
cur_pos = 32767; /* break right here */
|
||||||
|
else
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_TAB:
|
||||||
|
fputs ("\\t", stream);
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_FF:
|
||||||
|
fputs ("\\f", stream);
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_BS:
|
||||||
|
fputs ("\\b", stream);
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TARGET_CR:
|
||||||
|
fputs ("\\r", stream);
|
||||||
|
cur_pos += 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (c >= ' ' && c < 0177)
|
||||||
|
{
|
||||||
|
putc (c, stream);
|
||||||
|
cur_pos++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf (stream, "\\%03o", c);
|
||||||
|
cur_pos += 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cur_pos > 72 && i+1 < len)
|
||||||
|
{
|
||||||
|
cur_pos = 17;
|
||||||
|
fprintf (stream, "\"\n\t.ascii\t\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf (stream, "\"\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* If defined, a C statement to be executed just prior to the output of
|
/* If defined, a C statement to be executed just prior to the output of
|
||||||
assembler code for INSN, to modify the extracted operands so they will be
|
assembler code for INSN, to modify the extracted operands so they will be
|
||||||
output differently.
|
output differently.
|
||||||
|
|
|
@ -1109,6 +1109,11 @@ while (0)
|
||||||
#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + GP_ARG_FIRST : INVALID_REGNUM)
|
#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + GP_ARG_FIRST : INVALID_REGNUM)
|
||||||
#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, GP_REG_FIRST + 3)
|
#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, GP_REG_FIRST + 3)
|
||||||
|
|
||||||
|
/* Offsets recorded in opcodes are a multiple of this alignment factor.
|
||||||
|
The default for this in 64-bit mode is 8, which causes problems with
|
||||||
|
SFmode register saves. */
|
||||||
|
#define DWARF_CIE_DATA_ALIGNMENT 4
|
||||||
|
|
||||||
/* Overrides for the COFF debug format. */
|
/* Overrides for the COFF debug format. */
|
||||||
#define PUT_SDB_SCL(a) \
|
#define PUT_SDB_SCL(a) \
|
||||||
do { \
|
do { \
|
||||||
|
@ -4392,75 +4397,7 @@ do { \
|
||||||
/* This is how to output a string. */
|
/* This is how to output a string. */
|
||||||
#undef ASM_OUTPUT_ASCII
|
#undef ASM_OUTPUT_ASCII
|
||||||
#define ASM_OUTPUT_ASCII(STREAM, STRING, LEN) \
|
#define ASM_OUTPUT_ASCII(STREAM, STRING, LEN) \
|
||||||
do { \
|
mips_output_ascii (STREAM, STRING, LEN)
|
||||||
register int i, c, len = (LEN), cur_pos = 17; \
|
|
||||||
register const unsigned char *string = \
|
|
||||||
(const unsigned char *)(STRING); \
|
|
||||||
fprintf ((STREAM), "\t.ascii\t\""); \
|
|
||||||
for (i = 0; i < len; i++) \
|
|
||||||
{ \
|
|
||||||
register int c = string[i]; \
|
|
||||||
\
|
|
||||||
switch (c) \
|
|
||||||
{ \
|
|
||||||
case '\"': \
|
|
||||||
case '\\': \
|
|
||||||
putc ('\\', (STREAM)); \
|
|
||||||
putc (c, (STREAM)); \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case TARGET_NEWLINE: \
|
|
||||||
fputs ("\\n", (STREAM)); \
|
|
||||||
if (i+1 < len \
|
|
||||||
&& (((c = string[i+1]) >= '\040' && c <= '~') \
|
|
||||||
|| c == TARGET_TAB)) \
|
|
||||||
cur_pos = 32767; /* break right here */ \
|
|
||||||
else \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case TARGET_TAB: \
|
|
||||||
fputs ("\\t", (STREAM)); \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case TARGET_FF: \
|
|
||||||
fputs ("\\f", (STREAM)); \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case TARGET_BS: \
|
|
||||||
fputs ("\\b", (STREAM)); \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
case TARGET_CR: \
|
|
||||||
fputs ("\\r", (STREAM)); \
|
|
||||||
cur_pos += 2; \
|
|
||||||
break; \
|
|
||||||
\
|
|
||||||
default: \
|
|
||||||
if (c >= ' ' && c < 0177) \
|
|
||||||
{ \
|
|
||||||
putc (c, (STREAM)); \
|
|
||||||
cur_pos++; \
|
|
||||||
} \
|
|
||||||
else \
|
|
||||||
{ \
|
|
||||||
fprintf ((STREAM), "\\%03o", c); \
|
|
||||||
cur_pos += 4; \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
if (cur_pos > 72 && i+1 < len) \
|
|
||||||
{ \
|
|
||||||
cur_pos = 17; \
|
|
||||||
fprintf ((STREAM), "\"\n\t.ascii\t\""); \
|
|
||||||
} \
|
|
||||||
} \
|
|
||||||
fprintf ((STREAM), "\"\n"); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/* Handle certain cpp directives used in header files on sysV. */
|
/* Handle certain cpp directives used in header files on sysV. */
|
||||||
#define SCCS_DIRECTIVE
|
#define SCCS_DIRECTIVE
|
||||||
|
|
Loading…
Reference in New Issue