OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [sim/] [common/] [cgen-types.h] - Diff between revs 330 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 330 Rev 816
/* Types for Cpu tools GENerated simulators.
/* Types for Cpu tools GENerated simulators.
   Copyright (C) 1996, 1997, 1998, 1999, 2007, 2008, 2009, 2010
   Copyright (C) 1996, 1997, 1998, 1999, 2007, 2008, 2009, 2010
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
   Contributed by Cygnus Support.
   Contributed by Cygnus Support.
 
 
This file is part of GDB, the GNU debugger.
This file is part of GDB, the GNU debugger.
 
 
This program is free software; you can redistribute it and/or modify
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
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
(at your option) any later version.
 
 
This program is distributed in the hope that it will be useful,
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
/* This file is not included with cgen-sim.h as it defines types
/* This file is not included with cgen-sim.h as it defines types
   needed by sim-base.h.  */
   needed by sim-base.h.  */
 
 
#ifndef CGEN_TYPES_H
#ifndef CGEN_TYPES_H
#define CGEN_TYPES_H
#define CGEN_TYPES_H
 
 
/* Miscellaneous cgen configury defined here as this file gets
/* Miscellaneous cgen configury defined here as this file gets
   included soon enough.  */
   included soon enough.  */
 
 
/* Indicate we support --profile-model.  */
/* Indicate we support --profile-model.  */
#undef SIM_HAVE_MODEL
#undef SIM_HAVE_MODEL
#define SIM_HAVE_MODEL
#define SIM_HAVE_MODEL
 
 
/* Indicate we support --{profile,trace}-{range,function}.  */
/* Indicate we support --{profile,trace}-{range,function}.  */
#undef SIM_HAVE_ADDR_RANGE
#undef SIM_HAVE_ADDR_RANGE
#define SIM_HAVE_ADDR_RANGE
#define SIM_HAVE_ADDR_RANGE
 
 
#ifdef __GNUC__
#ifdef __GNUC__
#define HAVE_LONGLONG
#define HAVE_LONGLONG
#undef DI_FN_SUPPORT
#undef DI_FN_SUPPORT
#else
#else
#undef HAVE_LONGLONG
#undef HAVE_LONGLONG
#define DI_FN_SUPPORT
#define DI_FN_SUPPORT
#endif
#endif


