diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
commit | 071ea11e85eb9d529cc5eb3d35f6247466a21b99 (patch) | |
tree | 5deda65b8d7b04d1f4cbc534c3206d328e1267ec /sim/common/cgen-types.h | |
parent | 1730ec6b1848f0f32154277f788fb29f88d8475b (diff) | |
download | gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.zip gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.gz gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.bz2 |
Initial creation of sourceware repository
Diffstat (limited to 'sim/common/cgen-types.h')
-rw-r--r-- | sim/common/cgen-types.h | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/sim/common/cgen-types.h b/sim/common/cgen-types.h deleted file mode 100644 index ad22f46..0000000 --- a/sim/common/cgen-types.h +++ /dev/null @@ -1,176 +0,0 @@ -/* Types for Cpu tools GENerated simulators. - Copyright (C) 1996, 1997 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. - -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. */ - -#ifndef CGEN_TYPES_H -#define CGEN_TYPES_H - -#ifdef __GNUC__ -#define HAVE_LONGLONG -#undef DI_FN_SUPPORT -#define SIM_INLINE extern inline -#else -#undef HAVE_LONGLONG -#define DI_FN_SUPPORT -#define SIM_INLINE -#endif - -#ifndef CGEN_CAT3 -#if defined(__STDC__) || defined(ALMOST_STDC) -#define CGEN_XCAT3(a,b,c) a ## b ## c -#define CGEN_CAT3(a,b,c) CGEN_XCAT3 (a, b, c) -#else -#define CGEN_CAT3(a,b,c) a/**/b/**/c -#endif -#endif - -extern const char *mode_names[]; -#define MODE_NAME(m) (mode_names[m]) - -#ifdef __STDC__ -typedef /*FIXME*/ signed char BI; -typedef /*FIXME*/ signed char QI; -#else -typedef /*FIXME*/ char BI; -typedef /*FIXME*/ char QI; -#endif -typedef short HI; -typedef int SI; -typedef unsigned char UBI; -typedef unsigned char UQI; -typedef unsigned short UHI; -typedef unsigned int USI; - -#ifdef HAVE_LONGLONG -typedef long long DI; -typedef unsigned long long UDI; -#define GETLODI(di) ((SI) (di)) -#define GETHIDI(di) ((SI) ((di) >> 32)) -#define SETLODI(di, val) ((di) = (((di) & 0xffffffff00000000LL) | (val))) -#define SETHIDI(di, val) ((di) = (((di) & 0xffffffffLL) | (((DI) (val)) << 32))) -#define SETDI(di, hi, lo) ((di) = MAKEDI (hi, lo)) -#define MAKEDI(hi, lo) ((((DI) (hi)) << 32) | ((DI) (lo))) -#else -typedef struct { SI hi,lo; } DI; -typedef DI UDI; -#define GETLODI(di) ((di).lo) -#define GETHIDI(di) ((di).hi) -#define SETLODI(di, val) ((di).lo = (val)) -#define SETHIDI(di, val) ((di).hi = (val)) -#define SETDI(di, hi, lo) ((di) = MAKEDI (hi, lo)) -extern DI make_struct_di (SI, SI); -#define MAKEDI(hi, lo) (make_struct_di ((hi), (lo))) -#endif - -/* FIXME: Need to provide libraries if these aren't appropriate for target, - or user's needs. */ -typedef float SF; -typedef double DF; -typedef double XF; /* FIXME: configure, provide library */ -typedef double TF; /* FIXME: configure, provide library */ - -struct argbuf; -struct cgen_insn; -struct scache; - -/* This is used to record extracted raw data from an instruction, among other - things. It must be a host data type, and not a target one so USI is - inappropriate. */ -typedef unsigned int UINT; - -typedef unsigned long PCADDR; -typedef unsigned long ADDR; -typedef /*FIXME*/ unsigned long insn_t; - -/* Forward declaration of STATE. - Must be defined before profile.h and other module headers. */ -typedef struct sim_state *STATE; - -/* Execution support. - - Semantic functions come in two versions. - One that uses the cache, and one that doesn't. - The one that doesn't may eventually be thrown away or replaced with - something else. */ - -/* ??? The cache stuff is still wip, but it at least works. */ - -#ifdef SCACHE_P - -/* iaddr: instruction address */ -typedef PCADDR IADDR; -/* cia: current instruction address */ -typedef PCADDR CIA; -#define CIA_ADDR(cia) (cia) -typedef struct scache *SEM_ARG; -#define EX_FN_NAME(fn) CGEN_CAT3 (exc,_,fn) -#define SEM_FN_NAME(fn) CGEN_CAT3 (semc,_,fn) - -/* extract.c support */ -/* scache_unset is a cache entry that is never used. - It's raison d'etre is so BRANCH_VIA_CACHE doesn't have to test for - newval.cache == NULL. */ -extern struct scache scache_unset; -#define RECORD_IADDR(fld, val) \ -do { (fld) = (val); } while (0) - -/* semantics.c support */ -#define SEM_ARGBUF(sem_arg) (&(sem_arg)->argbuf) -#define SEM_NEXT_PC(sc) ((sc)->next) -#define SEM_BRANCH_VIA_CACHE(sc, newval) (newval) -#define SEM_BRANCH_VIA_ADDR(sc, newval) (newval) -/* Return address a branch insn will branch to. - This is only used during tracing. */ -#define SEM_NEW_PC_ADDR(new_pc) (new_pc) - -#else /* ! SCACHE_P */ - -typedef PCADDR IADDR; -typedef PCADDR CIA; -#define CIA_ADDR(cia) (cia) -typedef struct argbuf *SEM_ARG; -#define EX_FN_NAME(fn) CGEN_CAT3 (ex,_,fn) -#define SEM_FN_NAME(fn) CGEN_CAT3 (sem,_,fn) - -/* extract.c support */ -#define RECORD_IADDR(fld, val) \ -do { (fld) = (val); } while (0) - -/* semantics.c support */ -#define SEM_ARGBUF(sem_arg) (sem_arg) -#define SEM_NEXT_PC(abuf) (abuf->addr + abuf->length) -#define SEM_BRANCH_VIA_CACHE(abuf, newval) (newval) -#define SEM_BRANCH_VIA_ADDR(abuf, newval) (newval) -#define SEM_NEW_PC_ADDR(new_pc) (new_pc) - -#endif /* ! SCACHE_P */ - -#define EXTRACT_SIGNED(val, total, start, length) \ -(((((val) >> ((total) - ((start) + (length)))) & ((1 << (length)) - 1)) \ - ^ (1 << ((length) - 1))) \ - - (1 << ((length) - 1))) - -#define EXTRACT_UNSIGNED(val, total, start, length) \ -(((val) >> ((total) - ((start) + (length)))) & ((1 << (length)) - 1)) - -/* Compute number of longs required to hold N bits. */ -#define HOST_LONGS_FOR_BITS(n) \ - (((n) + sizeof (long) * 8 - 1) / sizeof (long) * 8) - -#endif /* CGEN_TYPES_H */ |