registers.hh (13338:c59f7e47e31d) | registers.hh (13556:9f57bb56153a) |
---|---|
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 --- 76 unchanged lines hidden (view full) --- 85const int ReturnAddressReg = 0; 86const int ReturnValueReg = INTREG_RAX; 87const int FramePointerReg = INTREG_RBP; 88 89// Some OS syscalls use a second register (rdx) to return a second 90// value 91const int SyscallPseudoReturnReg = INTREG_RDX; 92 | 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 --- 76 unchanged lines hidden (view full) --- 85const int ReturnAddressReg = 0; 86const int ReturnValueReg = INTREG_RAX; 87const int FramePointerReg = INTREG_RBP; 88 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; | 93typedef RegVal IntReg; |
94typedef uint64_t CCReg; | 94typedef uint64_t CCReg; |
95typedef uint64_t MiscReg; | 95typedef RegVal 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) | 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; | 108typedef FloatRegVal FloatReg; 109typedef RegVal FloatRegBits; |
110 111} // namespace X86ISA 112 113#endif // __ARCH_X86_REGFILE_HH__ | 110 111} // namespace X86ISA 112 113#endif // __ARCH_X86_REGFILE_HH__ |