diff options
Diffstat (limited to 'contrib/llvm/include/llvm/MC/MachineLocation.h')
-rw-r--r-- | contrib/llvm/include/llvm/MC/MachineLocation.h | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/contrib/llvm/include/llvm/MC/MachineLocation.h b/contrib/llvm/include/llvm/MC/MachineLocation.h index 4b5cf4357793..f4fc6ee2fd19 100644 --- a/contrib/llvm/include/llvm/MC/MachineLocation.h +++ b/contrib/llvm/include/llvm/MC/MachineLocation.h @@ -1,4 +1,4 @@ -//===-- llvm/MC/MachineLocation.h -------------------------------*- C++ -*-===// +//===- llvm/MC/MachineLocation.h --------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -12,35 +12,31 @@ // explicitly passing an offset to the constructor. //===----------------------------------------------------------------------===// - #ifndef LLVM_MC_MACHINELOCATION_H #define LLVM_MC_MACHINELOCATION_H -#include "llvm/Support/Compiler.h" -#include "llvm/Support/DataTypes.h" +#include <cstdint> namespace llvm { - class MCSymbol; class MachineLocation { private: - bool IsRegister; // True if location is a register. - unsigned Register; // gcc/gdb register number. - int Offset; // Displacement if not register. + bool IsRegister = false; // True if location is a register. + unsigned Register = 0; // gcc/gdb register number. + int Offset = 0; // Displacement if not register. + public: enum : uint32_t { // The target register number for an abstract frame pointer. The value is // an arbitrary value that doesn't collide with any real target register. VirtualFP = ~0U }; - MachineLocation() - : IsRegister(false), Register(0), Offset(0) {} + + MachineLocation() = default; /// Create a direct register location. - explicit MachineLocation(unsigned R) - : IsRegister(true), Register(R), Offset(0) {} + explicit MachineLocation(unsigned R) : IsRegister(true), Register(R) {} /// Create a register-indirect location with an offset. - MachineLocation(unsigned R, int O) - : IsRegister(false), Register(R), Offset(O) {} + MachineLocation(unsigned R, int O) : Register(R), Offset(O) {} bool operator==(const MachineLocation &Other) const { return IsRegister == Other.IsRegister && Register == Other.Register && @@ -56,12 +52,14 @@ public: void setIsRegister(bool Is) { IsRegister = Is; } void setRegister(unsigned R) { Register = R; } void setOffset(int O) { Offset = O; } + /// Make this location a direct register location. void set(unsigned R) { IsRegister = true; Register = R; Offset = 0; } + /// Make this location a register-indirect+offset location. void set(unsigned R, int O) { IsRegister = false; @@ -74,6 +72,6 @@ inline bool operator!=(const MachineLocation &LHS, const MachineLocation &RHS) { return !(LHS == RHS); } -} // End llvm namespace +} // end namespace llvm -#endif +#endif // LLVM_MC_MACHINELOCATION_H |