diff options
author | Tom Wood <wood@gnu.org> | 1992-10-07 20:21:09 +0000 |
---|---|---|
committer | Tom Wood <wood@gnu.org> | 1992-10-07 20:21:09 +0000 |
commit | 2c39ec409c6833fac1cb04482cfd8e267dba0249 (patch) | |
tree | 2b96d88110f4ab48688a70b21b1ff561a92c117e /gcc | |
parent | a8663ab3b5995a1d13b709fe7779c3ce279e7d82 (diff) | |
download | gcc-2c39ec409c6833fac1cb04482cfd8e267dba0249.zip gcc-2c39ec409c6833fac1cb04482cfd8e267dba0249.tar.gz gcc-2c39ec409c6833fac1cb04482cfd8e267dba0249.tar.bz2 |
(FASTEST_ALIGNMENT): Define as 8 for -m88110 otherwise 4.
(CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Base on FASTEST_ALIGNMENT.
(READONLY_DATA_SECTION): Don't override svr4.h
(ASM_OUTPUT_CASE_LABEL): For svr4, use .rodata.
From-SVN: r2358
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m88k/m88k.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h index 923748f..25c7438 100644 --- a/gcc/config/m88k/m88k.h +++ b/gcc/config/m88k/m88k.h @@ -209,9 +209,9 @@ extern char * reg_names[]; /* 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 "09/18/92" +#define VERSION_INFO2 "10/07/92" #define VERSION_STRING version_string -#define TM_SCCS_ID "@(#)m88k.h 2.2.12.2 09/18/92 06:21:09" +#define TM_SCCS_ID "@(#)m88k.h 2.2.13.1 10/07/92 06:31:59" /* Run-time compilation parameters selecting different hardware subsets. */ @@ -425,16 +425,20 @@ extern char * reg_names[]; /* No data type wants to be aligned rounder than this. */ #define BIGGEST_ALIGNMENT 64 -/* Make strings word-aligned so strcpy from constants will be faster. */ +/* The best alignment to use in cases where we have a choice. */ +#define FASTEST_ALIGNMENT (TARGET_88100 ? 32 : 64) + +/* Make strings 4/8 byte aligned so strcpy from constants will be faster. */ #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ - (TREE_CODE (EXP) == STRING_CST \ - && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN)) + ((TREE_CODE (EXP) == STRING_CST \ + && (ALIGN) < FASTEST_ALIGNMENT) \ + ? FASTEST_ALIGNMENT : (ALIGN)) -/* Make arrays of chars word-aligned for the same reasons. */ +/* Make arrays of chars 4/8 byte aligned for the same reasons. */ #define DATA_ALIGNMENT(TYPE, ALIGN) \ (TREE_CODE (TYPE) == ARRAY_TYPE \ && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ - && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN)) + && (ALIGN) < FASTEST_ALIGNMENT ? FASTEST_ALIGNMENT : (ALIGN)) /* Alignment of field after `int : 0' in a structure. Ignored with PCC_BITFIELD_TYPE_MATTERS. */ @@ -2015,7 +2019,10 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS, #define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, TABLE) \ do { \ if (! CASE_VECTOR_INSNS) \ - readonly_data_section (); \ + { \ + readonly_data_section (); \ + ASM_OUTPUT_ALIGN (FILE, 2); \ + } \ ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); \ } while (0) @@ -2404,8 +2411,6 @@ sdata_section () \ INIT_SECTION_FUNCTION \ FINI_SECTION_FUNCTION -#undef READONLY_DATA_SECTION - /* A C statement or statements to switch to the appropriate section for output of DECL. DECL is either a `VAR_DECL' node or a constant of some sort. RELOC indicates whether forming |