registers.hh (12104:edd63f9c6184) registers.hh (12109:f29e9c5418aa)
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 27 unchanged lines hidden (view full) ---

36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 * Authors: Gabe Black
39 */
40
41#ifndef __ARCH_X86_REGISTERS_HH__
42#define __ARCH_X86_REGISTERS_HH__
43
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 27 unchanged lines hidden (view full) ---

36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 * Authors: Gabe Black
39 */
40
41#ifndef __ARCH_X86_REGISTERS_HH__
42#define __ARCH_X86_REGISTERS_HH__
43
44#include "arch/generic/vec_reg.hh"
44#include "arch/x86/generated/max_inst_regs.hh"
45#include "arch/x86/regs/int.hh"
46#include "arch/x86/regs/ccr.hh"
47#include "arch/x86/regs/misc.hh"
48#include "arch/x86/x86_traits.hh"
49
50namespace X86ISA
51{

--- 36 unchanged lines hidden (view full) ---

88// Some OS syscalls use a second register (rdx) to return a second
89// value
90const int SyscallPseudoReturnReg = INTREG_RDX;
91
92typedef uint64_t IntReg;
93typedef uint64_t CCReg;
94typedef uint64_t MiscReg;
95
45#include "arch/x86/generated/max_inst_regs.hh"
46#include "arch/x86/regs/int.hh"
47#include "arch/x86/regs/ccr.hh"
48#include "arch/x86/regs/misc.hh"
49#include "arch/x86/x86_traits.hh"
50
51namespace X86ISA
52{

--- 36 unchanged lines hidden (view full) ---

89// Some OS syscalls use a second register (rdx) to return a second
90// value
91const int SyscallPseudoReturnReg = INTREG_RDX;
92
93typedef uint64_t IntReg;
94typedef uint64_t CCReg;
95typedef uint64_t MiscReg;
96
97// dummy typedefs since we don't have vector regs
98constexpr unsigned NumVecElemPerVecReg = 2;
99using VecElem = uint32_t;
100using VecReg = ::VecRegT<VecElem, NumVecElemPerVecReg, false>;
101using ConstVecReg = ::VecRegT<VecElem, NumVecElemPerVecReg, true>;
102using VecRegContainer = VecReg::Container;
103// This has to be one to prevent warnings that are treated as errors
104constexpr unsigned NumVecRegs = 1;
105
96//These floating point types are correct for mmx, but not
97//technically for x87 (80 bits) or at all for xmm (128 bits)
98typedef double FloatReg;
99typedef uint64_t FloatRegBits;
100typedef union
101{
102 IntReg intReg;
103 FloatReg fpReg;
104 CCReg ccReg;
105 MiscReg ctrlReg;
106} AnyReg;
107
108} // namespace X86ISA
109
110#endif // __ARCH_X86_REGFILE_HH__
106//These floating point types are correct for mmx, but not
107//technically for x87 (80 bits) or at all for xmm (128 bits)
108typedef double FloatReg;
109typedef uint64_t FloatRegBits;
110typedef union
111{
112 IntReg intReg;
113 FloatReg fpReg;
114 CCReg ccReg;
115 MiscReg ctrlReg;
116} AnyReg;
117
118} // namespace X86ISA
119
120#endif // __ARCH_X86_REGFILE_HH__