summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorStefanus Du Toit <stefanus.du.toit@intel.com>2013-06-18 17:08:10 +0000
committerStefanus Du Toit <stefanus.du.toit@intel.com>2013-06-18 17:08:10 +0000
commit23306deb92e2424165f2145895e21e223c3887eb (patch)
tree010de068999f5a5d00ea5b28788b7609666f07aa /utils
parent8ee23f00c7e9343d09313051c318906558d6ad17 (diff)
downloadllvm-23306deb92e2424165f2145895e21e223c3887eb.tar.gz
llvm-23306deb92e2424165f2145895e21e223c3887eb.tar.bz2
llvm-23306deb92e2424165f2145895e21e223c3887eb.tar.xz
Add support for encoding the HLE XACQUIRE and XRELEASE prefixes.
For decoding, keep the current behavior of always decoding these as their REP versions. In the future, this could be improved to recognize the cases where these behave as XACQUIRE and XRELEASE and decode them as such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184207 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/X86RecognizableInstr.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp
index 46f2052b01..76d986b1c1 100644
--- a/utils/TableGen/X86RecognizableInstr.cpp
+++ b/utils/TableGen/X86RecognizableInstr.cpp
@@ -461,6 +461,12 @@ RecognizableInstr::filter_ret RecognizableInstr::filter() const {
Name == "VMOVQs64rr")
return FILTER_WEAK;
+ // XACQUIRE and XRELEASE reuse REPNE and REP respectively.
+ // For now, just prefer the REP versions.
+ if (Name == "XACQUIRE_PREFIX" ||
+ Name == "XRELEASE_PREFIX")
+ return FILTER_WEAK;
+
if (HasFROperands && Name.find("MOV") != Name.npos &&
((Name.find("2") != Name.npos && Name.find("32") == Name.npos) ||
(Name.find("to") != Name.npos)))