2006-04-13 11:42:18 +02:00
|
|
|
|
/*
|
2007-11-13 22:58:16 +01:00
|
|
|
|
* Copyright .AN) 2007 MIPS Technologies, Inc. All Rights Reserved
|
2006-04-13 11:42:18 +02:00
|
|
|
|
*
|
2007-11-13 22:58:16 +01:00
|
|
|
|
* This software is part of the M5 simulator.
|
2006-04-13 11:42:18 +02:00
|
|
|
|
*
|
2007-11-13 22:58:16 +01:00
|
|
|
|
* THIS IS A LEGAL AGREEMENT. BY DOWNLOADING, USING, COPYING, CREATING
|
|
|
|
|
* DERIVATIVE WORKS, AND/OR DISTRIBUTING THIS SOFTWARE YOU ARE AGREEING
|
|
|
|
|
* TO THESE TERMS AND CONDITIONS.
|
2006-06-01 01:26:56 +02:00
|
|
|
|
*
|
2007-11-13 22:58:16 +01:00
|
|
|
|
* Permission is granted to use, copy, create derivative works and
|
|
|
|
|
* distribute this software and such derivative works for any purpose,
|
|
|
|
|
* so long as (1) the copyright notice above, this grant of permission,
|
|
|
|
|
* and the disclaimer below appear in all copies and derivative works
|
|
|
|
|
* made, (2) the copyright notice above is augmented as appropriate to
|
|
|
|
|
* reflect the addition of any new copyrightable work in a derivative
|
|
|
|
|
* work (e.g., Copyright .AN) <Publication Year> Copyright Owner), and (3)
|
|
|
|
|
* the name of MIPS Technologies, Inc. ($B!H(BMIPS$B!I(B) is not used in any
|
|
|
|
|
* advertising or publicity pertaining to the use or distribution of
|
|
|
|
|
* this software without specific, written prior authorization.
|
|
|
|
|
*
|
|
|
|
|
* THIS SOFTWARE IS PROVIDED $B!H(BAS IS.$B!I(B MIPS MAKES NO WARRANTIES AND
|
|
|
|
|
* DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, STATUTORY, IMPLIED OR
|
|
|
|
|
* OTHERWISE, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
|
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
|
|
|
|
* NON-INFRINGEMENT OF THIRD PARTY RIGHTS, REGARDING THIS SOFTWARE.
|
|
|
|
|
* IN NO EVENT SHALL MIPS BE LIABLE FOR ANY DAMAGES, INCLUDING DIRECT,
|
|
|
|
|
* INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR PUNITIVE DAMAGES OF
|
|
|
|
|
* ANY KIND OR NATURE, ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT,
|
|
|
|
|
* THIS SOFTWARE AND/OR THE USE OF THIS SOFTWARE, WHETHER SUCH LIABILITY
|
|
|
|
|
* IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING NEGLIGENCE OR
|
|
|
|
|
* STRICT LIABILITY), OR OTHERWISE, EVEN IF MIPS HAS BEEN WARNED OF THE
|
|
|
|
|
* POSSIBILITY OF ANY SUCH LOSS OR DAMAGE IN ADVANCE.
|
|
|
|
|
*
|
|
|
|
|
* Authors: Korey L. Sewell
|
2006-04-13 11:42:18 +02:00
|
|
|
|
*/
|
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
#ifndef __ARCH_MIPS_TYPES_HH__
|
|
|
|
|
#define __ARCH_MIPS_TYPES_HH__
|
2006-04-13 11:42:18 +02:00
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
#include "sim/host.hh"
|
|
|
|
|
|
|
|
|
|
namespace MipsISA
|
|
|
|
|
{
|
|
|
|
|
typedef uint32_t MachInst;
|
|
|
|
|
typedef uint64_t ExtMachInst;
|
2007-11-13 22:58:16 +01:00
|
|
|
|
typedef uint16_t RegIndex;
|
2006-05-08 00:50:41 +02:00
|
|
|
|
|
|
|
|
|
typedef uint32_t IntReg;
|
2007-02-12 19:06:30 +01:00
|
|
|
|
typedef uint64_t LargestRead;
|
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
|
|
|
|
|
// floating point register file entry type
|
|
|
|
|
typedef uint32_t FloatReg32;
|
|
|
|
|
typedef uint64_t FloatReg64;
|
|
|
|
|
typedef uint64_t FloatRegBits;
|
2006-04-13 11:42:18 +02:00
|
|
|
|
|
2006-06-15 07:00:15 +02:00
|
|
|
|
typedef double FloatRegVal;
|
|
|
|
|
typedef double FloatReg;
|
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
// cop-0/cop-1 system control register
|
|
|
|
|
typedef uint64_t MiscReg;
|
2006-04-13 11:42:18 +02:00
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
typedef union {
|
|
|
|
|
IntReg intreg;
|
|
|
|
|
FloatReg fpreg;
|
|
|
|
|
MiscReg ctrlreg;
|
|
|
|
|
} AnyReg;
|
2006-04-13 11:42:18 +02:00
|
|
|
|
|
2006-08-12 01:43:10 +02:00
|
|
|
|
typedef int RegContextParam;
|
|
|
|
|
typedef int RegContextVal;
|
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
//used in FP convert & round function
|
|
|
|
|
enum ConvertType{
|
|
|
|
|
SINGLE_TO_DOUBLE,
|
|
|
|
|
SINGLE_TO_WORD,
|
|
|
|
|
SINGLE_TO_LONG,
|
2006-04-13 11:42:18 +02:00
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
DOUBLE_TO_SINGLE,
|
|
|
|
|
DOUBLE_TO_WORD,
|
|
|
|
|
DOUBLE_TO_LONG,
|
|
|
|
|
|
|
|
|
|
LONG_TO_SINGLE,
|
|
|
|
|
LONG_TO_DOUBLE,
|
|
|
|
|
LONG_TO_WORD,
|
2006-05-11 02:54:03 +02:00
|
|
|
|
LONG_TO_PS,
|
2006-05-08 00:50:41 +02:00
|
|
|
|
|
|
|
|
|
WORD_TO_SINGLE,
|
|
|
|
|
WORD_TO_DOUBLE,
|
|
|
|
|
WORD_TO_LONG,
|
2006-05-11 02:54:03 +02:00
|
|
|
|
WORD_TO_PS,
|
2006-05-08 00:50:41 +02:00
|
|
|
|
|
2006-05-11 02:54:03 +02:00
|
|
|
|
PL_TO_SINGLE,
|
|
|
|
|
PU_TO_SINGLE
|
2006-05-08 00:50:41 +02:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//used in FP convert & round function
|
|
|
|
|
enum RoundMode{
|
|
|
|
|
RND_ZERO,
|
|
|
|
|
RND_DOWN,
|
|
|
|
|
RND_UP,
|
|
|
|
|
RND_NEAREST
|
2007-11-13 22:58:16 +01:00
|
|
|
|
};
|
2007-08-27 05:33:57 +02:00
|
|
|
|
|
2006-05-08 00:50:41 +02:00
|
|
|
|
} // namespace MipsISA
|
|
|
|
|
|
|
|
|
|
#endif
|