aboutsummaryrefslogtreecommitdiff
path: root/sim/txvu/vu.h
diff options
context:
space:
mode:
authorIan Carmichael <iancarm@cygnus>1998-01-28 02:04:32 +0000
committerIan Carmichael <iancarm@cygnus>1998-01-28 02:04:32 +0000
commit8ae6b5cd79abca4e12987dc7dd46e20418712d5c (patch)
treef39729536b47c287e308838638960077a3012082 /sim/txvu/vu.h
parent4b95e9a13ddec5ea161db5624a0ea7451d94237d (diff)
downloadgdb-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.h49
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