X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fcommon%2Fcgen-scache.c;h=8eb28f07cf822a9a3e2ddef0d6d4ed65ea8156b0;hb=160f8a8f32f5566077e4a4b13943bc7c70bc5da2;hp=890afc8edc27b979f9c58e03ab6530b226bfaad0;hpb=d0352a18a504a4e7b761f6b3264cf11347d8d056;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/common/cgen-scache.c b/sim/common/cgen-scache.c index 890afc8edc..8eb28f07cf 100644 --- a/sim/common/cgen-scache.c +++ b/sim/common/cgen-scache.c @@ -1,22 +1,21 @@ /* Simulator cache routines for CGEN simulators (and maybe others). - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. Contributed by Cygnus Support. This file is part of GDB, the GNU debugger. This program 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 2, or (at your option) -any later version. +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. This program 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 this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +You should have received a copy of the GNU General Public License +along with this program. If not, see . */ #define SCACHE_DEFINE_INLINE @@ -28,8 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "sim-options.h" #include "sim-io.h" -#define MAX(a,b) ((a) > (b) ? (a) : (b)) - /* Unused address. */ #define UNUSED_ADDR 0xffffffff @@ -117,8 +114,6 @@ static SIM_RC scache_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, char *arg, int is_command) { - int n; - switch (opt) { case 'c' : @@ -126,24 +121,26 @@ scache_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt, { if (arg != NULL) { - int n = strtol (arg, NULL, 0); + unsigned int n = (unsigned int) strtoul (arg, NULL, 0); if (n < MIN_SCACHE_SIZE) { - sim_io_eprintf (sd, "invalid scache size `%d', must be at least 4", n); + sim_io_eprintf (sd, "invalid scache size `%u', must be at least %u", + n, MIN_SCACHE_SIZE); return SIM_RC_FAIL; } /* Ensure it's a multiple of 2. */ if ((n & (n - 1)) != 0) { - sim_io_eprintf (sd, "scache size `%d' not a multiple of 2\n", n); - { - /* round up to nearest multiple of 2 */ - int i; - for (i = 1; i < n; i <<= 1) - continue; - n = i; - } - sim_io_eprintf (sd, "rounding scache size up to %d\n", n); + unsigned int i; + sim_io_eprintf (sd, "scache size `%u' not a multiple of 2\n", n); + /* Round up to nearest multiple of 2. */ + for (i = 1; i && i < n; i <<= 1) + continue; + if (i) + { + n = i; + sim_io_eprintf (sd, "rounding scache size up to %u\n", n); + } } if (cpu == NULL) STATE_SCACHE_SIZE (sd) = n; @@ -215,7 +212,7 @@ scache_init (SIM_DESC sd) #if WITH_SCACHE_PBB CPU_SCACHE_MAX_CHAIN_LENGTH (cpu) = MAX_CHAIN_LENGTH; CPU_SCACHE_NUM_HASH_CHAIN_ENTRIES (cpu) = MAX_HASH_CHAIN_LENGTH; - CPU_SCACHE_NUM_HASH_CHAINS (cpu) = MAX (MIN_HASH_CHAINS, + CPU_SCACHE_NUM_HASH_CHAINS (cpu) = max (MIN_HASH_CHAINS, CPU_SCACHE_SIZE (cpu) / SCACHE_HASH_RATIO); CPU_SCACHE_HASH_TABLE (cpu) = @@ -468,7 +465,7 @@ scache_print_profile (SIM_CPU *cpu, int verbose) i, max_val < 10000 ? 5 : 10, sim_add_commas (buf, sizeof (buf), lengths[i])); - sim_profile_print_bar (sd, PROFILE_HISTOGRAM_WIDTH, + sim_profile_print_bar (sd, cpu, PROFILE_HISTOGRAM_WIDTH, lengths[i], max_val); sim_io_printf (sd, "\n"); }