types.hh revision 5222:bb733a878f85
1/*
2 * Copyright .AN) 2007 MIPS Technologies, Inc.  All Rights Reserved
3 *
4 * This software is part of the M5 simulator.
5 *
6 * THIS IS A LEGAL AGREEMENT.  BY DOWNLOADING, USING, COPYING, CREATING
7 * DERIVATIVE WORKS, AND/OR DISTRIBUTING THIS SOFTWARE YOU ARE AGREEING
8 * TO THESE TERMS AND CONDITIONS.
9 *
10 * Permission is granted to use, copy, create derivative works and
11 * distribute this software and such derivative works for any purpose,
12 * so long as (1) the copyright notice above, this grant of permission,
13 * and the disclaimer below appear in all copies and derivative works
14 * made, (2) the copyright notice above is augmented as appropriate to
15 * reflect the addition of any new copyrightable work in a derivative
16 * work (e.g., Copyright .AN) <Publication Year> Copyright Owner), and (3)
17 * the name of MIPS Technologies, Inc. ($B!H(BMIPS$B!I(B) is not used in any
18 * advertising or publicity pertaining to the use or distribution of
19 * this software without specific, written prior authorization.
20 *
21 * THIS SOFTWARE IS PROVIDED $B!H(BAS IS.$B!I(B  MIPS MAKES NO WARRANTIES AND
22 * DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, STATUTORY, IMPLIED OR
23 * OTHERWISE, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
25 * NON-INFRINGEMENT OF THIRD PARTY RIGHTS, REGARDING THIS SOFTWARE.
26 * IN NO EVENT SHALL MIPS BE LIABLE FOR ANY DAMAGES, INCLUDING DIRECT,
27 * INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR PUNITIVE DAMAGES OF
28 * ANY KIND OR NATURE, ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT,
29 * THIS SOFTWARE AND/OR THE USE OF THIS SOFTWARE, WHETHER SUCH LIABILITY
30 * IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING NEGLIGENCE OR
31 * STRICT LIABILITY), OR OTHERWISE, EVEN IF MIPS HAS BEEN WARNED OF THE
32 * POSSIBILITY OF ANY SUCH LOSS OR DAMAGE IN ADVANCE.
33 *
34 * Authors: Korey L. Sewell
35 */
36
37#ifndef __ARCH_MIPS_TYPES_HH__
38#define __ARCH_MIPS_TYPES_HH__
39
40#include "sim/host.hh"
41
42namespace MipsISA
43{
44    typedef uint32_t MachInst;
45    typedef uint64_t ExtMachInst;
46    typedef uint16_t  RegIndex;
47
48    typedef uint32_t IntReg;
49    typedef uint64_t LargestRead;
50
51
52    // floating point register file entry type
53    typedef uint32_t FloatReg32;
54    typedef uint64_t FloatReg64;
55    typedef uint64_t FloatRegBits;
56
57    typedef double FloatRegVal;
58    typedef double FloatReg;
59
60    // cop-0/cop-1 system control register
61    typedef uint64_t MiscReg;
62
63    typedef union {
64        IntReg   intreg;
65        FloatReg fpreg;
66        MiscReg  ctrlreg;
67    } AnyReg;
68
69    typedef int RegContextParam;
70    typedef int RegContextVal;
71
72    //used in FP convert & round function
73    enum ConvertType{
74        SINGLE_TO_DOUBLE,
75        SINGLE_TO_WORD,
76        SINGLE_TO_LONG,
77
78        DOUBLE_TO_SINGLE,
79        DOUBLE_TO_WORD,
80        DOUBLE_TO_LONG,
81
82        LONG_TO_SINGLE,
83        LONG_TO_DOUBLE,
84        LONG_TO_WORD,
85        LONG_TO_PS,
86
87        WORD_TO_SINGLE,
88        WORD_TO_DOUBLE,
89        WORD_TO_LONG,
90        WORD_TO_PS,
91
92        PL_TO_SINGLE,
93        PU_TO_SINGLE
94    };
95
96    //used in FP convert & round function
97    enum RoundMode{
98        RND_ZERO,
99        RND_DOWN,
100        RND_UP,
101        RND_NEAREST
102   };
103
104} // namespace MipsISA
105
106#endif
107