diff options
author | Ian Lance Taylor <iant@golang.org> | 2022-02-11 15:02:44 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2022-02-11 15:02:44 -0800 |
commit | 9a510fb0970d3d9a4201bce8965cabe67850386b (patch) | |
tree | 43d7fd2bbfd7ad8c9625a718a5e8718889351994 /gcc/config/sparc/driver-sparc.c | |
parent | a6d3012b274f38b20e2a57162106f625746af6c6 (diff) | |
parent | 8dc2499aa62f768c6395c9754b8cabc1ce25c494 (diff) | |
download | gcc-9a510fb0970d3d9a4201bce8965cabe67850386b.zip gcc-9a510fb0970d3d9a4201bce8965cabe67850386b.tar.gz gcc-9a510fb0970d3d9a4201bce8965cabe67850386b.tar.bz2 |
Merge from trunk revision 8dc2499aa62f768c6395c9754b8cabc1ce25c494
Diffstat (limited to 'gcc/config/sparc/driver-sparc.c')
-rw-r--r-- | gcc/config/sparc/driver-sparc.c | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/gcc/config/sparc/driver-sparc.c b/gcc/config/sparc/driver-sparc.c deleted file mode 100644 index 698c18e..0000000 --- a/gcc/config/sparc/driver-sparc.c +++ /dev/null @@ -1,169 +0,0 @@ -/* Subroutines for the gcc driver. - Copyright (C) 2011-2021 Free Software Foundation, Inc. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING3. If not see - <http://www.gnu.org/licenses/>. */ - -#define IN_TARGET_CODE 1 - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" - -static const struct cpu_names { - const char *const name; - const char *const cpu; -} cpu_names[] = { -#if defined __sun__ && defined __svr4__ - { "TMS390S10", "supersparc" }, /* Texas Instruments microSPARC I */ - { "TMS390Z50", "supersparc" }, /* Texas Instruments SuperSPARC I */ - { "TMS390Z55", "supersparc" }, /* Texas Instruments - SuperSPARC I with SuperCache */ - { "MB86904", "supersparc" }, /* Fujitsu microSPARC II */ - { "MB86907", "supersparc" }, /* Fujitsu TurboSPARC */ - { "RT623", "hypersparc" }, /* Ross hyperSPARC */ - { "RT625", "hypersparc" }, - { "RT626", "hypersparc" }, - { "UltraSPARC-I", "ultrasparc" }, - { "UltraSPARC-II", "ultrasparc" }, - { "UltraSPARC-IIe", "ultrasparc" }, - { "UltraSPARC-IIi", "ultrasparc" }, - { "SPARC64-III", "ultrasparc" }, - { "SPARC64-IV", "ultrasparc" }, - { "UltraSPARC-III", "ultrasparc3" }, - { "UltraSPARC-III+", "ultrasparc3" }, - { "UltraSPARC-IIIi", "ultrasparc3" }, - { "UltraSPARC-IIIi+", "ultrasparc3" }, - { "UltraSPARC-IV", "ultrasparc3" }, - { "UltraSPARC-IV+", "ultrasparc3" }, - { "SPARC64-V", "ultrasparc3" }, - { "SPARC64-VI", "ultrasparc3" }, - { "SPARC64-VII", "ultrasparc3" }, - { "UltraSPARC-T1", "niagara" }, - { "UltraSPARC-T2", "niagara2" }, - { "UltraSPARC-T2", "niagara2" }, - { "UltraSPARC-T2+", "niagara2" }, - { "SPARC-T3", "niagara3" }, - { "SPARC-T4", "niagara4" }, - { "SPARC-T5", "niagara4" }, -#else - { "SuperSparc", "supersparc" }, - { "HyperSparc", "hypersparc" }, - { "SpitFire", "ultrasparc" }, - { "BlackBird", "ultrasparc" }, - { "Sabre", "ultrasparc" }, - { "Hummingbird", "ultrasparc" }, - { "Cheetah", "ultrasparc3" }, - { "Jalapeno", "ultrasparc3" }, - { "Jaguar", "ultrasparc3" }, - { "Panther", "ultrasparc3" }, - { "Serrano", "ultrasparc3" }, - { "UltraSparc T1", "niagara" }, - { "UltraSparc T2", "niagara2" }, - { "UltraSparc T3", "niagara3" }, - { "UltraSparc T4", "niagara4" }, - { "UltraSparc T5", "niagara4" }, - { "LEON", "leon3" }, -#endif - { "SPARC-M7", "niagara7" }, - { "SPARC-S7", "niagara7" }, - { "SPARC-M8", "m8" }, - { NULL, NULL } - }; - -#if defined __sun__ && defined __svr4__ -#include <kstat.h> -#endif - -/* This will be called by the spec parser in gcc.c when it sees - a %:local_cpu_detect(args) construct. Currently it will be called - with either "cpu" or "tune" as argument depending on if -mcpu=native - or -mtune=native is to be substituted. - - It returns a string containing new command line parameters to be - put at the place of the above two options, depending on what CPU - this is executed. E.g. "-mcpu=ultrasparc3" on an UltraSPARC III for - -mcpu=native. If the routine can't detect a known processor, - the -mcpu or -mtune option is discarded. - - ARGC and ARGV are set depending on the actual arguments given - in the spec. */ -const char * -host_detect_local_cpu (int argc, const char **argv) -{ - const char *cpu = NULL; -#if defined __sun__ && defined __svr4__ - char *buf = NULL; - kstat_ctl_t *kc; - kstat_t *ksp; - kstat_named_t *brand = NULL; -#else - char buf[128]; - FILE *f; -#endif - int i; - - if (argc < 1) - return NULL; - - if (strcmp (argv[0], "cpu") && strcmp (argv[0], "tune")) - return NULL; - -#if defined __sun__ && defined __svr4__ - kc = kstat_open (); - if (kc != NULL) - { - ksp = kstat_lookup (kc, CONST_CAST2 (char *, const char *, "cpu_info"), - -1, NULL); - if (ksp != NULL - && kstat_read (kc, ksp, NULL) != -1 - && ksp->ks_type == KSTAT_TYPE_NAMED) - brand = (kstat_named_t *) - kstat_data_lookup (ksp, CONST_CAST2 (char *, const char *, "brand")); - if (brand != NULL && brand->data_type == KSTAT_DATA_STRING) - buf = KSTAT_NAMED_STR_PTR (brand); - } - kstat_close (kc); - - for (i = 0; cpu_names[i].name != NULL; i++) - if (strcmp (buf, cpu_names[i].name) == 0) - cpu = cpu_names[i].cpu; -#else - f = fopen ("/proc/cpuinfo", "r"); - if (f == NULL) - return NULL; - - while (fgets (buf, sizeof (buf), f) != NULL) - if (startswith (buf, "cpu\t\t:")) - { - for (i = 0; cpu_names [i].name; i++) - if (strstr (buf, cpu_names [i].name) != NULL) - { - cpu = cpu_names [i].cpu; - break; - } - break; - } - - fclose (f); -#endif - - if (cpu == NULL) - return NULL; - - return concat ("-m", argv[0], "=", cpu, NULL); -} |