comparison gcc/config/v850/v850.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. NEC V850 series 1 /* Definitions of target machine for GNU compiler. NEC V850 series
2 Copyright (C) 1996-2017 Free Software Foundation, Inc. 2 Copyright (C) 1996-2018 Free Software Foundation, Inc.
3 Contributed by Jeff Law (law@cygnus.com). 3 Contributed by Jeff Law (law@cygnus.com).
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify 7 GCC is free software; you can redistribute it and/or modify
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 <http://www.gnu.org/licenses/>. */ 24 <http://www.gnu.org/licenses/>. */
25 25
26 #ifndef GCC_V850_H 26 #ifndef GCC_V850_H
27 #define GCC_V850_H 27 #define GCC_V850_H
28
29 extern GTY(()) rtx v850_compare_op0;
30 extern GTY(()) rtx v850_compare_op1;
31 28
32 #undef LIB_SPEC 29 #undef LIB_SPEC
33 #define LIB_SPEC "%{!shared:%{!symbolic:--start-group -lc -lgcc --end-group}}" 30 #define LIB_SPEC "%{!shared:%{!symbolic:--start-group -lc -lgcc --end-group}}"
34 31
35 #undef ENDFILE_SPEC 32 #undef ENDFILE_SPEC
565 For integer comparisons against zero, reduce to CCNOmode or CCZmode if 562 For integer comparisons against zero, reduce to CCNOmode or CCZmode if
566 possible, to allow for more combinations. */ 563 possible, to allow for more combinations. */
567 564
568 #define SELECT_CC_MODE(OP, X, Y) v850_select_cc_mode (OP, X, Y) 565 #define SELECT_CC_MODE(OP, X, Y) v850_select_cc_mode (OP, X, Y)
569 566
570 /* Tell final.c how to eliminate redundant test instructions. */
571
572 /* Here we define machine-dependent flags and fields in cc_status
573 (see `conditions.h'). No extra ones are needed for the VAX. */
574
575 /* Store in cc_status the expressions
576 that the condition codes will describe
577 after execution of an instruction whose pattern is EXP.
578 Do not alter them if the instruction would not alter the cc's. */
579
580 #define CC_OVERFLOW_UNUSABLE 0x200
581 #define CC_NO_CARRY CC_NO_OVERFLOW
582 #define NOTICE_UPDATE_CC(EXP, INSN) notice_update_cc(EXP, INSN)
583
584 /* Nonzero if access to memory by bytes or half words is no faster 567 /* Nonzero if access to memory by bytes or half words is no faster
585 than accessing full words. */ 568 than accessing full words. */
586 #define SLOW_BYTE_ACCESS 1 569 #define SLOW_BYTE_ACCESS 1
587 570
588 /* According expr.c, a value of around 6 should minimize code size, and 571 /* According expr.c, a value of around 6 should minimize code size, and
741 it. */ 724 it. */
742 #define JUMP_TABLES_IN_TEXT_SECTION (!TARGET_JUMP_TABLES_IN_DATA_SECTION) 725 #define JUMP_TABLES_IN_TEXT_SECTION (!TARGET_JUMP_TABLES_IN_DATA_SECTION)
743 726
744 #undef ASM_OUTPUT_BEFORE_CASE_LABEL 727 #undef ASM_OUTPUT_BEFORE_CASE_LABEL
745 #define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \ 728 #define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \
746 ASM_OUTPUT_ALIGN ((FILE), (TARGET_BIG_SWITCH ? 2 : 1)); 729 ASM_OUTPUT_ALIGN ((FILE), (TARGET_BIG_SWITCH ? 2 : 1))
747 730
748 #define WORD_REGISTER_OPERATIONS 1 731 #define WORD_REGISTER_OPERATIONS 1
749 732
750 /* Byte and short loads sign extend the value to a word. */ 733 /* Byte and short loads sign extend the value to a word. */
751 #define LOAD_EXTEND_OP(MODE) SIGN_EXTEND 734 #define LOAD_EXTEND_OP(MODE) SIGN_EXTEND
849 #define SYMBOL_REF_TDA_P(X) ((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_TDA) != 0) 832 #define SYMBOL_REF_TDA_P(X) ((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_TDA) != 0)
850 #define SYMBOL_REF_SDA_P(X) ((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_SDA) != 0) 833 #define SYMBOL_REF_SDA_P(X) ((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_SDA) != 0)
851 834
852 #define TARGET_ASM_INIT_SECTIONS v850_asm_init_sections 835 #define TARGET_ASM_INIT_SECTIONS v850_asm_init_sections
853 836
854 /* Define this so that the cc1plus will not think that system header files
855 need an implicit 'extern "C" { ... }' assumed. This breaks testing C++
856 in a build directory where the libstdc++ header files are found via a
857 -isystem <path-to-build-dir>. */
858 #define NO_IMPLICIT_EXTERN_C
859
860 #define ADJUST_INSN_LENGTH(INSN, LENGTH) \ 837 #define ADJUST_INSN_LENGTH(INSN, LENGTH) \
861 ((LENGTH) = v850_adjust_insn_length ((INSN), (LENGTH))) 838 ((LENGTH) = v850_adjust_insn_length ((INSN), (LENGTH)))
862 839
863 #endif /* ! GCC_V850_H */ 840 #endif /* ! GCC_V850_H */