[PATCH] D35247: [mips][mt][1/7] Add the MT ASE as a subtarget feature.
Simon Dardis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 11 11:03:51 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL307679: [mips][mt][1/7] Add the MT ASE as a subtarget feature. (authored by sdardis).
Changed prior to commit:
https://reviews.llvm.org/D35247?vs=106008&id=106068#toc
Repository:
rL LLVM
https://reviews.llvm.org/D35247
Files:
llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
llvm/trunk/lib/Target/Mips/Mips.td
llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
llvm/trunk/lib/Target/Mips/MipsSubtarget.h
llvm/trunk/test/MC/Mips/mt/abiflag.s
Index: llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
===================================================================
--- llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
+++ llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
@@ -70,7 +70,8 @@
InMips16HardFloat(Mips16HardFloat), InMicroMipsMode(false), HasDSP(false),
HasDSPR2(false), HasDSPR3(false), AllowMixed16_32(Mixed16_32 | Mips_Os16),
Os16(Mips_Os16), HasMSA(false), UseTCCInDIV(false), HasSym32(false),
- HasEVA(false), DisableMadd4(false), TM(TM), TargetTriple(TT), TSInfo(),
+ HasEVA(false), DisableMadd4(false), HasMT(false), TM(TM),
+ TargetTriple(TT), TSInfo(),
InstrInfo(
MipsInstrInfo::create(initializeSubtargetDependencies(CPU, FS, TM))),
FrameLowering(MipsFrameLowering::create(*this)),
Index: llvm/trunk/lib/Target/Mips/MipsSubtarget.h
===================================================================
--- llvm/trunk/lib/Target/Mips/MipsSubtarget.h
+++ llvm/trunk/lib/Target/Mips/MipsSubtarget.h
@@ -149,6 +149,9 @@
// related instructions.
bool DisableMadd4;
+ // HasMT -- support MT ASE.
+ bool HasMT;
+
InstrItineraryData InstrItins;
// We can override the determination of whether we are in mips16 mode
@@ -259,6 +262,7 @@
bool hasMSA() const { return HasMSA; }
bool disableMadd4() const { return DisableMadd4; }
bool hasEVA() const { return HasEVA; }
+ bool hasMT() const { return HasMT; }
bool useSmallSection() const { return UseSmallSection; }
bool hasStandardEncoding() const { return !inMips16Mode(); }
Index: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
===================================================================
--- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
+++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
@@ -159,6 +159,8 @@
ASESet |= Mips::AFL_ASE_MICROMIPS;
if (P.inMips16Mode())
ASESet |= Mips::AFL_ASE_MIPS16;
+ if (P.hasMT())
+ ASESet |= Mips::AFL_ASE_MT;
}
template <class PredicateLibrary>
Index: llvm/trunk/lib/Target/Mips/Mips.td
===================================================================
--- llvm/trunk/lib/Target/Mips/Mips.td
+++ llvm/trunk/lib/Target/Mips/Mips.td
@@ -188,6 +188,8 @@
def FeatureMadd4 : SubtargetFeature<"nomadd4", "DisableMadd4", "true",
"Disable 4-operand madd.fmt and related instructions">;
+def FeatureMT : SubtargetFeature<"mt", "HasMT", "true", "Mips MT ASE">;
+
//===----------------------------------------------------------------------===//
// Mips processors supported.
//===----------------------------------------------------------------------===//
Index: llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
===================================================================
--- llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -628,6 +628,9 @@
bool useSoftFloat() const {
return getSTI().getFeatureBits()[Mips::FeatureSoftFloat];
}
+ bool hasMT() const {
+ return getSTI().getFeatureBits()[Mips::FeatureMT];
+ }
/// Warn if RegIndex is the same as the current AT.
void warnIfRegIndexIsAT(unsigned RegIndex, SMLoc Loc);
Index: llvm/trunk/test/MC/Mips/mt/abiflag.s
===================================================================
--- llvm/trunk/test/MC/Mips/mt/abiflag.s
+++ llvm/trunk/test/MC/Mips/mt/abiflag.s
@@ -0,0 +1,10 @@
+# RUN: llvm-mc < %s -arch=mips -mcpu=mips32r2 -mattr=+mt -filetype=obj -o - \
+# RUN: | llvm-readobj -mips-abi-flags | FileCheck %s
+
+# Test that the usage of the MT ASE is recorded in .MIPS.abiflags
+
+# CHECK: ASEs
+# CHECK-NEXT: MT (0x40)
+
+ .text
+ nop
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35247.106068.patch
Type: text/x-patch
Size: 3757 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170711/939f8d90/attachment.bin>
More information about the llvm-commits
mailing list