summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff')
-rw-r--r--contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff512
1 files changed, 0 insertions, 512 deletions
diff --git a/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff b/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff
deleted file mode 100644
index a57449b..0000000
--- a/contrib/llvm/patches/patch-r262261-llvm-r200960-sparc.diff
+++ /dev/null
@@ -1,512 +0,0 @@
-Pull in r200960 from upstream llvm trunk (by Venkatraman Govindaraju):
-
- [Sparc] Use SparcMCExpr::VariantKind itself as MachineOperand's target flags.
-
-Introduced here: http://svnweb.freebsd.org/changeset/base/262261
-
-Index: lib/Target/Sparc/SparcISelLowering.cpp
-===================================================================
---- lib/Target/Sparc/SparcISelLowering.cpp
-+++ lib/Target/Sparc/SparcISelLowering.cpp
-@@ -13,11 +13,11 @@
- //===----------------------------------------------------------------------===//
-
- #include "SparcISelLowering.h"
-+#include "MCTargetDesc/SparcMCExpr.h"
- #include "SparcMachineFunctionInfo.h"
- #include "SparcRegisterInfo.h"
- #include "SparcTargetMachine.h"
- #include "SparcTargetObjectFile.h"
--#include "MCTargetDesc/SparcBaseInfo.h"
- #include "llvm/CodeGen/CallingConvLower.h"
- #include "llvm/CodeGen/MachineFrameInfo.h"
- #include "llvm/CodeGen/MachineFunction.h"
-@@ -1796,7 +1796,8 @@ SDValue SparcTargetLowering::makeAddress(SDValue O
- // Handle PIC mode first.
- if (getTargetMachine().getRelocationModel() == Reloc::PIC_) {
- // This is the pic32 code model, the GOT is known to be smaller than 4GB.
-- SDValue HiLo = makeHiLoPair(Op, SPII::MO_HI, SPII::MO_LO, DAG);
-+ SDValue HiLo = makeHiLoPair(Op, SparcMCExpr::VK_Sparc_HI,
-+ SparcMCExpr::VK_Sparc_LO, DAG);
- SDValue GlobalBase = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, VT);
- SDValue AbsAddr = DAG.getNode(ISD::ADD, DL, VT, GlobalBase, HiLo);
- // GLOBAL_BASE_REG codegen'ed with call. Inform MFI that this
-@@ -1813,20 +1814,24 @@ SDValue SparcTargetLowering::makeAddress(SDValue O
- llvm_unreachable("Unsupported absolute code model");
- case CodeModel::Small:
- // abs32.
-- return makeHiLoPair(Op, SPII::MO_HI, SPII::MO_LO, DAG);
-+ return makeHiLoPair(Op, SparcMCExpr::VK_Sparc_HI,
-+ SparcMCExpr::VK_Sparc_LO, DAG);
- case CodeModel::Medium: {
- // abs44.
-- SDValue H44 = makeHiLoPair(Op, SPII::MO_H44, SPII::MO_M44, DAG);
-+ SDValue H44 = makeHiLoPair(Op, SparcMCExpr::VK_Sparc_H44,
-+ SparcMCExpr::VK_Sparc_M44, DAG);
- H44 = DAG.getNode(ISD::SHL, DL, VT, H44, DAG.getConstant(12, MVT::i32));
-- SDValue L44 = withTargetFlags(Op, SPII::MO_L44, DAG);
-+ SDValue L44 = withTargetFlags(Op, SparcMCExpr::VK_Sparc_L44, DAG);
- L44 = DAG.getNode(SPISD::Lo, DL, VT, L44);
- return DAG.getNode(ISD::ADD, DL, VT, H44, L44);
- }
- case CodeModel::Large: {
- // abs64.
-- SDValue Hi = makeHiLoPair(Op, SPII::MO_HH, SPII::MO_HM, DAG);
-+ SDValue Hi = makeHiLoPair(Op, SparcMCExpr::VK_Sparc_HH,
-+ SparcMCExpr::VK_Sparc_HM, DAG);
- Hi = DAG.getNode(ISD::SHL, DL, VT, Hi, DAG.getConstant(32, MVT::i32));
-- SDValue Lo = makeHiLoPair(Op, SPII::MO_HI, SPII::MO_LO, DAG);
-+ SDValue Lo = makeHiLoPair(Op, SparcMCExpr::VK_Sparc_HI,
-+ SparcMCExpr::VK_Sparc_LO, DAG);
- return DAG.getNode(ISD::ADD, DL, VT, Hi, Lo);
- }
- }
-@@ -1858,14 +1863,18 @@ SDValue SparcTargetLowering::LowerGlobalTLSAddress
- TLSModel::Model model = getTargetMachine().getTLSModel(GV);
-
- if (model == TLSModel::GeneralDynamic || model == TLSModel::LocalDynamic) {
-- unsigned HiTF = ((model == TLSModel::GeneralDynamic)? SPII::MO_TLS_GD_HI22
-- : SPII::MO_TLS_LDM_HI22);
-- unsigned LoTF = ((model == TLSModel::GeneralDynamic)? SPII::MO_TLS_GD_LO10
-- : SPII::MO_TLS_LDM_LO10);
-- unsigned addTF = ((model == TLSModel::GeneralDynamic)? SPII::MO_TLS_GD_ADD
-- : SPII::MO_TLS_LDM_ADD);
-- unsigned callTF = ((model == TLSModel::GeneralDynamic)? SPII::MO_TLS_GD_CALL
-- : SPII::MO_TLS_LDM_CALL);
-+ unsigned HiTF = ((model == TLSModel::GeneralDynamic)
-+ ? SparcMCExpr::VK_Sparc_TLS_GD_HI22
-+ : SparcMCExpr::VK_Sparc_TLS_LDM_HI22);
-+ unsigned LoTF = ((model == TLSModel::GeneralDynamic)
-+ ? SparcMCExpr::VK_Sparc_TLS_GD_LO10
-+ : SparcMCExpr::VK_Sparc_TLS_LDM_LO10);
-+ unsigned addTF = ((model == TLSModel::GeneralDynamic)
-+ ? SparcMCExpr::VK_Sparc_TLS_GD_ADD
-+ : SparcMCExpr::VK_Sparc_TLS_LDM_ADD);
-+ unsigned callTF = ((model == TLSModel::GeneralDynamic)
-+ ? SparcMCExpr::VK_Sparc_TLS_GD_CALL
-+ : SparcMCExpr::VK_Sparc_TLS_LDM_CALL);
-
- SDValue HiLo = makeHiLoPair(Op, HiTF, LoTF, DAG);
- SDValue Base = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, PtrVT);
-@@ -1903,17 +1912,17 @@ SDValue SparcTargetLowering::LowerGlobalTLSAddress
- return Ret;
-
- SDValue Hi = DAG.getNode(SPISD::Hi, DL, PtrVT,
-- withTargetFlags(Op, SPII::MO_TLS_LDO_HIX22, DAG));
-+ withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_HIX22, DAG));
- SDValue Lo = DAG.getNode(SPISD::Lo, DL, PtrVT,
-- withTargetFlags(Op, SPII::MO_TLS_LDO_LOX10, DAG));
-+ withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_LOX10, DAG));
- HiLo = DAG.getNode(ISD::XOR, DL, PtrVT, Hi, Lo);
- return DAG.getNode(SPISD::TLS_ADD, DL, PtrVT, Ret, HiLo,
-- withTargetFlags(Op, SPII::MO_TLS_LDO_ADD, DAG));
-+ withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_ADD, DAG));
- }
-
- if (model == TLSModel::InitialExec) {
-- unsigned ldTF = ((PtrVT == MVT::i64)? SPII::MO_TLS_IE_LDX
-- : SPII::MO_TLS_IE_LD);
-+ unsigned ldTF = ((PtrVT == MVT::i64)? SparcMCExpr::VK_Sparc_TLS_IE_LDX
-+ : SparcMCExpr::VK_Sparc_TLS_IE_LD);
-
- SDValue Base = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, PtrVT);
-
-@@ -1923,7 +1932,8 @@ SDValue SparcTargetLowering::LowerGlobalTLSAddress
- MFI->setHasCalls(true);
-
- SDValue TGA = makeHiLoPair(Op,
-- SPII::MO_TLS_IE_HI22, SPII::MO_TLS_IE_LO10, DAG);
-+ SparcMCExpr::VK_Sparc_TLS_IE_HI22,
-+ SparcMCExpr::VK_Sparc_TLS_IE_LO10, DAG);
- SDValue Ptr = DAG.getNode(ISD::ADD, DL, PtrVT, Base, TGA);
- SDValue Offset = DAG.getNode(SPISD::TLS_LD,
- DL, PtrVT, Ptr,
-@@ -1930,14 +1940,15 @@ SDValue SparcTargetLowering::LowerGlobalTLSAddress
- withTargetFlags(Op, ldTF, DAG));
- return DAG.getNode(SPISD::TLS_ADD, DL, PtrVT,
- DAG.getRegister(SP::G7, PtrVT), Offset,
-- withTargetFlags(Op, SPII::MO_TLS_IE_ADD, DAG));
-+ withTargetFlags(Op,
-+ SparcMCExpr::VK_Sparc_TLS_IE_ADD, DAG));
- }
-
- assert(model == TLSModel::LocalExec);
- SDValue Hi = DAG.getNode(SPISD::Hi, DL, PtrVT,
-- withTargetFlags(Op, SPII::MO_TLS_LE_HIX22, DAG));
-+ withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LE_HIX22, DAG));
- SDValue Lo = DAG.getNode(SPISD::Lo, DL, PtrVT,
-- withTargetFlags(Op, SPII::MO_TLS_LE_LOX10, DAG));
-+ withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LE_LOX10, DAG));
- SDValue Offset = DAG.getNode(ISD::XOR, DL, PtrVT, Hi, Lo);
-
- return DAG.getNode(ISD::ADD, DL, PtrVT,
-Index: lib/Target/Sparc/SparcCodeEmitter.cpp
-===================================================================
---- lib/Target/Sparc/SparcCodeEmitter.cpp
-+++ lib/Target/Sparc/SparcCodeEmitter.cpp
-@@ -14,7 +14,7 @@
-
- #define DEBUG_TYPE "jit"
- #include "Sparc.h"
--#include "MCTargetDesc/SparcBaseInfo.h"
-+#include "MCTargetDesc/SparcMCExpr.h"
- #include "SparcRelocations.h"
- #include "SparcTargetMachine.h"
- #include "llvm/ADT/Statistic.h"
-@@ -204,14 +204,14 @@ unsigned SparcCodeEmitter::getRelocation(const Mac
- unsigned TF = MO.getTargetFlags();
- switch (TF) {
- default:
-- case SPII::MO_NO_FLAG: break;
-- case SPII::MO_LO: return SP::reloc_sparc_lo;
-- case SPII::MO_HI: return SP::reloc_sparc_hi;
-- case SPII::MO_H44: return SP::reloc_sparc_h44;
-- case SPII::MO_M44: return SP::reloc_sparc_m44;
-- case SPII::MO_L44: return SP::reloc_sparc_l44;
-- case SPII::MO_HH: return SP::reloc_sparc_hh;
-- case SPII::MO_HM: return SP::reloc_sparc_hm;
-+ case SparcMCExpr::VK_Sparc_None: break;
-+ case SparcMCExpr::VK_Sparc_LO: return SP::reloc_sparc_lo;
-+ case SparcMCExpr::VK_Sparc_HI: return SP::reloc_sparc_hi;
-+ case SparcMCExpr::VK_Sparc_H44: return SP::reloc_sparc_h44;
-+ case SparcMCExpr::VK_Sparc_M44: return SP::reloc_sparc_m44;
-+ case SparcMCExpr::VK_Sparc_L44: return SP::reloc_sparc_l44;
-+ case SparcMCExpr::VK_Sparc_HH: return SP::reloc_sparc_hh;
-+ case SparcMCExpr::VK_Sparc_HM: return SP::reloc_sparc_hm;
- }
-
- unsigned Opc = MI.getOpcode();
-Index: lib/Target/Sparc/SparcMCInstLower.cpp
-===================================================================
---- lib/Target/Sparc/SparcMCInstLower.cpp
-+++ lib/Target/Sparc/SparcMCInstLower.cpp
-@@ -13,7 +13,6 @@
- //===----------------------------------------------------------------------===//
-
- #include "Sparc.h"
--#include "MCTargetDesc/SparcBaseInfo.h"
- #include "MCTargetDesc/SparcMCExpr.h"
- #include "llvm/CodeGen/AsmPrinter.h"
- #include "llvm/CodeGen/MachineFunction.h"
-@@ -33,41 +32,10 @@ static MCOperand LowerSymbolOperand(const MachineI
- const MachineOperand &MO,
- AsmPrinter &AP) {
-
-- SparcMCExpr::VariantKind Kind;
-+ SparcMCExpr::VariantKind Kind =
-+ (SparcMCExpr::VariantKind)MO.getTargetFlags();
- const MCSymbol *Symbol = 0;
-
-- unsigned TF = MO.getTargetFlags();
--
-- switch(TF) {
-- default: llvm_unreachable("Unknown target flags on operand");
-- case SPII::MO_NO_FLAG: Kind = SparcMCExpr::VK_Sparc_None; break;
-- case SPII::MO_LO: Kind = SparcMCExpr::VK_Sparc_LO; break;
-- case SPII::MO_HI: Kind = SparcMCExpr::VK_Sparc_HI; break;
-- case SPII::MO_H44: Kind = SparcMCExpr::VK_Sparc_H44; break;
-- case SPII::MO_M44: Kind = SparcMCExpr::VK_Sparc_M44; break;
-- case SPII::MO_L44: Kind = SparcMCExpr::VK_Sparc_L44; break;
-- case SPII::MO_HH: Kind = SparcMCExpr::VK_Sparc_HH; break;
-- case SPII::MO_HM: Kind = SparcMCExpr::VK_Sparc_HM; break;
-- case SPII::MO_TLS_GD_HI22: Kind = SparcMCExpr::VK_Sparc_TLS_GD_HI22; break;
-- case SPII::MO_TLS_GD_LO10: Kind = SparcMCExpr::VK_Sparc_TLS_GD_LO10; break;
-- case SPII::MO_TLS_GD_ADD: Kind = SparcMCExpr::VK_Sparc_TLS_GD_ADD; break;
-- case SPII::MO_TLS_GD_CALL: Kind = SparcMCExpr::VK_Sparc_TLS_GD_CALL; break;
-- case SPII::MO_TLS_LDM_HI22: Kind = SparcMCExpr::VK_Sparc_TLS_LDM_HI22; break;
-- case SPII::MO_TLS_LDM_LO10: Kind = SparcMCExpr::VK_Sparc_TLS_LDM_LO10; break;
-- case SPII::MO_TLS_LDM_ADD: Kind = SparcMCExpr::VK_Sparc_TLS_LDM_ADD; break;
-- case SPII::MO_TLS_LDM_CALL: Kind = SparcMCExpr::VK_Sparc_TLS_LDM_CALL; break;
-- case SPII::MO_TLS_LDO_HIX22:Kind = SparcMCExpr::VK_Sparc_TLS_LDO_HIX22; break;
-- case SPII::MO_TLS_LDO_LOX10:Kind = SparcMCExpr::VK_Sparc_TLS_LDO_LOX10; break;
-- case SPII::MO_TLS_LDO_ADD: Kind = SparcMCExpr::VK_Sparc_TLS_LDO_ADD; break;
-- case SPII::MO_TLS_IE_HI22: Kind = SparcMCExpr::VK_Sparc_TLS_IE_HI22; break;
-- case SPII::MO_TLS_IE_LO10: Kind = SparcMCExpr::VK_Sparc_TLS_IE_LO10; break;
-- case SPII::MO_TLS_IE_LD: Kind = SparcMCExpr::VK_Sparc_TLS_IE_LD; break;
-- case SPII::MO_TLS_IE_LDX: Kind = SparcMCExpr::VK_Sparc_TLS_IE_LDX; break;
-- case SPII::MO_TLS_IE_ADD: Kind = SparcMCExpr::VK_Sparc_TLS_IE_ADD; break;
-- case SPII::MO_TLS_LE_HIX22: Kind = SparcMCExpr::VK_Sparc_TLS_LE_HIX22; break;
-- case SPII::MO_TLS_LE_LOX10: Kind = SparcMCExpr::VK_Sparc_TLS_LE_LOX10; break;
-- }
--
- switch(MO.getType()) {
- default: llvm_unreachable("Unknown type in LowerSymbolOperand");
- case MachineOperand::MO_MachineBasicBlock:
-Index: lib/Target/Sparc/SparcAsmPrinter.cpp
-===================================================================
---- lib/Target/Sparc/SparcAsmPrinter.cpp
-+++ lib/Target/Sparc/SparcAsmPrinter.cpp
-@@ -18,7 +18,6 @@
- #include "SparcTargetMachine.h"
- #include "SparcTargetStreamer.h"
- #include "InstPrinter/SparcInstPrinter.h"
--#include "MCTargetDesc/SparcBaseInfo.h"
- #include "MCTargetDesc/SparcMCExpr.h"
- #include "llvm/ADT/SmallString.h"
- #include "llvm/CodeGen/AsmPrinter.h"
-@@ -287,83 +286,60 @@ void SparcAsmPrinter::EmitFunctionBodyStart() {
- void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
- raw_ostream &O) {
- const MachineOperand &MO = MI->getOperand (opNum);
-- unsigned TF = MO.getTargetFlags();
-+ SparcMCExpr::VariantKind TF = (SparcMCExpr::VariantKind) MO.getTargetFlags();
-+
- #ifndef NDEBUG
- // Verify the target flags.
- if (MO.isGlobal() || MO.isSymbol() || MO.isCPI()) {
- if (MI->getOpcode() == SP::CALL)
-- assert(TF == SPII::MO_NO_FLAG &&
-+ assert(TF == SparcMCExpr::VK_Sparc_None &&
- "Cannot handle target flags on call address");
- else if (MI->getOpcode() == SP::SETHIi || MI->getOpcode() == SP::SETHIXi)
-- assert((TF == SPII::MO_HI || TF == SPII::MO_H44 || TF == SPII::MO_HH
-- || TF == SPII::MO_TLS_GD_HI22
-- || TF == SPII::MO_TLS_LDM_HI22
-- || TF == SPII::MO_TLS_LDO_HIX22
-- || TF == SPII::MO_TLS_IE_HI22
-- || TF == SPII::MO_TLS_LE_HIX22) &&
-+ assert((TF == SparcMCExpr::VK_Sparc_HI
-+ || TF == SparcMCExpr::VK_Sparc_H44
-+ || TF == SparcMCExpr::VK_Sparc_HH
-+ || TF == SparcMCExpr::VK_Sparc_TLS_GD_HI22
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDM_HI22
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDO_HIX22
-+ || TF == SparcMCExpr::VK_Sparc_TLS_IE_HI22
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LE_HIX22) &&
- "Invalid target flags for address operand on sethi");
- else if (MI->getOpcode() == SP::TLS_CALL)
-- assert((TF == SPII::MO_NO_FLAG
-- || TF == SPII::MO_TLS_GD_CALL
-- || TF == SPII::MO_TLS_LDM_CALL) &&
-+ assert((TF == SparcMCExpr::VK_Sparc_None
-+ || TF == SparcMCExpr::VK_Sparc_TLS_GD_CALL
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDM_CALL) &&
- "Cannot handle target flags on tls call address");
- else if (MI->getOpcode() == SP::TLS_ADDrr)
-- assert((TF == SPII::MO_TLS_GD_ADD || TF == SPII::MO_TLS_LDM_ADD
-- || TF == SPII::MO_TLS_LDO_ADD || TF == SPII::MO_TLS_IE_ADD) &&
-+ assert((TF == SparcMCExpr::VK_Sparc_TLS_GD_ADD
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDM_ADD
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDO_ADD
-+ || TF == SparcMCExpr::VK_Sparc_TLS_IE_ADD) &&
- "Cannot handle target flags on add for TLS");
- else if (MI->getOpcode() == SP::TLS_LDrr)
-- assert(TF == SPII::MO_TLS_IE_LD &&
-+ assert(TF == SparcMCExpr::VK_Sparc_TLS_IE_LD &&
- "Cannot handle target flags on ld for TLS");
- else if (MI->getOpcode() == SP::TLS_LDXrr)
-- assert(TF == SPII::MO_TLS_IE_LDX &&
-+ assert(TF == SparcMCExpr::VK_Sparc_TLS_IE_LDX &&
- "Cannot handle target flags on ldx for TLS");
- else if (MI->getOpcode() == SP::XORri || MI->getOpcode() == SP::XORXri)
-- assert((TF == SPII::MO_TLS_LDO_LOX10 || TF == SPII::MO_TLS_LE_LOX10) &&
-+ assert((TF == SparcMCExpr::VK_Sparc_TLS_LDO_LOX10
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LE_LOX10) &&
- "Cannot handle target flags on xor for TLS");
- else
-- assert((TF == SPII::MO_LO || TF == SPII::MO_M44 || TF == SPII::MO_L44
-- || TF == SPII::MO_HM
-- || TF == SPII::MO_TLS_GD_LO10
-- || TF == SPII::MO_TLS_LDM_LO10
-- || TF == SPII::MO_TLS_IE_LO10 ) &&
-+ assert((TF == SparcMCExpr::VK_Sparc_LO
-+ || TF == SparcMCExpr::VK_Sparc_M44
-+ || TF == SparcMCExpr::VK_Sparc_L44
-+ || TF == SparcMCExpr::VK_Sparc_HM
-+ || TF == SparcMCExpr::VK_Sparc_TLS_GD_LO10
-+ || TF == SparcMCExpr::VK_Sparc_TLS_LDM_LO10
-+ || TF == SparcMCExpr::VK_Sparc_TLS_IE_LO10 ) &&
- "Invalid target flags for small address operand");
- }
- #endif
-
-- bool CloseParen = true;
-- switch (TF) {
-- default:
-- llvm_unreachable("Unknown target flags on operand");
-- case SPII::MO_NO_FLAG:
-- CloseParen = false;
-- break;
-- case SPII::MO_LO: O << "%lo("; break;
-- case SPII::MO_HI: O << "%hi("; break;
-- case SPII::MO_H44: O << "%h44("; break;
-- case SPII::MO_M44: O << "%m44("; break;
-- case SPII::MO_L44: O << "%l44("; break;
-- case SPII::MO_HH: O << "%hh("; break;
-- case SPII::MO_HM: O << "%hm("; break;
-- case SPII::MO_TLS_GD_HI22: O << "%tgd_hi22("; break;
-- case SPII::MO_TLS_GD_LO10: O << "%tgd_lo10("; break;
-- case SPII::MO_TLS_GD_ADD: O << "%tgd_add("; break;
-- case SPII::MO_TLS_GD_CALL: O << "%tgd_call("; break;
-- case SPII::MO_TLS_LDM_HI22: O << "%tldm_hi22("; break;
-- case SPII::MO_TLS_LDM_LO10: O << "%tldm_lo10("; break;
-- case SPII::MO_TLS_LDM_ADD: O << "%tldm_add("; break;
-- case SPII::MO_TLS_LDM_CALL: O << "%tldm_call("; break;
-- case SPII::MO_TLS_LDO_HIX22: O << "%tldo_hix22("; break;
-- case SPII::MO_TLS_LDO_LOX10: O << "%tldo_lox10("; break;
-- case SPII::MO_TLS_LDO_ADD: O << "%tldo_add("; break;
-- case SPII::MO_TLS_IE_HI22: O << "%tie_hi22("; break;
-- case SPII::MO_TLS_IE_LO10: O << "%tie_lo10("; break;
-- case SPII::MO_TLS_IE_LD: O << "%tie_ld("; break;
-- case SPII::MO_TLS_IE_LDX: O << "%tie_ldx("; break;
-- case SPII::MO_TLS_IE_ADD: O << "%tie_add("; break;
-- case SPII::MO_TLS_LE_HIX22: O << "%tle_hix22("; break;
-- case SPII::MO_TLS_LE_LOX10: O << "%tle_lox10("; break;
-- }
-
-+ bool CloseParen = SparcMCExpr::printVariantKind(O, TF);
-+
- switch (MO.getType()) {
- case MachineOperand::MO_Register:
- O << "%" << StringRef(getRegisterName(MO.getReg())).lower();
-Index: lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
-===================================================================
---- lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
-+++ lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
-@@ -15,7 +15,6 @@
- #include "SparcInstPrinter.h"
-
- #include "Sparc.h"
--#include "MCTargetDesc/SparcBaseInfo.h"
- #include "llvm/MC/MCExpr.h"
- #include "llvm/MC/MCInst.h"
- #include "llvm/MC/MCSymbol.h"
-Index: lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h
-===================================================================
---- lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h
-+++ lib/Target/Sparc/MCTargetDesc/SparcBaseInfo.h
-@@ -1,82 +0,0 @@
--//===-- SparcBaseInfo.h - Top level definitions for Sparc ---- --*- C++ -*-===//
--//
--// The LLVM Compiler Infrastructure
--//
--// This file is distributed under the University of Illinois Open Source
--// License. See LICENSE.TXT for details.
--//
--//===----------------------------------------------------------------------===//
--//
--// This file contains small standalone helper functions and enum definitions
--// for the Sparc target useful for the compiler back-end and the MC libraries.
--// As such, it deliberately does not include references to LLVM core code gen
--// types, passes, etc..
--//
--//===----------------------------------------------------------------------===//
--
--#ifndef SPARCBASEINFO_H
--#define SPARCBASEINFO_H
--
--namespace llvm {
--
--/// SPII - This namespace holds target specific flags for instruction info.
--namespace SPII {
--
--/// Target Operand Flags. Sparc specific TargetFlags for MachineOperands and
--/// SDNodes.
--enum TOF {
-- MO_NO_FLAG,
--
-- // Extract the low 10 bits of an address.
-- // Assembler: %lo(addr)
-- MO_LO,
--
-- // Extract bits 31-10 of an address. Only for sethi.
-- // Assembler: %hi(addr) or %lm(addr)
-- MO_HI,
--
-- // Extract bits 43-22 of an adress. Only for sethi.
-- // Assembler: %h44(addr)
-- MO_H44,
--
-- // Extract bits 21-12 of an address.
-- // Assembler: %m44(addr)
-- MO_M44,
--
-- // Extract bits 11-0 of an address.
-- // Assembler: %l44(addr)
-- MO_L44,
--
-- // Extract bits 63-42 of an address. Only for sethi.
-- // Assembler: %hh(addr)
-- MO_HH,
--
-- // Extract bits 41-32 of an address.
-- // Assembler: %hm(addr)
-- MO_HM,
--
-- // TargetFlags for Thread Local Storage.
-- MO_TLS_GD_HI22,
-- MO_TLS_GD_LO10,
-- MO_TLS_GD_ADD,
-- MO_TLS_GD_CALL,
-- MO_TLS_LDM_HI22,
-- MO_TLS_LDM_LO10,
-- MO_TLS_LDM_ADD,
-- MO_TLS_LDM_CALL,
-- MO_TLS_LDO_HIX22,
-- MO_TLS_LDO_LOX10,
-- MO_TLS_LDO_ADD,
-- MO_TLS_IE_HI22,
-- MO_TLS_IE_LO10,
-- MO_TLS_IE_LD,
-- MO_TLS_IE_LDX,
-- MO_TLS_IE_ADD,
-- MO_TLS_LE_HIX22,
-- MO_TLS_LE_LOX10
--};
--
--} // end namespace SPII
--} // end namespace llvm
--
--#endif
-Index: lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
-===================================================================
---- lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
-+++ lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
-@@ -29,8 +29,21 @@ SparcMCExpr::Create(VariantKind Kind, const MCExpr
- }
-
-
-+
- void SparcMCExpr::PrintImpl(raw_ostream &OS) const
- {
-+
-+ bool closeParen = printVariantKind(OS, Kind);
-+
-+ const MCExpr *Expr = getSubExpr();
-+ Expr->print(OS);
-+
-+ if (closeParen)
-+ OS << ')';
-+}
-+
-+bool SparcMCExpr::printVariantKind(raw_ostream &OS, VariantKind Kind)
-+{
- bool closeParen = true;
- switch (Kind) {
- case VK_Sparc_None: closeParen = false; break;
-@@ -61,11 +74,7 @@ void SparcMCExpr::PrintImpl(raw_ostream &OS) const
- case VK_Sparc_TLS_LE_HIX22: OS << "%tle_hix22("; break;
- case VK_Sparc_TLS_LE_LOX10: OS << "%tle_lox10("; break;
- }
--
-- const MCExpr *Expr = getSubExpr();
-- Expr->print(OS);
-- if (closeParen)
-- OS << ')';
-+ return closeParen;
- }
-
- SparcMCExpr::VariantKind SparcMCExpr::parseVariantKind(StringRef name)
-Index: lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
-===================================================================
---- lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
-+++ lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
-@@ -93,7 +93,7 @@ class SparcMCExpr : public MCTargetExpr {
- static bool classof(const SparcMCExpr *) { return true; }
-
- static VariantKind parseVariantKind(StringRef name);
--
-+ static bool printVariantKind(raw_ostream &OS, VariantKind Kind);
- };
-
- } // end namespace llvm.
OpenPOWER on IntegriCloud