Mercurial > hg > CbC > CbC_gcc
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 */ |