• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/elements/genericProc/FE/ppcFrontEnd/regs.h

00001 /*
00002  * regs.h - architected register state interfaces
00003  *
00004  * This file is a part of the SimpleScalar tool suite written by
00005  * Todd M. Austin as a part of the Multiscalar Research Project.
00006  *  
00007  * The tool suite is currently maintained by Doug Burger and Todd M. Austin.
00008  * 
00009  * Copyright (C) 1994, 1995, 1996, 1997, 1998 by Todd M. Austin
00010  *
00011  * This source file is distributed "as is" in the hope that it will be
00012  * useful.  The tool set comes with no warranty, and no author or
00013  * distributor accepts any responsibility for the consequences of its
00014  * use. 
00015  * 
00016  * Everyone is granted permission to copy, modify and redistribute
00017  * this tool set under the following conditions:
00018  * 
00019  *    This source code is distributed for non-commercial use only. 
00020  *    Please contact the maintainer for restrictions applying to 
00021  *    commercial use.
00022  *
00023  *    Permission is granted to anyone to make or distribute copies
00024  *    of this source code, either as received or modified, in any
00025  *    medium, provided that all copyright notices, permission and
00026  *    nonwarranty notices are preserved, and that the distributor
00027  *    grants the recipient permission for further redistribution as
00028  *    permitted by this document.
00029  *
00030  *    Permission is granted to distribute this file in compiled
00031  *    or executable form under the same conditions that apply for
00032  *    source code, provided that either:
00033  *
00034  *    A. it is accompanied by the corresponding machine-readable
00035  *       source code,
00036  *    B. it is accompanied by a written offer, with no time limit,
00037  *       to give anyone a machine-readable copy of the corresponding
00038  *       source code in return for reimbursement of the cost of
00039  *       distribution.  This written offer must permit verbatim
00040  *       duplication by anyone, or
00041  *    C. it is distributed by someone who received only the
00042  *       executable form, and is accompanied by a copy of the
00043  *       written offer of source code that they received concurrently.
00044  *
00045  * In other words, you are welcome to use, share and improve this
00046  * source file.  You are forbidden to forbid anyone else to use, share
00047  * and improve what you give them.
00048  *
00049  * INTERNET: dburger@cs.wisc.edu
00050  * US Mail:  1210 W. Dayton Street, Madison, WI 53706
00051  *
00052  *
00053  */
00054 
00055 #ifndef REGS_H
00056 #define REGS_H
00057 
00058 #include "host.h"
00059 #include "misc.h"
00060 #include "ppcMachine.h"
00061 //#include "sst/boost.h"
00062 
00063 /*
00064  * This module implements the PowerPC architected register state, which
00065  * includes integer and floating point registers and miscellaneous registers.
00066  * The architected register state is as follows:
00067  *
00068  */
00069 
00070 /* This is the structure that describes the register set for the PowerPC.
00071 To see why these registers are here refer to the PowerPC users manual
00072 which describes the registers that are seen in the user mode*/
00073 
00074 //: PPC Special Registers
00075 //!SEC:ppcFront
00076 struct ppc_regs_t {
00077 #if 0 // WANT_CHECKPOINT_SUPPORT
00078   BOOST_SERIALIZE {
00079     ar & BOOST_SERIALIZATION_NVP(regs_C);
00080     ar & BOOST_SERIALIZATION_NVP(regs_L);
00081     ar & BOOST_SERIALIZATION_NVP(regs_CNTR);
00082     ar & BOOST_SERIALIZATION_NVP(regs_TBR);
00083   }
00084 #endif
00085   //: control register file 
00086   md_ctrl_t regs_C;
00087   //: Link regsiter 
00088   md_link_t regs_L;
00089   //: Counter register 
00090   md_ctr_t  regs_CNTR;
00091   //: Time base register 
00092   md_addr_t regs_TBR;   
00093 };
00094 
00095 /* create a register file */
00096 ppc_regs_t *regs_create(void);
00097 
00098 /* initialize architected register state */
00099 void
00100 regs_init( ppc_regs_t *regs);           /* register file to initialize */
00101 
00102 /* dump all architected register state values to output stream STREAM */
00103 /*void
00104           FILE *stream);                */
00105 /* destroy a register file */
00106 /*void
00107 regs_destroy(struct regs_t *regs);      
00108 */
00109 #endif /* REGS_H */

Generated on Fri Oct 22 2010 11:02:20 for SST by  doxygen 1.7.1