[llvm-commits] CVS: llvm/lib/Target/X86/X86RegisterInfo.h X86RegisterInfo.cpp

Misha Brukman brukman at cs.uiuc.edu
Fri Nov 22 16:44:01 PST 2002


Changes in directory llvm/lib/Target/X86:

X86RegisterInfo.h updated: 1.2 -> 1.3
X86RegisterInfo.cpp updated: 1.2 -> 1.3

---
Log message:

Added methods to read/write values to stack in .h, fixed implementation in
.cpp to return the iterator correctly.


---
Diffs of the changes:

Index: llvm/lib/Target/X86/X86RegisterInfo.h
diff -u llvm/lib/Target/X86/X86RegisterInfo.h:1.2 llvm/lib/Target/X86/X86RegisterInfo.h:1.3
--- llvm/lib/Target/X86/X86RegisterInfo.h:1.2	Wed Nov 20 12:59:43 2002
+++ llvm/lib/Target/X86/X86RegisterInfo.h	Fri Nov 22 16:43:47 2002
@@ -17,15 +17,20 @@
   MRegisterInfo::const_iterator const_regclass_begin() const;
   MRegisterInfo::const_iterator const_regclass_end() const;
 
-  void copyReg2PCRel(MachineBasicBlock *MBB,
+  MachineBasicBlock::iterator
+  storeReg2RegOffset(MachineBasicBlock *MBB,
                      MachineBasicBlock::iterator &MBBI,
-                     unsigned SrcReg, unsigned ImmOffset,
-                     unsigned dataSize) const;
+                     unsigned DestReg, unsigned SrcReg, 
+                     unsigned ImmOffset, unsigned dataSize) const;
 
-  void copyPCRel2Reg(MachineBasicBlock *MBB,
-                     MachineBasicBlock::iterator &MBBI,
-                     unsigned ImmOffset, unsigned DestReg,
-                     unsigned dataSize) const;
+  MachineBasicBlock::iterator
+  loadRegOffset2Reg(MachineBasicBlock *MBB,
+                    MachineBasicBlock::iterator &MBBI,
+                    unsigned DestReg, unsigned SrcReg,
+                    unsigned ImmOffset, unsigned dataSize) const;
+
+  unsigned getFramePointer() const;
+  unsigned getStackPointer() const;
 
   /// Returns register class appropriate for input SSA register
   /// 


Index: llvm/lib/Target/X86/X86RegisterInfo.cpp
diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.2 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.3
--- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.2	Wed Nov 20 12:59:43 2002
+++ llvm/lib/Target/X86/X86RegisterInfo.cpp	Fri Nov 22 16:43:47 2002
@@ -1,4 +1,4 @@
-//===- X86RegisterInfo.cpp - X86 Register Information ---------------------===//
+//===- X86RegisterInfo.cpp - X86 Register Information -----------*- C++ -*-===//
 //
 // This file contains the X86 implementation of the MRegisterInfo class.
 //
@@ -6,6 +6,7 @@
 
 #include "X86.h"
 #include "X86RegisterInfo.h"
+#include "X86InstrBuilder.h"
 #include "llvm/Constants.h"
 #include "llvm/Type.h"
 #include "llvm/CodeGen/MachineInstrBuilder.h"
@@ -23,23 +24,35 @@
 }
 
 
-void X86RegisterInfo::copyReg2PCRel(MachineBasicBlock *MBB,
+MachineBasicBlock::iterator
+X86RegisterInfo::storeReg2RegOffset(MachineBasicBlock *MBB,
                                     MachineBasicBlock::iterator &MBBI,
-                                    unsigned SrcReg, unsigned ImmOffset,
-                                    unsigned dataSize) const
+                                    unsigned SrcReg, unsigned DestReg, 
+                                    unsigned ImmOffset, unsigned dataSize)
+  const
 {
-  MachineInstrBuilder MI = BuildMI(X86::MOVmr32, 2)
-    .addPCDisp(ConstantUInt::get(Type::UIntTy, ImmOffset)).addReg(SrcReg);
-  MBB->insert(MBBI, &*MI);
+  MachineInstr *MI = addRegOffset(BuildMI(X86::MOVmr32, 5).addReg(SrcReg),
+                                  DestReg, ImmOffset);
+  return ++(MBB->insert(MBBI, MI));
 }
 
-void X86RegisterInfo::copyPCRel2Reg(MachineBasicBlock *MBB,
-                                    MachineBasicBlock::iterator &MBBI,
-                                    unsigned ImmOffset, unsigned DestReg,
-                                    unsigned dataSize) const
+MachineBasicBlock::iterator
+X86RegisterInfo::loadRegOffset2Reg(MachineBasicBlock *MBB,
+                                   MachineBasicBlock::iterator &MBBI,
+                                   unsigned DestReg, unsigned SrcReg,
+                                   unsigned ImmOffset, unsigned dataSize)
+  const
 {
-  MachineInstrBuilder MI = BuildMI(X86::MOVrm32, 2)
-    .addReg(DestReg).addPCDisp(ConstantUInt::get(Type::UIntTy, ImmOffset));
-  MBB->insert(MBBI, &*MI);
+  MachineInstr *MI = addRegOffset(BuildMI(X86::MOVrm32, 5).addReg(DestReg),
+                                  SrcReg, ImmOffset);
+  return ++(MBB->insert(MBBI, MI));
 }
 
+
+unsigned X86RegisterInfo::getFramePointer() const {
+  return X86::EBP;
+}
+
+unsigned X86RegisterInfo::getStackPointer() const {
+  return X86::ESP;
+}





More information about the llvm-commits mailing list