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

Brian Gaeke gaeke at cs.uiuc.edu
Wed Jun 9 16:56:01 PDT 2004


Changes in directory llvm/lib/Target/SparcV9:

SparcV9CodeEmitter.cpp updated: 1.65 -> 1.66

---
Log message:

Encode %fsr correctly; don't fail an assertion.


---
Diffs of the changes:  (+9 -0)

Index: llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
diff -u llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.65 llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.66
--- llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:1.65	Wed Jun  9 15:44:42 2004
+++ llvm/lib/Target/SparcV9/SparcV9CodeEmitter.cpp	Wed Jun  9 16:54:59 2004
@@ -527,6 +527,15 @@
     DEBUG(std::cerr << "FP CC reg: " << fakeReg << "\n");
     return fakeReg;
   }
+  case SparcV9RegInfo::SpecialRegClassID: {
+    // Currently only "special" reg is %fsr, which is encoded as 1 in
+    // instructions and 0 in SparcV9SpecialRegClass.
+    static const unsigned SpecialReg[] = {  1 };
+    assert(fakeReg < sizeof(SpecialReg)/sizeof(SpecialReg[0])
+             && "Special register out of bounds for SpecialReg map");      
+    DEBUG(std::cerr << "Special reg: " << SpecialReg[fakeReg] << "\n");
+    return SpecialReg[fakeReg];
+  }
   default:
     assert(0 && "Invalid unified register number in getRealRegNum");
     return fakeReg;





More information about the llvm-commits mailing list