OSDN Git Service

[X86][MPX] Tag TSX/HLE/SGX instructions scheduler classes
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 8 Dec 2017 19:26:22 +0000 (19:26 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 8 Dec 2017 19:26:22 +0000 (19:26 +0000)
Currently tagged these as system instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320177 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSGX.td
lib/Target/X86/X86InstrTSX.td

index 84119ad..f4331c5 100644 (file)
@@ -15,6 +15,7 @@
 //===----------------------------------------------------------------------===//
 // SGX instructions
 
+let SchedRW = [WriteSystem] in {
 // ENCLS - Execute an Enclave System Function of Specified Leaf Number
 def ENCLS : I<0x01, MRM_CF, (outs), (ins),
              "encls", []>, TB;
@@ -22,3 +23,4 @@ def ENCLS : I<0x01, MRM_CF, (outs), (ins),
 // ENCLU - Execute an Enclave User Function of Specified Leaf Number
 def ENCLU : I<0x01, MRM_D7, (outs), (ins),
              "enclu", []>, TB;
+} // SchedRW
index 61aac58..10c6eef 100644 (file)
@@ -18,6 +18,8 @@
 def X86xtest: SDNode<"X86ISD::XTEST", SDTypeProfile<1, 0, [SDTCisVT<0, i32>]>,
                      [SDNPHasChain, SDNPSideEffect]>;
 
+let SchedRW = [WriteSystem] in {
+
 let usesCustomInserter = 1 in
 def XBEGIN : I<0, Pseudo, (outs GR32:$dst), (ins),
                "# XBEGIN", [(set GR32:$dst, (int_x86_xbegin))]>,
@@ -45,11 +47,14 @@ def XTEST : I<0x01, MRM_D6, (outs), (ins),
 def XABORT : Ii8<0xc6, MRM_F8, (outs), (ins i8imm:$imm),
                  "xabort\t$imm",
                  [(int_x86_xabort imm:$imm)]>, Requires<[HasRTM]>;
+} // SchedRW
 
 // HLE prefixes
+let SchedRW = [WriteSystem] in {
 
 let isAsmParserOnly = 1 in {
 def XACQUIRE_PREFIX : I<0xF2, RawFrm, (outs), (ins), "xacquire", []>;
 def XRELEASE_PREFIX : I<0xF3, RawFrm, (outs), (ins), "xrelease", []>;
 }
 
+} // SchedRW