gem5
v19.0.0.0
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
+
Enumerations
a
b
c
d
e
f
i
l
m
o
p
r
s
t
v
x
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
+
Enumerations
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
w
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Related Functions
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
z
+
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Enumerations
a
b
c
d
e
f
g
i
l
m
o
p
r
s
t
v
w
+
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
arch
sparc
insts
nop.cc
Go to the documentation of this file.
1
// Copyright (c) 2006-2007 The Regents of The University of Michigan
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are
6
// met: redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer;
8
// redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution;
11
// neither the name of the copyright holders nor the names of its
12
// contributors may be used to endorse or promote products derived from
13
// this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
//
27
// Authors: Gabe Black
28
// Steve Reinhardt
29
31
//
32
// Nop instruction
33
//
34
35
// Per-cpu-model nop execute method.
36
def
template
NopExec
{{
37
}};
38
39
output
header
{{
43
class
Nop
:
public
SparcStaticInst
44
{
45
public
:
46
// Constructor
47
Nop
(
const
char
*mnem,
ExtMachInst
_machInst, OpClass __opClass) :
48
SparcStaticInst(mnem, _machInst, __opClass)
49
{
50
flags[IsNop] =
true
;
51
}
52
53
Fault
54
execute(
ExecContext
*xc,
Trace::InstRecord
*traceData)
const
55
{
56
return
NoFault
;
57
}
58
59
std::string generateDisassembly(
Addr
pc
,
60
const
SymbolTable
*symtab)
const override
;
61
};
62
}};
63
64
output
decoder
{{
65
std::string Nop::generateDisassembly(
Addr
pc
,
66
const
SymbolTable
*symtab)
const
67
{
68
std::stringstream response;
69
printMnemonic(response, mnemonic);
70
return
response.str();
71
}
72
}};
73
74
def
template
NopExecute
{{
75
Fault
%(class_name)s::execute(
ExecContext
*xc,
76
Trace::InstRecord
*traceData)
const
77
{
78
// Nothing to see here, move along
79
return
NoFault
;
80
}
81
}};
82
83
// Primary format for integer operate instructions:
84
def
format
Nop
(code, *opt_flags) {{
85
iop = InstObjParams(
name
, Name,
'Nop'
, code, opt_flags)
86
header_output = BasicDeclare.subst(iop)
87
decoder_output = BasicConstructor.subst(iop)
88
decode_block = BasicDecode.subst(iop)
89
exec_output =
NopExecute
.subst(iop)
90
}};
header
output header
Definition:
nop.cc:39
NoFault
decltype(nullptr) constexpr NoFault
Definition:
types.hh:245
name
const std::string & name()
Definition:
trace.cc:54
output
static void output(const char *filename)
Definition:
debug.cc:63
Nop
def format Nop(code, *opt_flags)
Definition:
nop.cc:84
NopExecute
def template NopExecute
Definition:
nop.cc:74
SymbolTable
Definition:
symtab.hh:42
NopExec
def template NopExec
Definition:
nop.cc:36
ExecContext
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
Definition:
exec_context.hh:73
MipsISA::pc
Bitfield< 4 > pc
Definition:
pra_constants.hh:242
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition:
types.hh:142
AlphaISA::ExtMachInst
uint64_t ExtMachInst
Definition:
types.hh:41
Trace::InstRecord
Definition:
insttracer.hh:58
ArmISA::format
Bitfield< 31, 29 > format
Definition:
miscregs_types.hh:642
Fault
std::shared_ptr< FaultBase > Fault
Definition:
types.hh:240
decoder
output decoder
Definition:
nop.cc:64
Generated on Fri Feb 28 2020 16:26:58 for gem5 by
doxygen
1.8.13