gem5
v24.0.0.0
Loading...
Searching...
No Matches
arch
x86
insts
micromediaop.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 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
29
#ifndef __ARCH_X86_INSTS_MICROMEDIAOP_HH__
30
#define __ARCH_X86_INSTS_MICROMEDIAOP_HH__
31
32
#include "
arch/x86/insts/microop.hh
"
33
34
namespace
gem5
35
{
36
37
namespace
X86ISA
38
{
39
40
enum
MediaFlag
41
{
42
MediaMultHiOp
= 1,
43
MediaPartHiOp
= 32,
44
MediaSignedOp
= 64,
45
MediaScalarOp
= 128
46
};
47
48
class
MediaOpBase
:
public
X86MicroopBase
49
{
50
protected
:
51
const
uint8_t
srcSize
;
52
const
uint8_t
destSize
;
53
const
uint8_t
ext
;
54
55
// Constructor
56
MediaOpBase
(
ExtMachInst
mach_inst,
const
char
*mnem,
const
char
*inst_mnem,
57
uint64_t set_flags, OpClass op_class,
58
uint8_t src_size, uint8_t dest_size, uint8_t _ext) :
59
X86MicroopBase
(mach_inst, mnem, inst_mnem, set_flags, op_class),
60
srcSize
(src_size),
destSize
(dest_size),
ext
(_ext)
61
{}
62
63
bool
64
scalarOp
()
const
65
{
66
return
ext
&
MediaScalarOp
;
67
}
68
69
int
70
numItems
(
int
size
)
const
71
{
72
return
scalarOp
() ? 1 : (
sizeof
(uint64_t) /
size
);
73
}
74
75
bool
76
multHi
()
const
77
{
78
return
ext
&
MediaMultHiOp
;
79
}
80
81
bool
82
partHi
()
const
83
{
84
return
ext
&
MediaPartHiOp
;
85
}
86
87
bool
88
signedOp
()
const
89
{
90
return
ext
&
MediaSignedOp
;
91
}
92
93
public
:
94
uint8_t
getSrcSize
()
const
{
return
srcSize
; }
95
uint8_t
getDestSize
()
const
{
return
destSize
; }
96
};
97
98
}
// namespace X86ISA
99
}
// namespace gem5
100
101
#endif
//__ARCH_X86_INSTS_MICROMEDIAOP_HH__
gem5::StaticInst::size
size_t size() const
Definition
static_inst.hh:319
gem5::X86ISA::MediaOpBase
Definition
micromediaop.hh:49
gem5::X86ISA::MediaOpBase::numItems
int numItems(int size) const
Definition
micromediaop.hh:70
gem5::X86ISA::MediaOpBase::scalarOp
bool scalarOp() const
Definition
micromediaop.hh:64
gem5::X86ISA::MediaOpBase::signedOp
bool signedOp() const
Definition
micromediaop.hh:88
gem5::X86ISA::MediaOpBase::getDestSize
uint8_t getDestSize() const
Definition
micromediaop.hh:95
gem5::X86ISA::MediaOpBase::ext
const uint8_t ext
Definition
micromediaop.hh:53
gem5::X86ISA::MediaOpBase::destSize
const uint8_t destSize
Definition
micromediaop.hh:52
gem5::X86ISA::MediaOpBase::getSrcSize
uint8_t getSrcSize() const
Definition
micromediaop.hh:94
gem5::X86ISA::MediaOpBase::MediaOpBase
MediaOpBase(ExtMachInst mach_inst, const char *mnem, const char *inst_mnem, uint64_t set_flags, OpClass op_class, uint8_t src_size, uint8_t dest_size, uint8_t _ext)
Definition
micromediaop.hh:56
gem5::X86ISA::MediaOpBase::srcSize
const uint8_t srcSize
Definition
micromediaop.hh:51
gem5::X86ISA::MediaOpBase::multHi
bool multHi() const
Definition
micromediaop.hh:76
gem5::X86ISA::MediaOpBase::partHi
bool partHi() const
Definition
micromediaop.hh:82
gem5::X86ISA::X86MicroopBase
Definition
microop.hh:98
microop.hh
gem5::X86ISA::MediaFlag
MediaFlag
Definition
micromediaop.hh:41
gem5::X86ISA::MediaSignedOp
@ MediaSignedOp
Definition
micromediaop.hh:44
gem5::X86ISA::MediaScalarOp
@ MediaScalarOp
Definition
micromediaop.hh:45
gem5::X86ISA::MediaPartHiOp
@ MediaPartHiOp
Definition
micromediaop.hh:43
gem5::X86ISA::MediaMultHiOp
@ MediaMultHiOp
Definition
micromediaop.hh:42
gem5
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition
binary32.hh:36
gem5::X86ISA::ExtMachInst
Definition
types.hh:213
Generated on Tue Jun 18 2024 16:24:00 for gem5 by
doxygen
1.11.0