diff options
author | Kit Barton <kbarton@ca.ibm.com> | 2015-06-16 16:01:15 +0000 |
---|---|---|
committer | Kit Barton <kbarton@ca.ibm.com> | 2015-06-16 16:01:15 +0000 |
commit | 4f79f96fd7351a0bb731fcb508f76e6ab4ae2134 (patch) | |
tree | b9dc7c9b94cbb3e5b67d8652bca6ce19d941bed8 /llvm/lib/Target/PowerPC/PPCSubtarget.h | |
parent | 6fea1af01add7a54251d037c99a7d6deb1814184 (diff) | |
download | bcm5719-llvm-4f79f96fd7351a0bb731fcb508f76e6ab4ae2134.tar.gz bcm5719-llvm-4f79f96fd7351a0bb731fcb508f76e6ab4ae2134.zip |
Properly handle the mftb instruction.
The mftb instruction was incorrectly marked as deprecated in the PPC
Backend. Instead, it should not be treated as deprecated, but rather be
implemented using the mfspr instruction. A similar patch was put into GCC last
year. Details can be found at:
https://sourceware.org/ml/binutils/2014-11/msg00383.html.
This change will replace instances of the mftb instruction with the mfspr
instruction for all CPUs except 601 and pwr3. This will also be the default
behaviour.
Additional details can be found in:
https://llvm.org/bugs/show_bug.cgi?id=23680
Phabricator review: http://reviews.llvm.org/D10419
llvm-svn: 239827
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCSubtarget.h')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCSubtarget.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCSubtarget.h b/llvm/lib/Target/PowerPC/PPCSubtarget.h index ee89a6e73e6..e9cc3d4bd5b 100644 --- a/llvm/lib/Target/PowerPC/PPCSubtarget.h +++ b/llvm/lib/Target/PowerPC/PPCSubtarget.h @@ -110,7 +110,7 @@ protected: bool IsE500; bool IsPPC4xx; bool IsPPC6xx; - bool DeprecatedMFTB; + bool FeatureMFTB; bool DeprecatedDST; bool HasLazyResolverStubs; bool IsLittleEndian; @@ -237,7 +237,7 @@ public: bool isPPC4xx() const { return IsPPC4xx; } bool isPPC6xx() const { return IsPPC6xx; } bool isE500() const { return IsE500; } - bool isDeprecatedMFTB() const { return DeprecatedMFTB; } + bool isFeatureMFTB() const { return FeatureMFTB; } bool isDeprecatedDST() const { return DeprecatedDST; } bool hasICBT() const { return HasICBT; } bool hasInvariantFunctionDescriptors() const { |