[llvm] r194126 - Fix definition for Mips16 pc relative load word instructions.

Reed Kotler rkotler at mips.com
Tue Nov 5 20:29:52 PST 2013


Author: rkotler
Date: Tue Nov  5 22:29:52 2013
New Revision: 194126

URL: http://llvm.org/viewvc/llvm-project?rev=194126&view=rev
Log:
Fix definition for Mips16 pc relative load word instructions.


Modified:
    llvm/trunk/lib/Target/Mips/MipsConstantIslandPass.cpp

Modified: llvm/trunk/lib/Target/Mips/MipsConstantIslandPass.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsConstantIslandPass.cpp?rev=194126&r1=194125&r2=194126&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsConstantIslandPass.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MipsConstantIslandPass.cpp Tue Nov  5 22:29:52 2013
@@ -614,12 +614,13 @@ initializeFunctionInfo(const std::vector
             llvm_unreachable("Unknown addressing mode for CP reference!");
           case Mips::LwRxPcTcp16:
             Bits = 8;
-            Scale = 2;
+            Scale = 4;
             LongFormOpcode = Mips::LwRxPcTcpX16;
             break;
           case Mips::LwRxPcTcpX16:
             Bits = 16;
-            Scale = 2;
+            Scale = 1;
+            NegOk = true;
             break;
           }
           // Remember that this is a user of a CP entry.
@@ -782,9 +783,6 @@ MachineBasicBlock *MipsConstantIslands::
 /// isOffsetInRange - Checks whether UserOffset (the location of a constant pool
 /// reference) is within MaxDisp of TrialOffset (a proposed location of a
 /// constant pool entry).
-/// UserOffset is computed by getUserOffset above to include PC adjustments. If
-/// the mod 4 alignment of UserOffset is not known, the uncertainty must be
-/// subtracted from MaxDisp instead. CPUser::getMaxDisp() does that.
 bool MipsConstantIslands::isOffsetInRange(unsigned UserOffset,
                                          unsigned TrialOffset, unsigned MaxDisp,
                                          bool NegativeOK) {





More information about the llvm-commits mailing list