diff options
author | Michael Meissner <gnu@the-meissners.org> | 1995-11-02 14:27:18 +0000 |
---|---|---|
committer | Michael Meissner <gnu@the-meissners.org> | 1995-11-02 14:27:18 +0000 |
commit | a983c8f080912c4c99c68812b22a795c9b7f1f0d (patch) | |
tree | ee47ad45eb2e3529b02852066947955a4d8de5a1 /sim/ppc/misc.c | |
parent | f2cd34413022d50dd8ae94db69324938fd63ea2d (diff) | |
download | gdb-a983c8f080912c4c99c68812b22a795c9b7f1f0d.zip gdb-a983c8f080912c4c99c68812b22a795c9b7f1f0d.tar.gz gdb-a983c8f080912c4c99c68812b22a795c9b7f1f0d.tar.bz2 |
Andrew's latest changes & print all instruction counts if -I
Diffstat (limited to 'sim/ppc/misc.c')
-rw-r--r-- | sim/ppc/misc.c | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/sim/ppc/misc.c b/sim/ppc/misc.c new file mode 100644 index 0000000..8c62ad2 --- /dev/null +++ b/sim/ppc/misc.c @@ -0,0 +1,107 @@ +/* This file is part of the program psim. + + Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au> + + 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 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. + + */ + + +#include <stdio.h> +#include <stdarg.h> +#include <stdlib.h> +#include <string.h> + +#include "misc.h" + +void +error (char *msg, ...) +{ + va_list ap; + va_start(ap, msg); + vprintf(msg, ap); + va_end(ap); + exit (1); +} + +void * +zalloc(long size) +{ + void *memory = malloc(size); + if (memory == NULL) + error("zalloc failed\n"); + bzero(memory, size); + return memory; +} + +void +dumpf (int indent, char *msg, ...) +{ + va_list ap; + for (; indent > 0; indent--) + printf(" "); + va_start(ap, msg); + vprintf(msg, ap); + va_end(ap); +} + + +int +it_is(const char *flag, + const char *flags) +{ + int flag_len = strlen(flag); + while (*flags != '\0') { + if (!strncmp(flags, flag, flag_len) + && (flags[flag_len] == ',' || flags[flag_len] == '\0')) + return 1; + while (*flags != ',') { + if (*flags == '\0') + return 0; + flags++; + } + flags++; + } + return 0; +} + + +unsigned +a2i(const char *a) +{ + return strtoul(a, 0, 0); +} + +unsigned +target_a2i(int ms_bit_nr, + const char *a) +{ + if (ms_bit_nr) + return (ms_bit_nr - strtoul(a, 0, 0)); + else + return strtoul(a, 0, 0); +} + +unsigned +i2target(int ms_bit_nr, + unsigned bit) +{ + if (ms_bit_nr) + return ms_bit_nr - bit; + else + return bit; +} + + |