Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / config / arm / arm-opts.h
1 /* Definitions for option handling for ARM.
2    Copyright (C) 1991-2013 Free Software Foundation, Inc.
3
4    This file is part of GCC.
5
6    GCC is free software; you can redistribute it and/or modify it
7    under the terms of the GNU General Public License as published
8    by the Free Software Foundation; either version 3, or (at your
9    option) any later version.
10
11    GCC is distributed in the hope that it will be useful, but WITHOUT
12    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
14    License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with GCC; see the file COPYING3.  If not see
18    <http://www.gnu.org/licenses/>.  */
19
20 #ifndef ARM_OPTS_H
21 #define ARM_OPTS_H
22
23 /* The various ARM cores.  */
24 enum processor_type
25 {
26 #define ARM_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
27   IDENT,
28 #include "arm-cores.def"
29 #undef ARM_CORE
30   /* Used to indicate that no processor has been specified.  */
31   arm_none
32 };
33
34 /* Which __fp16 format to use.
35    The enumeration values correspond to the numbering for the
36    Tag_ABI_FP_16bit_format attribute.
37  */
38 enum arm_fp16_format_type
39 {
40   ARM_FP16_FORMAT_NONE = 0,
41   ARM_FP16_FORMAT_IEEE = 1,
42   ARM_FP16_FORMAT_ALTERNATIVE = 2
43 };
44
45 /* Which ABI to use.  */
46 enum arm_abi_type
47 {
48   ARM_ABI_APCS,
49   ARM_ABI_ATPCS,
50   ARM_ABI_AAPCS,
51   ARM_ABI_IWMMXT,
52   ARM_ABI_AAPCS_LINUX
53 };
54
55 enum float_abi_type
56 {
57   ARM_FLOAT_ABI_SOFT,
58   ARM_FLOAT_ABI_SOFTFP,
59   ARM_FLOAT_ABI_HARD
60 };
61
62 /* Which thread pointer access sequence to use.  */
63 enum arm_tp_type {
64   TP_AUTO,
65   TP_SOFT,
66   TP_CP15
67 };
68
69 /* Which TLS scheme to use.  */
70 enum arm_tls_type {
71   TLS_GNU,
72   TLS_GNU2
73 };
74 #endif