diff options
| author | Aleksandar Beserminji <abeserminji@wavecomp.com> | 2019-01-28 14:59:30 +0000 |
|---|---|---|
| committer | Aleksandar Beserminji <abeserminji@wavecomp.com> | 2019-01-28 14:59:30 +0000 |
| commit | 6c5dfcb89edf93eb50356dc39ea0ea2dcbba906f (patch) | |
| tree | d36c2d32305d6a18db49a79cbe30bddc4bf9cb7d /llvm/lib/Target/Mips/MipsInstrInfo.td | |
| parent | 9feaecf22c235e5b97bd56d657a90fe1736eba56 (diff) | |
| download | bcm5719-llvm-6c5dfcb89edf93eb50356dc39ea0ea2dcbba906f.tar.gz bcm5719-llvm-6c5dfcb89edf93eb50356dc39ea0ea2dcbba906f.zip | |
[mips] Support for +abs2008 attribute
Instruction abs.[ds] is not generating correct result when working
with NaNs for revisions prior mips32r6 and mips64r6.
To generate a sequence which always produce a correct result, but also
to allow user more control on how his code is compiled, attribute
+abs2008 is added, so user can choose legacy or 2008.
By default legacy mode is used on revisions prior R6. Mips32r6 and
mips64r6 use abs2008 mode by default.
Differential Revision: https://reviews.llvm.org/D35983
llvm-svn: 352370
Diffstat (limited to 'llvm/lib/Target/Mips/MipsInstrInfo.td')
| -rw-r--r-- | llvm/lib/Target/Mips/MipsInstrInfo.td | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MipsInstrInfo.td b/llvm/lib/Target/Mips/MipsInstrInfo.td index 1943168ac42..f18877f9a7a 100644 --- a/llvm/lib/Target/Mips/MipsInstrInfo.td +++ b/llvm/lib/Target/Mips/MipsInstrInfo.td @@ -220,6 +220,8 @@ def IsNotN64 : Predicate<"!Subtarget->isABI_N64()">; def RelocNotPIC : Predicate<"!TM.isPositionIndependent()">; def RelocPIC : Predicate<"TM.isPositionIndependent()">; def NoNaNsFPMath : Predicate<"TM.Options.NoNaNsFPMath">; +def UseAbs : Predicate<"Subtarget->inAbs2008Mode() ||" + "TM.Options.NoNaNsFPMath">; def HasStdEnc : Predicate<"Subtarget->hasStandardEncoding()">, AssemblerPredicate<"!FeatureMips16">; def NotDSP : Predicate<"!Subtarget->hasDSP()">; |

