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" |
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 |
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__ |