[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp

Misha Brukman brukman at cs.uiuc.edu
Mon Jun 2 22:25:01 PDT 2003


Changes in directory llvm/lib/Target/Sparc:

SparcV9CodeEmitter.cpp updated: 1.9 -> 1.10

---
Log message:

Constants are laid out in memory in PC-relative form.


---
Diffs of the changes:

Index: llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp
diff -u llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.9 llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.10
--- llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp:1.9	Mon Jun  2 00:24:46 2003
+++ llvm/lib/Target/Sparc/SparcV9CodeEmitter.cpp	Mon Jun  2 22:24:12 2003
@@ -195,7 +195,7 @@
       BBRefs.push_back(std::make_pair(BB, std::make_pair(CurrPC, &MI)));
     } else if (Constant *C = dyn_cast<Constant>(V)) {
       if (ConstantMap.find(C) != ConstantMap.end())
-        rv = (int64_t)(intptr_t)ConstantMap[C];
+        rv = (int64_t)(intptr_t)ConstantMap[C] - MCE->getCurrentPCValue();
       else {
         std::cerr << "ERROR: constant not in map:" << MO << "\n";
         abort();





More information about the llvm-commits mailing list