[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineLocation.h
Jim Laskey
jlaskey at apple.com
Thu Mar 23 10:01:24 PST 2006
Changes in directory llvm/include/llvm/CodeGen:
MachineLocation.h added (r1.1)
---
Log message:
Support for locating of debug items in frames.
---
Diffs of the changes: (+64 -0)
MachineLocation.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+)
Index: llvm/include/llvm/CodeGen/MachineLocation.h
diff -c /dev/null llvm/include/llvm/CodeGen/MachineLocation.h:1.1
*** /dev/null Thu Mar 23 12:01:22 2006
--- llvm/include/llvm/CodeGen/MachineLocation.h Thu Mar 23 12:01:12 2006
***************
*** 0 ****
--- 1,64 ----
+ //===-- llvm/CodeGen/MachineLocation.h --------------------------*- C++ -*-===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by James M. Laskey and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ // The MachineLocation class is used to represent a simple location in a machine
+ // frame. Locations will be one of two forms; a register or an address formed
+ // from a base address plus an offset.
+ //===----------------------------------------------------------------------===//
+
+
+ #ifndef LLVM_CODEGEN_MACHINELOCATION_H
+ #define LLVM_CODEGEN_MACHINELOCATION_H
+
+ namespace llvm {
+
+ class MachineLocation {
+ private:
+ bool IsRegister; // True if location is a register.
+ unsigned Register; // gcc/gdb register number.
+ int Offset; // Displacement if not register.
+
+ public:
+ MachineLocation()
+ : IsRegister(false)
+ , Register(0)
+ , Offset(0)
+ {}
+ MachineLocation(unsigned R)
+ : IsRegister(true)
+ , Register(R)
+ , Offset(0)
+ {}
+ MachineLocation(unsigned R, int O)
+ : IsRegister(false)
+ , Register(R)
+ , Offset(0)
+ {}
+
+ // Accessors
+ bool isRegister() const { return IsRegister; }
+ unsigned getRegister() const { return Register; }
+ int getOffset() const { return Offset; }
+ void setIsRegister(bool Is) { IsRegister = Is; }
+ void setRegister(unsigned R) { Register = R; }
+ void setOffset(int O) { Offset = O; }
+ void set(unsigned R) {
+ IsRegister = true;
+ Register = R;
+ Offset = 0;
+ }
+ void set(unsigned R, int O) {
+ IsRegister = false;
+ Register = R;
+ Offset = O;
+ }
+ };
+
+ } // End llvm namespace
+
+ #endif
More information about the llvm-commits
mailing list