diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-09-03 04:10:33 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-09-03 04:10:33 +0000 |
commit | 9cdd2c6d728fad88b49377ff2951ed436cbfb470 (patch) | |
tree | 12f35007d417e40add149e064c4d09e964cb6a2b /sim/v850/v850_sim.h | |
parent | 80c651f02dfef05adafe2cf9cc52014a0982d055 (diff) | |
download | gdb-9cdd2c6d728fad88b49377ff2951ed436cbfb470.zip gdb-9cdd2c6d728fad88b49377ff2951ed436cbfb470.tar.gz gdb-9cdd2c6d728fad88b49377ff2951ed436cbfb470.tar.bz2 |
Add real SIM_DESC arg to v850 simulator.
Add --enable-sim-warnings, use/fix errors.
Add --enable-sim-endian, don't use.
Add common modules. Don't yet use most.
Diffstat (limited to 'sim/v850/v850_sim.h')
-rw-r--r-- | sim/v850/v850_sim.h | 164 |
1 files changed, 1 insertions, 163 deletions
diff --git a/sim/v850/v850_sim.h b/sim/v850/v850_sim.h index a12428b..d88bb14 100644 --- a/sim/v850/v850_sim.h +++ b/sim/v850/v850_sim.h @@ -1,170 +1,8 @@ -#include <stdio.h> -#include <ctype.h> -#include "ansidecl.h" -#include "callback.h" -#include "opcode/v850.h" -#include <limits.h> -#include "remote-sim.h" - -extern host_callback *v850_callback; - -#define DEBUG_TRACE 0x00000001 -#define DEBUG_VALUES 0x00000002 - -extern int v850_debug; - -#if UCHAR_MAX == 255 -typedef unsigned char uint8; -typedef signed char int8; -#else -#error "Char is not an 8-bit type" -#endif - -#if SHRT_MAX == 32767 -typedef unsigned short uint16; -typedef signed short int16; -#else -#error "Short is not a 16-bit type" -#endif - -#if INT_MAX == 2147483647 - -typedef unsigned int uint32; -typedef signed int int32; - -#else -# if LONG_MAX == 2147483647 - -typedef unsigned long uint32; -typedef signed long int32; - -# else -# error "Neither int nor long is a 32-bit type" -# endif -#endif - -/* FIXME: V850 defines */ -typedef uint32 reg_t; - struct simops { long opcode; long mask; - int (* func)(void); + int (* func) PARAMS ((void)); int numops; int operands[12]; }; - -/* The current state of the processor; registers, memory, etc. */ - -struct _state -{ - reg_t regs[32]; /* general-purpose registers */ - reg_t sregs[32]; /* system registers, including psw */ - reg_t pc; - uint8 * mem; /* main memory */ - int dummy_mem; /* where invalid accesses go */ - int exception; - int pending_nmi; -} State; - -#define SIG_V850_EXIT -1 /* indication of a normal exit */ - -extern uint32 OP[4]; -extern struct simops Simops[]; - -#define PC (State.pc) -#define SP (State.regs[3]) -#define EP (State.regs[30]) - -#define EIPC (State.sregs[0]) -#define EIPSW (State.sregs[1]) -#define FEPC (State.sregs[2]) -#define FEPSW (State.sregs[3]) -#define ECR (State.sregs[4]) -#define PSW (State.sregs[5]) -/* start-sanitize-v850e */ -#define CTPC (State.sregs[16]) -#define CTPSW (State.sregs[17]) -/* end-sanitize-v850e */ -#define DBPC (State.sregs[18]) -#define DBPSW (State.sregs[19]) -/* start-sanitize-v850e */ -#define CTBP (State.sregs[20]) -/* end-sanitize-v850e */ - -#define PSW_NP 0x80 -#define PSW_EP 0x40 -#define PSW_ID 0x20 -#define PSW_SAT 0x10 -#define PSW_CY 0x8 -#define PSW_OV 0x4 -#define PSW_S 0x2 -#define PSW_Z 0x1 - -#define SEXT3(x) ((((x)&0x7)^(~0x3))+0x4) - -/* sign-extend a 4-bit number */ -#define SEXT4(x) ((((x)&0xf)^(~0x7))+0x8) - -/* sign-extend a 5-bit number */ -#define SEXT5(x) ((((x)&0x1f)^(~0xf))+0x10) - -/* sign-extend an 8-bit number */ -#define SEXT8(x) ((((x)&0xff)^(~0x7f))+0x80) - -/* sign-extend a 9-bit number */ -#define SEXT9(x) ((((x)&0x1ff)^(~0xff))+0x100) - -/* sign-extend a 16-bit number */ -#define SEXT16(x) ((((x)&0xffff)^(~0x7fff))+0x8000) - -/* sign-extend a 22-bit number */ -#define SEXT22(x) ((((x)&0x3fffff)^(~0x1fffff))+0x200000) - -/* sign-extend a 32-bit number */ -#define SEXT32(x) ((((x)&0xffffffffLL)^(~0x7fffffffLL))+0x80000000LL) - -/* sign extend a 40 bit number */ -#define SEXT40(x) ((((x)&0xffffffffffLL)^(~0x7fffffffffLL))+0x8000000000LL) - -/* sign extend a 44 bit number */ -#define SEXT44(x) ((((x)&0xfffffffffffLL)^(~0x7ffffffffffLL))+0x80000000000LL) - -/* sign extend a 60 bit number */ -#define SEXT60(x) ((((x)&0xfffffffffffffffLL)^(~0x7ffffffffffffffLL))+0x800000000000000LL) - -/* No sign extension */ -#define NOP(x) (x) - -#define MAX32 0x7fffffffLL -#define MIN32 0xff80000000LL -#define MASK32 0xffffffffLL -#define MASK40 0xffffffffffLL - -#define INC_ADDR(x,i) x = ((State.MD && x == MOD_E) ? MOD_S : (x)+(i)) - -#define RLW(x) load_mem (x, 4) - -#ifdef _WIN32 -#ifndef SIGTRAP -#define SIGTRAP 5 -#endif -#ifndef SIGQUIT -#define SIGQUIT 3 -#endif -#endif - -/* Function declarations. */ - -uint32 get_word PARAMS ((uint8 *)); -uint16 get_half PARAMS ((uint8 *)); -uint8 get_byte PARAMS ((uint8 *)); -void put_word PARAMS ((uint8 *, uint32)); -void put_half PARAMS ((uint8 *, uint16)); -void put_byte PARAMS ((uint8 *, uint8)); - -extern uint32 load_mem PARAMS ((SIM_ADDR addr, int len)); -extern void store_mem PARAMS ((SIM_ADDR addr, int len, uint32 data)); - -extern uint8 *map PARAMS ((SIM_ADDR addr)); |