diff options
author | DJ Delorie <dj@redhat.com> | 2009-11-24 19:22:45 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2009-11-24 19:22:45 +0000 |
commit | 4f8d4a386168d6152f3006187c5ecf722eb27d67 (patch) | |
tree | e86bf5972e5f09f8c37230b21c220a65a116e734 /sim/rx/misc.c | |
parent | e4d2e6658e104829003a91249ffe27ae1afb0b34 (diff) | |
download | gdb-4f8d4a386168d6152f3006187c5ecf722eb27d67.zip gdb-4f8d4a386168d6152f3006187c5ecf722eb27d67.tar.gz gdb-4f8d4a386168d6152f3006187c5ecf722eb27d67.tar.bz2 |
[sim]
* rx: New directory.
* configure.ac: Add entry for Renesas RX.
* configure: Regenerate.
[include/gdb]
* sim-rx.h: New.
Diffstat (limited to 'sim/rx/misc.c')
-rw-r--r-- | sim/rx/misc.c | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/sim/rx/misc.c b/sim/rx/misc.c new file mode 100644 index 0000000..32ebdc1 --- /dev/null +++ b/sim/rx/misc.c @@ -0,0 +1,77 @@ +/* misc.c --- miscellaneous utility functions for RX simulator. + +Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. +Contributed by Red Hat, Inc. + +This file is part of the GNU simulators. + +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 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, see <http://www.gnu.org/licenses/>. */ + + +#include <stdio.h> + +#include "cpu.h" +#include "misc.h" + +int +bcd2int (int bcd, int w) +{ + int v = 0, m = 1, i; + for (i = 0; i < (w ? 4 : 2); i++) + { + v += (bcd % 16) * m; + m *= 10; + bcd /= 16; + } + return v; +} + +int +int2bcd (int v, int w) +{ + int bcd = 0, m = 1, i; + for (i = 0; i < (w ? 4 : 2); i++) + { + bcd += (v % 10) * m; + m *= 16; + v /= 10; + } + return bcd; +} + +char * +comma (unsigned int u) +{ + static char buf[5][20]; + static int bi = 0; + int comma = 0; + char *bp; + + bi = (bi + 1) % 5; + bp = buf[bi] + 19; + *--bp = 0; + do + { + if (comma == 3) + { + *--bp = ','; + comma = 0; + } + comma++; + *--bp = '0' + (u % 10); + u /= 10; + } + while (u); + return bp; +} |