gem5
v20.1.0.0
arch
power
types.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 The University of Edinburgh
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
29
#ifndef __ARCH_POWER_TYPES_HH__
30
#define __ARCH_POWER_TYPES_HH__
31
32
#include "
arch/generic/types.hh
"
33
#include "
base/bitunion.hh
"
34
#include "
base/types.hh
"
35
36
namespace
PowerISA
37
{
38
39
typedef
uint32_t
MachInst
;
40
41
BitUnion32
(
ExtMachInst
)
42
43
// Registers
44
Bitfield<25, 21>
rs
;
45
Bitfield<20, 16>
ra
;
46
47
// Shifts and masks
48
Bitfield<15, 11>
sh
;
49
Bitfield<10, 6>
mb
;
50
Bitfield< 5, 1>
me
;
51
52
// Immediate fields
53
Bitfield<15, 0>
si
;
54
Bitfield<15, 0>
d
;
55
56
// Special purpose register identifier
57
Bitfield<20, 11>
spr
;
58
Bitfield<25, 2>
li
;
59
Bitfield<1>
aa
;
60
Bitfield<25, 23>
bf
;
61
Bitfield<15, 2>
bd
;
62
Bitfield<25, 21>
bo
;
63
Bitfield<20, 16>
bi
;
64
Bitfield<20, 18>
bfa
;
65
66
// Record bits
67
Bitfield<0>
rc31
;
68
Bitfield<10>
oe
;
69
70
// Condition register fields
71
Bitfield<25, 21>
bt
;
72
Bitfield<20, 16>
ba
;
73
Bitfield<15, 11>
bb
;
74
75
// FXM field for mtcrf instruction
76
Bitfield<19, 12>
fxm
;
77
EndBitUnion
(
ExtMachInst
)
78
79
typedef
GenericISA
::SimplePCState<
MachInst
>
PCState
;
80
81
// typedef uint64_t LargestRead;
82
// // Need to use 64 bits to make sure that read requests get handled properly
83
84
// typedef int RegContextParam;
85
// typedef int RegContextVal;
86
87
}
// PowerISA namespace
88
89
namespace
std
{
90
91
template
<>
92
struct
hash<
PowerISA
::
ExtMachInst
> :
public
hash<uint32_t> {
93
size_t
operator()
(
const
PowerISA::ExtMachInst
&emi)
const
{
94
return
hash<uint32_t>::operator()((uint32_t)emi);
95
};
96
};
97
98
}
99
100
#endif // __ARCH_POWER_TYPES_HH__
PowerISA::sh
Bitfield< 15, 11 > sh
Definition:
types.hh:48
SparcISA::ExtMachInst
uint64_t ExtMachInst
Definition:
types.hh:39
PowerISA::d
Bitfield< 15, 0 > d
Definition:
types.hh:54
PowerISA::bb
Bitfield< 15, 11 > bb
Definition:
types.hh:73
PowerISA::si
Bitfield< 15, 0 > si
Definition:
types.hh:53
PowerISA::rc31
Bitfield< 0 > rc31
Definition:
types.hh:67
PowerISA::bo
Bitfield< 25, 21 > bo
Definition:
types.hh:62
PowerISA::aa
Bitfield< 1 > aa
Definition:
types.hh:59
PowerISA::oe
Bitfield< 7 > oe
Definition:
miscregs.hh:88
PowerISA::fxm
Bitfield< 19, 12 > fxm
Definition:
types.hh:76
PowerISA::rs
rs
Definition:
types.hh:44
PowerISA::MachInst
uint32_t MachInst
Definition:
types.hh:39
PowerISA::bi
Bitfield< 20, 16 > bi
Definition:
types.hh:63
PowerISA
Definition:
decoder.cc:31
PowerISA::mb
Bitfield< 10, 6 > mb
Definition:
types.hh:49
PowerISA::ra
Bitfield< 20, 16 > ra
Definition:
types.hh:45
bitunion.hh
PowerISA::bt
Bitfield< 25, 21 > bt
Definition:
types.hh:71
PowerISA::EndBitUnion
EndBitUnion(Cr) BitUnion32(Xer) Bitfield< 31 > so
std::hash< PowerISA::ExtMachInst >::operator()
size_t operator()(const PowerISA::ExtMachInst &emi) const
Definition:
types.hh:93
PowerISA::li
Bitfield< 25, 2 > li
Definition:
types.hh:58
SparcISA::PCState
GenericISA::DelaySlotUPCState< MachInst > PCState
Definition:
types.hh:41
PowerISA::BitUnion32
BitUnion32(Cr) SubBitUnion(cr0
types.hh
PowerISA::me
Bitfield< 5, 1 > me
Definition:
types.hh:50
std
Overload hash function for BasicBlockRange type.
Definition:
vec_reg.hh:587
types.hh
PowerISA::spr
Bitfield< 20, 11 > spr
Definition:
types.hh:57
PowerISA::ba
Bitfield< 20, 16 > ba
Definition:
types.hh:72
PowerISA::bfa
Bitfield< 20, 18 > bfa
Definition:
types.hh:64
PowerISA::bf
Bitfield< 25, 23 > bf
Definition:
types.hh:60
PowerISA::bd
Bitfield< 15, 2 > bd
Definition:
types.hh:61
GenericISA
Definition:
debugfaults.hh:46
Generated on Wed Sep 30 2020 14:02:01 for gem5 by
doxygen
1.8.17