gem5
v20.1.0.0
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
28
//
29
// Nop instruction
30
//
31
32
// Per-cpu-model nop execute method.
33
def
template
NopExec
{{
34
}};
35
36
output
header
{{
40
class
Nop
:
public
SparcStaticInst
41
{
42
public
:
43
// Constructor
44
Nop
(
const
char
*mnem,
ExtMachInst
_machInst, OpClass __opClass) :
45
SparcStaticInst(mnem, _machInst, __opClass)
46
{
47
flags[IsNop] =
true
;
48
}
49
50
Fault
51
execute(
ExecContext
*xc,
Trace::InstRecord
*traceData)
const
52
{
53
return
NoFault
;
54
}
55
56
std::string generateDisassembly(
Addr
pc
,
57
const
Loader::SymbolTable
*symtab)
const override
;
58
};
59
}};
60
61
output
decoder
{{
62
std::string
63
Nop::generateDisassembly(
64
Addr
pc
,
const
Loader::SymbolTable
*symtab)
const
65
{
66
std::stringstream response;
67
printMnemonic(response, mnemonic);
68
return
response.str();
69
}
70
}};
71
72
def
template
NopExecute
{{
73
Fault
%(class_name)s::execute(
ExecContext
*xc,
74
Trace::InstRecord
*traceData)
const
75
{
76
// Nothing to see here, move along
77
return
NoFault
;
78
}
79
}};
80
81
// Primary format for integer operate instructions:
82
def
format
Nop
(code, *opt_flags) {{
83
iop = InstObjParams(
name
, Name,
'Nop'
, code, opt_flags)
84
header_output = BasicDeclare.subst(iop)
85
decoder_output = BasicConstructor.subst(iop)
86
decode_block = BasicDecode.subst(iop)
87
exec_output =
NopExecute
.subst(iop)
88
}};
output
static void output(const char *filename)
Definition:
debug.cc:60
Loader::SymbolTable
Definition:
symtab.hh:59
Trace::InstRecord
Definition:
insttracer.hh:55
header
output header
Definition:
nop.cc:36
Nop
def format Nop(code, *opt_flags)
Definition:
nop.cc:82
Fault
std::shared_ptr< FaultBase > Fault
Definition:
types.hh:240
MipsISA::pc
Bitfield< 4 > pc
Definition:
pra_constants.hh:240
NopExecute
def template NopExecute
Definition:
nop.cc:72
NopExec
def template NopExec
Definition:
nop.cc:33
ExecContext
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
Definition:
exec_context.hh:70
NoFault
constexpr decltype(nullptr) NoFault
Definition:
types.hh:245
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition:
types.hh:142
name
const std::string & name()
Definition:
trace.cc:50
ArmISA::format
Bitfield< 31, 29 > format
Definition:
miscregs_types.hh:640
decoder
output decoder
Definition:
nop.cc:61
MipsISA::ExtMachInst
uint64_t ExtMachInst
Definition:
types.hh:39
Generated on Wed Sep 30 2020 14:02:07 for gem5 by
doxygen
1.8.17