Home | History | Annotate | Line # | Download | only in aarch64
aarch64-opts.h revision 1.1.1.1
      1 /* Copyright (C) 2011-2013 Free Software Foundation, Inc.
      2    Contributed by ARM Ltd.
      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 /* Definitions for option handling for AArch64.  */
     21 
     22 #ifndef GCC_AARCH64_OPTS_H
     23 #define GCC_AARCH64_OPTS_H
     24 
     25 /* The various cores that implement AArch64.  */
     26 enum aarch64_processor
     27 {
     28 #define AARCH64_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
     29   IDENT,
     30 #include "aarch64-cores.def"
     31 #undef AARCH64_CORE
     32   /* Used to indicate that no processor has been specified.  */
     33   generic,
     34   /* Used to mark the end of the processor table.  */
     35   aarch64_none
     36 };
     37 
     38 /* TLS types.  */
     39 enum aarch64_tls_type {
     40   TLS_TRADITIONAL,
     41   TLS_DESCRIPTORS
     42 };
     43 
     44 /* The code model defines the address generation strategy.
     45    Most have a PIC and non-PIC variant.  */
     46 enum aarch64_code_model {
     47   /* Static code and data fit within a 1MB region.
     48      Not fully implemented, mostly treated as SMALL.  */
     49   AARCH64_CMODEL_TINY,
     50   /* Static code, data and GOT/PLT fit within a 1MB region.
     51      Not fully implemented, mostly treated as SMALL_PIC.  */
     52   AARCH64_CMODEL_TINY_PIC,
     53   /* Static code and data fit within a 4GB region.
     54      The default non-PIC code model.  */
     55   AARCH64_CMODEL_SMALL,
     56   /* Static code, data and GOT/PLT fit within a 4GB region.
     57      The default PIC code model.  */
     58   AARCH64_CMODEL_SMALL_PIC,
     59   /* No assumptions about addresses of code and data.
     60      The PIC variant is not yet implemented.  */
     61   AARCH64_CMODEL_LARGE
     62 };
     63 
     64 #endif
     65