/* Mode support.  */
/* Mode support.  */
 
 
/* Common mode types.  */
/* Common mode types.  */
/* ??? Target specific modes.  */
/* ??? Target specific modes.  */
typedef enum mode_type {
typedef enum mode_type {
  MODE_VOID, MODE_BI,
  MODE_VOID, MODE_BI,
  MODE_QI, MODE_HI, MODE_SI, MODE_DI,
  MODE_QI, MODE_HI, MODE_SI, MODE_DI,
  MODE_UQI, MODE_UHI, MODE_USI, MODE_UDI,
  MODE_UQI, MODE_UHI, MODE_USI, MODE_UDI,
  MODE_SF, MODE_DF, MODE_XF, MODE_TF,
  MODE_SF, MODE_DF, MODE_XF, MODE_TF,
  MODE_TARGET_MAX /* = MODE_TF? */,
  MODE_TARGET_MAX /* = MODE_TF? */,
  /* These are host modes.  */
  /* These are host modes.  */
  MODE_INT, MODE_UINT, MODE_PTR, /*??? MODE_ADDR, MODE_IADDR,*/
  MODE_INT, MODE_UINT, MODE_PTR, /*??? MODE_ADDR, MODE_IADDR,*/
  MODE_MAX
  MODE_MAX
} MODE_TYPE;
} MODE_TYPE;
 
 
#define MAX_TARGET_MODES ((int) MODE_TARGET_MAX)
#define MAX_TARGET_MODES ((int) MODE_TARGET_MAX)
#define MAX_MODES ((int) MODE_MAX)
#define MAX_MODES ((int) MODE_MAX)
 
 
extern const char *mode_names[];
extern const char *mode_names[];
#define MODE_NAME(m) (mode_names[m])
#define MODE_NAME(m) (mode_names[m])
 
 
typedef void VOID;
typedef void VOID;
typedef unsigned char BI;
typedef unsigned char BI;
typedef signed8 QI;
typedef signed8 QI;
typedef signed16 HI;
typedef signed16 HI;
typedef signed32 SI;
typedef signed32 SI;
typedef unsigned8 UQI;
typedef unsigned8 UQI;
typedef unsigned16 UHI;
typedef unsigned16 UHI;
typedef unsigned32 USI;
typedef unsigned32 USI;
 
 
#ifdef HAVE_LONGLONG
#ifdef HAVE_LONGLONG
typedef signed64 DI;
typedef signed64 DI;
typedef unsigned64 UDI;
typedef unsigned64 UDI;
#define GETLODI(di) ((SI) (di))
#define GETLODI(di) ((SI) (di))
#define GETHIDI(di) ((SI) ((UDI) (di) >> 32))
#define GETHIDI(di) ((SI) ((UDI) (di) >> 32))
#define SETLODI(di, val) ((di) = (((di) & 0xffffffff00000000LL) | (val)))
#define SETLODI(di, val) ((di) = (((di) & 0xffffffff00000000LL) | (val)))
#define SETHIDI(di, val) ((di) = (((di) & 0xffffffffLL) | (((DI) (val)) << 32)))
#define SETHIDI(di, val) ((di) = (((di) & 0xffffffffLL) | (((DI) (val)) << 32)))
#define MAKEDI(hi, lo) ((((DI) (SI) (hi)) << 32) | ((UDI) (USI) (lo)))
#define MAKEDI(hi, lo) ((((DI) (SI) (hi)) << 32) | ((UDI) (USI) (lo)))
#else
#else
/* DI mode support if "long long" doesn't exist.
/* DI mode support if "long long" doesn't exist.
   At one point CGEN supported K&R C compilers, and ANSI C compilers without
   At one point CGEN supported K&R C compilers, and ANSI C compilers without
   "long long".  One can argue the various merits of keeping this in or
   "long long".  One can argue the various merits of keeping this in or
   throwing it out.  I went to the trouble of adding it so for the time being
   throwing it out.  I went to the trouble of adding it so for the time being
   I'm leaving it in.  */
   I'm leaving it in.  */
typedef struct { SI hi,lo; } DI;
typedef struct { SI hi,lo; } DI;
typedef DI UDI;
typedef DI UDI;
#define GETLODI(di) ((di).lo)
#define GETLODI(di) ((di).lo)
#define GETHIDI(di) ((di).hi)
#define GETHIDI(di) ((di).hi)
#define SETLODI(di, val) ((di).lo = (val))
#define SETLODI(di, val) ((di).lo = (val))
#define SETHIDI(di, val) ((di).hi = (val))
#define SETHIDI(di, val) ((di).hi = (val))
extern DI make_struct_di (SI, SI);
extern DI make_struct_di (SI, SI);
#define MAKEDI(hi, lo) (make_struct_di ((hi), (lo)))
#define MAKEDI(hi, lo) (make_struct_di ((hi), (lo)))
#endif
#endif
 
 
/* These are used to record extracted raw data from an instruction, among other
/* These are used to record extracted raw data from an instruction, among other
   things.  It must be a host data type, and not a target one.  */
   things.  It must be a host data type, and not a target one.  */
typedef int INT;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int UINT;
 
 
typedef unsigned_address ADDR;  /* FIXME: wip*/
typedef unsigned_address ADDR;  /* FIXME: wip*/
typedef unsigned_address IADDR; /* FIXME: wip*/
typedef unsigned_address IADDR; /* FIXME: wip*/
 
 
/* fp types are in cgen-fpu.h */
/* fp types are in cgen-fpu.h */
 
 
#endif /* CGEN_TYPES_H */
#endif /* CGEN_TYPES_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.