gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
registers.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2003-2005 The Regents of The University of Michigan
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met: redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer;
9  * redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution;
12  * neither the name of the copyright holders nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  * Authors: Gabe Black
29  */
30 
31 #ifndef __ARCH_ALPHA_REGISTERS_HH__
32 #define __ARCH_ALPHA_REGISTERS_HH__
33 
34 #include "arch/alpha/generated/max_inst_regs.hh"
35 #include "arch/alpha/ipr.hh"
36 #include "base/types.hh"
37 
38 namespace AlphaISA {
39 
41 using AlphaISAInst::MaxInstDestRegs;
42 
43 // Locked read/write flags are can't be detected by the ISA parser
45 
46 typedef uint8_t RegIndex;
47 typedef uint64_t IntReg;
48 
49 // floating point register file entry type
50 typedef double FloatReg;
51 typedef uint64_t FloatRegBits;
52 
53 // control register file contents
54 typedef uint64_t MiscReg;
55 
56 // dummy typedef since we don't have CC regs
57 typedef uint8_t CCReg;
58 
59 union AnyReg
60 {
64 };
65 
67 {
74 };
75 
76 // semantically meaningful register indices
77 const RegIndex ZeroReg = 31; // architecturally meaningful
78 // the rest of these depend on the ABI
85 
90 
91 const int NumIntArchRegs = 32;
92 const int NumPALShadowRegs = 8;
93 const int NumFloatArchRegs = 32;
94 
97 const int NumCCRegs = 0;
99 
100 const int TotalNumRegs =
102 
103 // These enumerate all the registers for dependence tracking.
105  // 0..31 are the integer regs 0..31
106  // 32..63 are the FP regs 0..31, i.e. use (reg + FP_Reg_Base)
109  Misc_Reg_Base = CC_Reg_Base + NumCCRegs, // NumCCRegs == 0
111 };
112 
113 } // namespace AlphaISA
114 
115 #endif // __ARCH_ALPHA_REGFILE_HH__
const RegIndex SyscallNumReg
Definition: registers.hh:86
uint8_t CCReg
Definition: registers.hh:57
const RegIndex FirstArgumentReg
Definition: registers.hh:87
const int NumFloatRegs
Definition: registers.hh:96
uint64_t MiscReg
Definition: registers.hh:54
const int MaxInstSrcRegs
Definition: registers.hh:56
const int NumFloatArchRegs
Definition: registers.hh:93
const RegIndex ReturnAddressReg
Definition: registers.hh:82
const int MaxMiscDestRegs
Definition: registers.hh:44
const int MaxMiscDestRegs
Definition: registers.hh:61
uint8_t RegIndex
Definition: registers.hh:46
uint64_t FloatRegBits
Definition: registers.hh:51
const int NumCCRegs
Definition: registers.hh:97
const RegIndex ZeroReg
Definition: registers.hh:77
const RegIndex StackPointerReg
Definition: registers.hh:79
const RegIndex SyscallPseudoReturnReg
Definition: registers.hh:88
double FloatReg
Definition: registers.hh:50
const int NumPALShadowRegs
Definition: registers.hh:92
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
const int TotalNumRegs
Definition: registers.hh:100
uint64_t IntReg
Definition: registers.hh:47
const int NumMiscRegs
Definition: registers.hh:98
const int NumIntArchRegs
Definition: registers.hh:91
const RegIndex ProcedureValueReg
Definition: registers.hh:81
const RegIndex FramePointerReg
Definition: registers.hh:84
FloatReg fpreg
Definition: registers.hh:62
MiscReg ctrlreg
Definition: registers.hh:63
const RegIndex ReturnValueReg
Definition: registers.hh:83
const RegIndex GlobalPointerReg
Definition: registers.hh:80
const RegIndex SyscallSuccessReg
Definition: registers.hh:89
const int NumIntRegs
Definition: registers.hh:95

Generated on Fri Jun 9 2017 13:03:36 for gem5 by doxygen 1.8.6