Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/aarch64/aarch64-c.c @ 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 /* Target-specific code for C family languages. | 1 /* Target-specific code for C family languages. |
2 Copyright (C) 2015-2017 Free Software Foundation, Inc. | 2 Copyright (C) 2015-2018 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify | 6 GCC is free software; you can redistribute it and/or modify |
7 it under the terms of the GNU General Public License as published by | 7 it under the terms of the GNU General Public License as published by |
14 GNU General Public License for more details. | 14 GNU General Public License for more details. |
15 | 15 |
16 You should have received a copy of the GNU General Public License | 16 You should have received a copy of the GNU General Public License |
17 along with GCC; see the file COPYING3. If not see | 17 along with GCC; see the file COPYING3. If not see |
18 <http://www.gnu.org/licenses/>. */ | 18 <http://www.gnu.org/licenses/>. */ |
19 | |
20 #define IN_TARGET_CODE 1 | |
19 | 21 |
20 #include "config.h" | 22 #include "config.h" |
21 #include "system.h" | 23 #include "system.h" |
22 #include "coretypes.h" | 24 #include "coretypes.h" |
23 #include "tm.h" | 25 #include "tm.h" |
132 aarch64_def_or_undef (TARGET_ILP32, "_ILP32", pfile); | 134 aarch64_def_or_undef (TARGET_ILP32, "_ILP32", pfile); |
133 aarch64_def_or_undef (TARGET_ILP32, "__ILP32__", pfile); | 135 aarch64_def_or_undef (TARGET_ILP32, "__ILP32__", pfile); |
134 | 136 |
135 aarch64_def_or_undef (TARGET_CRYPTO, "__ARM_FEATURE_CRYPTO", pfile); | 137 aarch64_def_or_undef (TARGET_CRYPTO, "__ARM_FEATURE_CRYPTO", pfile); |
136 aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile); | 138 aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile); |
139 aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile); | |
140 cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS"); | |
141 if (TARGET_SVE) | |
142 { | |
143 int bits; | |
144 if (!BITS_PER_SVE_VECTOR.is_constant (&bits)) | |
145 bits = 0; | |
146 builtin_define_with_int_value ("__ARM_FEATURE_SVE_BITS", bits); | |
147 } | |
148 | |
149 aarch64_def_or_undef (TARGET_AES, "__ARM_FEATURE_AES", pfile); | |
150 aarch64_def_or_undef (TARGET_SHA2, "__ARM_FEATURE_SHA2", pfile); | |
151 aarch64_def_or_undef (TARGET_SHA3, "__ARM_FEATURE_SHA3", pfile); | |
152 aarch64_def_or_undef (TARGET_SHA3, "__ARM_FEATURE_SHA512", pfile); | |
153 aarch64_def_or_undef (TARGET_SM4, "__ARM_FEATURE_SM3", pfile); | |
154 aarch64_def_or_undef (TARGET_SM4, "__ARM_FEATURE_SM4", pfile); | |
155 aarch64_def_or_undef (TARGET_F16FML, "__ARM_FEATURE_FP16_FML", pfile); | |
137 | 156 |
138 /* Not for ACLE, but required to keep "float.h" correct if we switch | 157 /* Not for ACLE, but required to keep "float.h" correct if we switch |
139 target between implementations that do or do not support ARMv8.2-A | 158 target between implementations that do or do not support ARMv8.2-A |
140 16-bit floating-point extensions. */ | 159 16-bit floating-point extensions. */ |
141 cpp_undef (pfile, "__FLT_EVAL_METHOD__"); | 160 cpp_undef (pfile, "__FLT_EVAL_METHOD__"); |
164 { | 183 { |
165 /* If args is not NULL then process it and setup the target-specific | 184 /* If args is not NULL then process it and setup the target-specific |
166 information that it specifies. */ | 185 information that it specifies. */ |
167 if (args) | 186 if (args) |
168 { | 187 { |
169 if (!aarch64_process_target_attr (args, "pragma")) | 188 if (!aarch64_process_target_attr (args)) |
170 return false; | 189 return false; |
171 | 190 |
172 aarch64_override_options_internal (&global_options); | 191 aarch64_override_options_internal (&global_options); |
173 } | 192 } |
174 | 193 |