aarch64-opts.h revision 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. */ 26enum 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. */ 39enum 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. */ 46enum 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