1 /* Definitions for option handling for SPARC. 2 Copyright (C) 1996-2018 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 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3, or (at your option) 9 any later version. 10 11 GCC is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public 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 SPARC_OPTS_H 21 #define SPARC_OPTS_H 22 23 /* Processor type. 24 These must match the values for the cpu attribute in sparc.md and 25 the table in sparc_option_override. */ 26 enum processor_type { 27 PROCESSOR_V7, 28 PROCESSOR_CYPRESS, 29 PROCESSOR_V8, 30 PROCESSOR_SUPERSPARC, 31 PROCESSOR_HYPERSPARC, 32 PROCESSOR_LEON, 33 PROCESSOR_LEON3, 34 PROCESSOR_LEON3V7, 35 PROCESSOR_SPARCLITE, 36 PROCESSOR_F930, 37 PROCESSOR_F934, 38 PROCESSOR_SPARCLITE86X, 39 PROCESSOR_SPARCLET, 40 PROCESSOR_TSC701, 41 PROCESSOR_V9, 42 PROCESSOR_ULTRASPARC, 43 PROCESSOR_ULTRASPARC3, 44 PROCESSOR_NIAGARA, 45 PROCESSOR_NIAGARA2, 46 PROCESSOR_NIAGARA3, 47 PROCESSOR_NIAGARA4, 48 PROCESSOR_NIAGARA7, 49 PROCESSOR_M8, 50 PROCESSOR_NATIVE 51 }; 52 53 /* Sparc system memory model. See Appendix D in the Sparc V9 manual 54 for formal specification, and Appendix J for more discussion. */ 55 enum sparc_memory_model_type { 56 SMM_DEFAULT, /* Uninitialized. */ 57 SMM_RMO, /* Relaxed Memory Order. */ 58 SMM_PSO, /* Partial Store Order. */ 59 SMM_TSO, /* Total Store Order. */ 60 SMM_SC /* Sequential Consistency. */ 61 }; 62 63 #endif 64