/* Print subsidiary information on the compiler version in use.
Redefined in m88kv4.h, and m88kluna.h. */
#define VERSION_INFO1 "88open OCS/BCS, "
-#define VERSION_INFO2 "28 Feb 1992"
+#define VERSION_INFO2 "09 Mar 1992"
#define VERSION_STRING version_string
-#define TM_SCCS_ID "@(#)m88k.h 2.0.2.1 28 Feb 1992 12:37:41"
+#define TM_SCCS_ID "@(#)m88k.h 2.0.2.3 09 Mar 1992 14:20:23"
/* Run-time compilation parameters selecting different hardware subsets. */
instructions for them. */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressible storage unit */
+/* Number of bits in an addressable storage unit */
#define BITS_PER_UNIT 8
/* Width in bits of a "word", which is the contents of a machine register.
/* Every structure's size must be a multiple of this. */
#define STRUCTURE_SIZE_BOUNDARY 8
-/* Define this if move instructions will actually fail to work
+/* Set this nonzero if move instructions will actually fail to work
when given unaligned data. */
-#define STRICT_ALIGNMENT
+#define STRICT_ALIGNMENT 1
/* A bitfield declared as `int' forces `int' alignment for the struct. */
#define PCC_BITFIELD_TYPE_MATTERS 1
/* Report errors on floating point, if we are given NaN's, or such. Leave
the number as is, though, since we output the number in hex, and the
- assemble won't choak on it. */
+ assembler won't choke on it. */
#define CHECK_FLOAT_VALUE(MODE,VALUE) check_float_value (MODE, VALUE)
/* A code distinguishing the floating point format of the target machine. */
expression is true iff C is a known letter and VALUE is appropriate for
that letter.
- For the m88000, the following contraints are used:
+ For the m88000, the following constants are used:
`I' requires a non-negative 16-bit value.
`J' requires a non-positive 16-bit value.
`K' is unused.
This is really two components. The first 32 bytes are fixed and
must be copied; the last 12 bytes are just storage that's filled
in later. So for allocation purposes, it's 32+12 bytes, but for
- initializaiton purposes, it's 32 bytes. */
+ initialization purposes, it's 32 bytes. */
#define TRAMPOLINE_SIZE (32+12)
return 0;
/* Provide the costs of an addressing mode that contains ADDR.
- If ADDR is not a valid address, it's cost is irrelavent.
+ If ADDR is not a valid address, its cost is irrelevant.
REG+REG is made slightly more expensive because it might keep
a register live for longer than we might like. */
#define ADDRESS_COST(ADDR) \
#undef SIZE_ASM_OP
/* These are used in varasm.c as well. */
-#define TEXT_SECTION_ASM_OP "\ttext"
-#define DATA_SECTION_ASM_OP "\tdata"
+#define TEXT_SECTION_ASM_OP "text"
+#define DATA_SECTION_ASM_OP "data"
/* Other sections. */
#define CONST_SECTION_ASM_OP (VERSION_0300_SYNTAX \
- ? "\tsection\t .rodata,\"a\"\n" \
- : "\tsection\t .rodata,\"x\"\n")
+ ? "section\t .rodata,\"a\"" \
+ : "section\t .rodata,\"x\"")
#define TDESC_SECTION_ASM_OP (VERSION_0300_SYNTAX \
- ? "\tsection\t .tdesc,\"a\"" \
- : "\tsection\t .tdesc,\"x\"")
+ ? "section\t .tdesc,\"a\"" \
+ : "section\t .tdesc,\"x\"")
/* These must be constant strings for crtstuff.c. */
-#define CTORS_SECTION_ASM_OP "\tsection\t .ctors,\"d\"\n"
-#define DTORS_SECTION_ASM_OP "\tsection\t .dtors,\"d\"\n"
-#define INIT_SECTION_ASM_OP "\tsection\t .init,\"x\""
-#define FINI_SECTION_ASM_OP "\tsection\t .fini,\"x\""
+#define CTORS_SECTION_ASM_OP "section\t .ctors,\"d\""
+#define DTORS_SECTION_ASM_OP "section\t .dtors,\"d\""
+#define INIT_SECTION_ASM_OP "section\t .init,\"x\""
+#define FINI_SECTION_ASM_OP "section\t .fini,\"x\""
/* These are pretty much common to all assemblers. */
-#define IDENT_ASM_OP "\tident"
-#define FILE_ASM_OP "\tfile"
-#define SECTION_ASM_OP "\tsection"
-#define DEF_ASM_OP "\tdef"
-#define GLOBAL_ASM_OP "\tglobal"
-#define ALIGN_ASM_OP "\talign"
-#define SKIP_ASM_OP "\tzero"
-#define COMMON_ASM_OP "\tcomm"
-#define LOCAL_ASM_OP "\tbss"
-#define FLOAT_ASM_OP "\tfloat"
-#define DOUBLE_ASM_OP "\tdouble"
-#define INT_ASM_OP "\tword"
+#define IDENT_ASM_OP "ident"
+#define FILE_ASM_OP "file"
+#define SECTION_ASM_OP "section"
+#define DEF_ASM_OP "def"
+#define GLOBAL_ASM_OP "global"
+#define ALIGN_ASM_OP "align"
+#define SKIP_ASM_OP "zero"
+#define COMMON_ASM_OP "comm"
+#define LOCAL_ASM_OP "bss"
+#define FLOAT_ASM_OP "float"
+#define DOUBLE_ASM_OP "double"
+#define INT_ASM_OP "word"
#define ASM_LONG INT_ASM_OP
-#define SHORT_ASM_OP "\thalf"
-#define CHAR_ASM_OP "\tbyte"
-#define ASCII_DATA_ASM_OP "\tstring"
+#define SHORT_ASM_OP "half"
+#define CHAR_ASM_OP "byte"
+#define ASCII_DATA_ASM_OP "string"
/* These are particular to the global pool optimization. */
-#define SBSS_ASM_OP "\tsbss"
-#define SCOMM_ASM_OP "\tscomm"
-#define SDATA_SECTION_ASM_OP "\tsdata"
+#define SBSS_ASM_OP "sbss"
+#define SCOMM_ASM_OP "scomm"
+#define SDATA_SECTION_ASM_OP "sdata"
/* These are specific to PIC. */
-#define TYPE_ASM_OP "\ttype"
-#define SIZE_ASM_OP "\tsize"
-#define WEAK_ASM_OP "\tweak"
+#define TYPE_ASM_OP "type"
+#define SIZE_ASM_OP "size"
+#define WEAK_ASM_OP "weak"
#ifndef AS_BUG_POUND_TYPE /* Faulty assemblers require @ rather than #. */
#undef TYPE_OPERAND_FMT
#define TYPE_OPERAND_FMT "#%s"
#endif
/* These are specific to version 03.00 assembler syntax. */
-#define INTERNAL_ASM_OP "\tlocal"
-#define VERSION_ASM_OP "\tversion"
+#define INTERNAL_ASM_OP "local"
+#define VERSION_ASM_OP "version"
#define ASM_DWARF_POP_SECTION(FILE) fputs ("\tprevious\n", FILE)
-#define UNALIGNED_SHORT_ASM_OP "\tuahalf"
-#define UNALIGNED_INT_ASM_OP "\tuaword"
+#define UNALIGNED_SHORT_ASM_OP "uahalf"
+#define UNALIGNED_INT_ASM_OP "uaword"
/* Output any initial stuff to the assembly file. Always put out
a file directive, even if not debugging.
Immediately after putting out the file, put out a "sem.<value>"
declaration. This should be harmless on other systems, and
- is used in DG/UX by the debuggers to suppliment COFF. The
+ is used in DG/UX by the debuggers to supplement COFF. The
fields in the integer value are as follows:
Bits Value Meaning
#define ASM_FIRST_LINE(FILE) \
do { \
if (VERSION_0300_SYNTAX) \
- fprintf (FILE, "%s\t \"03.00\"\n", VERSION_ASM_OP); \
+ fprintf (FILE, "\t%s\t \"03.00\"\n", VERSION_ASM_OP); \
} while (0)
/* Override svr[34].h. */
#undef ASM_FILE_END
#define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) \
- fprintf (FILE, "%s\t \"%s\"\n", FILE_ASM_OP, NAME)
+ fprintf (FILE, "\t%s\t \"%s\"\n", FILE_ASM_OP, NAME)
#ifdef SDB_DEBUGGING_INFO
#define ASM_OUTPUT_SOURCE_LINE(FILE, LINE) \
#define ASM_OUTPUT_IDENT(FILE, NAME)
#else
#define ASM_OUTPUT_IDENT(FILE, NAME) \
- fprintf(FILE, "%s\t \"%s\"\n", IDENT_ASM_OP, NAME)
+ fprintf (FILE, "\t%s\t \"%s\"\n", IDENT_ASM_OP, NAME)
#endif
/* Output to assembler file text saying following lines
do { \
if (DECLARE_ASM_NAME) \
{ \
- fprintf (FILE, "%s\t ", TYPE_ASM_OP); \
+ fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
do { \
if (DECLARE_ASM_NAME) \
{ \
- fprintf (FILE, "%s\t ", TYPE_ASM_OP); \
+ fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
assemble_name (FILE, NAME); \
putc (',', FILE); \
fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
putc ('\n', FILE); \
if (!flag_inhibit_size_directive) \
{ \
- fprintf (FILE, "%s\t ", SIZE_ASM_OP); \
+ fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, NAME); \
fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (decl))); \
} \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
- fprintf (FILE, "%s\t ", SIZE_ASM_OP); \
+ fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
assemble_name (FILE, (FNAME)); \
fprintf (FILE, ",%s-", &label[1]); \
assemble_name (FILE, (FNAME)); \
defined for reference from other files. */
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { \
- fprintf (FILE, "%s\t ", GLOBAL_ASM_OP); \
+ fprintf (FILE, "\t%s\t ", GLOBAL_ASM_OP); \
assemble_name (FILE, NAME); \
putc ('\n', FILE); \
} while (0)
#ifdef AS_BUG_DOT_LABELS /* The assembler requires a declaration of local. */
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
- fprintf (FILE, VERSION_0300_SYNTAX ? ".%s%d:\n%s\t .%s%d\n" : "@%s%d:\n", \
+ fprintf (FILE, VERSION_0300_SYNTAX ? ".%s%d:\n\t%s\t .%s%d\n" : "@%s%d:\n", \
PREFIX, NUM, INTERNAL_ASM_OP, PREFIX, NUM)
#else
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
do { \
union { REAL_VALUE_TYPE d; long l[2]; } x; \
x.d = (VALUE); \
- fprintf (FILE, "%s\t 0x%.8x, 0x%.8x\n", INT_ASM_OP, \
+ fprintf (FILE, "\t%s\t 0x%.8x, 0x%.8x\n", INT_ASM_OP, \
x.l[0], x.l[1]); \
} while (0)
do { \
int i; \
FLOAT_TO_INT_INTERNAL (VALUE, i); \
- fprintf (FILE, "%s\t 0x%.8x\n", INT_ASM_OP, i); \
+ fprintf (FILE, "\t%s\t 0x%.8x\n", INT_ASM_OP, i); \
} while (0)
/* Likewise for `int', `short', and `char' constants. */
#define ASM_OUTPUT_INT(FILE,VALUE) \
-( fprintf (FILE, "%s\t ", INT_ASM_OP), \
+( fprintf (FILE, "\t%s\t ", INT_ASM_OP), \
output_addr_const (FILE, (VALUE)), \
fprintf (FILE, "\n"))
#define ASM_OUTPUT_SHORT(FILE,VALUE) \
-( fprintf (FILE, "%s\t ", SHORT_ASM_OP), \
+( fprintf (FILE, "\t%s\t ", SHORT_ASM_OP), \
output_addr_const (FILE, (VALUE)), \
fprintf (FILE, "\n"))
#define ASM_OUTPUT_CHAR(FILE,VALUE) \
-( fprintf (FILE, "%s\t ", CHAR_ASM_OP), \
+( fprintf (FILE, "\t%s\t ", CHAR_ASM_OP), \
output_addr_const (FILE, (VALUE)), \
fprintf (FILE, "\n"))
/* This is how to output an assembler line for a numeric constant byte. */
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
- fprintf (FILE, "%s\t 0x%x\n", CHAR_ASM_OP, (VALUE))
+ fprintf (FILE, "\t%s\t 0x%x\n", CHAR_ASM_OP, (VALUE))
/* The singl-byte pseudo-op is the default. Override svr[34].h. */
#undef ASM_BYTE_OP
-#define ASM_BYTE_OP "\tbyte"
+#define ASM_BYTE_OP "byte"
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE, P, SIZE) \
output_ascii ((FILE), (P), (SIZE))
to a multiple of 2**LOG bytes. */
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
if ((LOG) != 0) \
- fprintf (FILE, "%s\t %d\n", ALIGN_ASM_OP, 1<<(LOG))
+ fprintf (FILE, "\t%s\t %d\n", ALIGN_ASM_OP, 1<<(LOG))
/* Align the text address to half a cache boundary when it can only be
reached by jumping. Pack code tightly when compiling crtstuff.c. */
/* Override svr[34].h. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
- fprintf (FILE, "%s\t %u\n", SKIP_ASM_OP, (SIZE))
+ fprintf (FILE, "\t%s\t %u\n", SKIP_ASM_OP, (SIZE))
/* Override svr4.h. */
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
#undef ASM_OUTPUT_COMMON
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
-( fprintf ((FILE), "%s\t ", \
- (ROUNDED) <= m88k_gp_threshold ? SCOMM_ASM_OP : COMMON_ASM_OP), \
+( fprintf ((FILE), "\t%s\t ", \
+ ((SIZE) ? (SIZE) : 1) <= m88k_gp_threshold ? SCOMM_ASM_OP : COMMON_ASM_OP), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u\n", (SIZE) ? (SIZE) : 1))
-/* This says how to output an assember line to define a local common
+/* This says how to output an assembler line to define a local common
symbol. Override svr[34].h. */
#undef ASM_OUTPUT_LOCAL
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
-( fprintf ((FILE), "%s\t ", \
- (ROUNDED) <= m88k_gp_threshold ? SBSS_ASM_OP : LOCAL_ASM_OP), \
+( fprintf ((FILE), "\t%s\t ", \
+ ((SIZE) ? (SIZE) : 1) <= m88k_gp_threshold ? SBSS_ASM_OP : LOCAL_ASM_OP), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u,%d\n", (SIZE) ? (SIZE) : 1, (SIZE) <= 4 ? 4 : 8))