comparison gcc/config/sh/sh.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Definitions of target machine for GNU compiler for Renesas / SuperH SH. 1 /* Definitions of target machine for GNU compiler for Renesas / SuperH SH.
2 Copyright (C) 1993-2017 Free Software Foundation, Inc. 2 Copyright (C) 1993-2018 Free Software Foundation, Inc.
3 Contributed by Steve Chamberlain (sac@cygnus.com). 3 Contributed by Steve Chamberlain (sac@cygnus.com).
4 Improved by Jim Wilson (wilson@cygnus.com). 4 Improved by Jim Wilson (wilson@cygnus.com).
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
466 registers, but that is not the case on the SH; CQImode and CHImode are 466 registers, but that is not the case on the SH; CQImode and CHImode are
467 held in a single integer register. */ 467 held in a single integer register. */
468 #define LOCAL_ALIGNMENT(TYPE, ALIGN) \ 468 #define LOCAL_ALIGNMENT(TYPE, ALIGN) \
469 ((GET_MODE_CLASS (TYPE_MODE (TYPE)) == MODE_COMPLEX_INT \ 469 ((GET_MODE_CLASS (TYPE_MODE (TYPE)) == MODE_COMPLEX_INT \
470 || GET_MODE_CLASS (TYPE_MODE (TYPE)) == MODE_COMPLEX_FLOAT) \ 470 || GET_MODE_CLASS (TYPE_MODE (TYPE)) == MODE_COMPLEX_FLOAT) \
471 ? (unsigned) MIN (BIGGEST_ALIGNMENT, GET_MODE_BITSIZE (TYPE_MODE (TYPE))) \ 471 ? (unsigned) MIN (BIGGEST_ALIGNMENT, \
472 GET_MODE_BITSIZE (as_a <fixed_size_mode> \
473 (TYPE_MODE (TYPE)))) \
472 : (unsigned) DATA_ALIGNMENT(TYPE, ALIGN)) 474 : (unsigned) DATA_ALIGNMENT(TYPE, ALIGN))
473 475
474 /* Make arrays of chars word-aligned for the same reasons. */ 476 /* Make arrays of chars word-aligned for the same reasons. */
475 #define DATA_ALIGNMENT(TYPE, ALIGN) \ 477 #define DATA_ALIGNMENT(TYPE, ALIGN) \
476 (TREE_CODE (TYPE) == ARRAY_TYPE \ 478 (TREE_CODE (TYPE) == ARRAY_TYPE \
1752 default: \ 1754 default: \
1753 break; \ 1755 break; \
1754 } 1756 }
1755 1757
1756 /* Output an absolute table element. */ 1758 /* Output an absolute table element. */
1757 #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE) \ 1759 #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE) \
1758 if (! optimize || TARGET_BIGTABLE) \ 1760 do { \
1759 asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); \ 1761 if (! optimize || TARGET_BIGTABLE) \
1760 else \ 1762 asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); \
1761 asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE)); 1763 else \
1762 1764 asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE)); \
1765 } while (0)
1763 1766
1764 /* A C statement to be executed just prior to the output of 1767 /* A C statement to be executed just prior to the output of
1765 assembler code for INSN, to modify the extracted operands so 1768 assembler code for INSN, to modify the extracted operands so
1766 they will be output differently. 1769 they will be output differently.
1767 1770