summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86Subtarget.h
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-08-26 21:21:21 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-08-26 21:21:21 +0000
commit5e5704277f1c43c3aa6c44c7c52e1daf71a9c16f (patch)
tree169420c75d059832ed9a62b71554aa5a224f0f9c /llvm/lib/Target/X86/X86Subtarget.h
parent97b6ac54077e3bdc7a30ce7611a8eb2a9c388efd (diff)
downloadbcm5719-llvm-5e5704277f1c43c3aa6c44c7c52e1daf71a9c16f.tar.gz
bcm5719-llvm-5e5704277f1c43c3aa6c44c7c52e1daf71a9c16f.zip
Add support for generating CMPXCHG16B on x86-64 for the cmpxchg IR instruction.
llvm-svn: 138660
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.h')
-rw-r--r--llvm/lib/Target/X86/X86Subtarget.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h
index d5c433f9aa9..c3a6d0f711d 100644
--- a/llvm/lib/Target/X86/X86Subtarget.h
+++ b/llvm/lib/Target/X86/X86Subtarget.h
@@ -100,6 +100,10 @@ protected:
/// operands. This may require setting a feature bit in the processor.
bool HasVectorUAMem;
+ /// HasCmpxchg16b - True if this processor has the CMPXCHG16B instruction;
+ /// this is true for most x86-64 chips, but not the first AMD chips.
+ bool HasCmpxchg16b;
+
/// stackAlignment - The minimum alignment known to hold of the stack frame on
/// entry to the function and which must be maintained by every function.
unsigned stackAlignment;
@@ -168,6 +172,7 @@ public:
bool isBTMemSlow() const { return IsBTMemSlow; }
bool isUnalignedMemAccessFast() const { return IsUAMemFast; }
bool hasVectorUAMem() const { return HasVectorUAMem; }
+ bool hasCmpxchg16b() const { return HasCmpxchg16b; }
const Triple &getTargetTriple() const { return TargetTriple; }
OpenPOWER on IntegriCloud