diff options
author | Ian Carmichael <iancarm@cygnus> | 1998-01-28 02:04:32 +0000 |
---|---|---|
committer | Ian Carmichael <iancarm@cygnus> | 1998-01-28 02:04:32 +0000 |
commit | 8ae6b5cd79abca4e12987dc7dd46e20418712d5c (patch) | |
tree | f39729536b47c287e308838638960077a3012082 /sim/txvu/vu.h | |
parent | 4b95e9a13ddec5ea161db5624a0ea7451d94237d (diff) | |
download | gdb-8ae6b5cd79abca4e12987dc7dd46e20418712d5c.zip gdb-8ae6b5cd79abca4e12987dc7dd46e20418712d5c.tar.gz gdb-8ae6b5cd79abca4e12987dc7dd46e20418712d5c.tar.bz2 |
* Very, very early support for vu1 based on sce code.
* Modified Files:
* ChangeLog Makefile.in hardware.c vu1.c vu1.h
* Added Files:
* libvpe.c libvpe.h vpe.h vu.h
Diffstat (limited to 'sim/txvu/vu.h')
-rw-r--r-- | sim/txvu/vu.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/sim/txvu/vu.h b/sim/txvu/vu.h new file mode 100644 index 0000000..b983d88 --- /dev/null +++ b/sim/txvu/vu.h @@ -0,0 +1,49 @@ +/* Copyright (C) 1998, Cygnus Solutions + + */ + +#ifndef VU_H_ +#define VU_H_ + +#include "sim-main.h" +#include <sys/types.h> + +typedef u_long MEM_Entry_Type[4]; +typedef u_long uMEM_Entry_Type[2]; + +typedef enum { VU_READY, VU_RUN, VU_BREAK } RunState; + +/* See VU Specifications (Ver. 2.10), p7-11 */ +typedef struct { + u_long vbs : 1; /* busy 0: Idle, 1: Busy */ + u_long vds : 1; /* D bit stop 0: No D bit stop, 1: D bit stop */ + u_long vts : 1; /* T bit stop 0: No T bit stop, 1: T bit stop*/ + u_long vfs : 1; /* ForceBreak stop 0: no ForceBreak stop, 1: ForceBreak stop*/ + u_long vgw : 1; /* XGKICK wait 0: Do not wait, 1: Wait */ + u_long div : 1; /* DIV busy 0: Idle, 1: Busy*/ + u_long efu : 1; /* EF busy 0: Idle, 1: Busy */ + u_long reserved_2:25; +} VpeStat; + +typedef struct { + float VF[32][4]; + short VI[16]; + u_long MST; + u_long MMC; + u_long MCP; + u_long MR; + u_long MI; + u_long MQ; + u_long MP; + u_long MTPC; + VpeStat VPE_STAT; +} VectorUnitRegs; + +typedef struct { + MEM_Entry_Type *MEM; /* VU (data) memory */ + uMEM_Entry_Type *uMEM; /* Micro (instruction) memory */ + VectorUnitRegs regs; + RunState runState; +} VectorUnitState; + +#endif |