In MipsMCInstLower::LowerSymbolOperand, get offset from symbol if
authorAkira Hatanaka <ahatanaka@mips.com>
Sat, 2 Jun 2012 00:02:11 +0000 (00:02 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Sat, 2 Jun 2012 00:02:11 +0000 (00:02 +0000)
the MachineOperand type has a valid offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157861 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/MipsMCInstLower.cpp

index 1e2406fa0353ee11ad7d5c222fb45fa67f8652a6..cae53e984b0ec2b569e436a591e3d287da9e486e 100644 (file)
@@ -70,14 +70,17 @@ MCOperand MipsMCInstLower::LowerSymbolOperand(const MachineOperand &MO,
 
   case MachineOperand::MO_GlobalAddress:
     Symbol = Mang->getSymbol(MO.getGlobal());
+    Offset += MO.getOffset();
     break;
 
   case MachineOperand::MO_BlockAddress:
     Symbol = AsmPrinter.GetBlockAddressSymbol(MO.getBlockAddress());
+    Offset += MO.getOffset();
     break;
 
   case MachineOperand::MO_ExternalSymbol:
     Symbol = AsmPrinter.GetExternalSymbolSymbol(MO.getSymbolName());
+    Offset += MO.getOffset();
     break;
 
   case MachineOperand::MO_JumpTableIndex:
@@ -86,8 +89,7 @@ MCOperand MipsMCInstLower::LowerSymbolOperand(const MachineOperand &MO,
 
   case MachineOperand::MO_ConstantPoolIndex:
     Symbol = AsmPrinter.GetCPISymbol(MO.getIndex());
-    if (MO.getOffset())
-      Offset += MO.getOffset();
+    Offset += MO.getOffset();
     break;
 
   default: