]> granicus.if.org Git - llvm/commitdiff
[SystemZ] A few fixes in scheduler files.
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 9 Nov 2016 12:47:57 +0000 (12:47 +0000)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 9 Nov 2016 12:47:57 +0000 (12:47 +0000)
Review: U Weigand

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

lib/Target/SystemZ/SystemZScheduleZ13.td
lib/Target/SystemZ/SystemZScheduleZ196.td
lib/Target/SystemZ/SystemZScheduleZEC12.td

index d5b2c127995b946d095a6da5d40717f9bbacda14..7bf15b40431533f6952705f470354b66c0032368 100644 (file)
@@ -527,7 +527,7 @@ def : InstRW<[FXa, FXb, LSU, Lat6, GroupAlone], (instregex "CS(G|Y)?$")>;
 def : InstRW<[LSU], (instregex "(EAR|SAR|CPYA)$")>;
 
 // Load address extended
-def : InstRW<[LSU, FXa], (instregex "LAE(Y)?$")>;
+def : InstRW<[LSU, FXa, Lat5, BeginGroup], (instregex "LAE(Y)?$")>;
 
 // Load/store access multiple (not modeled precisely)
 def : InstRW<[LSU, Lat30, GroupAlone], (instregex "(L|ST)AM(Y)?$")>;
@@ -546,10 +546,10 @@ def : InstRW<[LSU, EndGroup], (instregex "SPM$")>;
 def : InstRW<[FXa, FXa, FXb, Lat5, GroupAlone], (instregex "BAL(R)?$")>;
 
 // Test addressing mode
-def : InstRW<[FXb, EndGroup], (instregex "TAM$")>;
+def : InstRW<[FXb], (instregex "TAM$")>;
 
 // Set addressing mode
-def : InstRW<[FXb, FXb, Lat2, EndGroup], (instregex "SAM(24|31|64)$")>;
+def : InstRW<[FXb, Lat2, EndGroup], (instregex "SAM(24|31|64)$")>;
 
 // Branch (and save) and set mode.
 def : InstRW<[FXa, FXb, Lat2, GroupAlone], (instregex "BSM$")>;
index c4c377e070272678da9b9525ef9544fd5f14f445..06575059328568dd0518f6d50fb4362912a7e897 100644 (file)
@@ -504,7 +504,7 @@ def : InstRW<[FXU, LSU, FXU, Lat6, GroupAlone], (instregex "CS(G|Y)?$")>;
 def : InstRW<[LSU], (instregex "(EAR|SAR|CPYA)$")>;
 
 // Load address extended
-def : InstRW<[LSU, FXU], (instregex "LAE(Y)?$")>;
+def : InstRW<[LSU, FXU, Lat5, GroupAlone], (instregex "LAE(Y)?$")>;
 
 // Load/store access multiple (not modeled precisely)
 def : InstRW<[LSU, Lat30, GroupAlone], (instregex "(L|ST)AM(Y)?$")>;
@@ -523,14 +523,14 @@ def : InstRW<[LSU, EndGroup], (instregex "SPM$")>;
 def : InstRW<[FXU, FXU, LSU, Lat8, GroupAlone], (instregex "BAL(R)?$")>;
 
 // Test addressing mode
-def : InstRW<[FXU, EndGroup], (instregex "TAM$")>;
+def : InstRW<[FXU], (instregex "TAM$")>;
 
 // Set addressing mode
 def : InstRW<[LSU, EndGroup], (instregex "SAM(24|31|64)$")>;
 
 // Branch (and save) and set mode.
-def : InstRW<[FXU, LSU, Lat4, GroupAlone], (instregex "BSM$")>;
-def : InstRW<[FXU, FXU, LSU, Lat5, GroupAlone], (instregex "BASSM$")>;
+def : InstRW<[FXU, LSU, Lat5, GroupAlone], (instregex "BSM$")>;
+def : InstRW<[FXU, FXU, LSU, Lat6, GroupAlone], (instregex "BASSM$")>;
 
 //===----------------------------------------------------------------------===//
 // Miscellaneous Instructions.
index 08a49b9e47930aa4c3bf6aa5286bc6a977cb4bf4..e302d4606b44c78aba472502b91f7efba3925a16 100644 (file)
@@ -506,7 +506,7 @@ def : InstRW<[FXU, FXU, LSU, Lat6, GroupAlone], (instregex "CS(G|Y)?$")>;
 def : InstRW<[LSU], (instregex "(EAR|SAR|CPYA)$")>;
 
 // Load address extended
-def : InstRW<[LSU, FXU], (instregex "LAE(Y)?$")>;
+def : InstRW<[LSU, FXU, Lat5, GroupAlone], (instregex "LAE(Y)?$")>;
 
 // Load/store access multiple (not modeled precisely)
 def : InstRW<[LSU, Lat30, GroupAlone], (instregex "(L|ST)AM(Y)?$")>;
@@ -525,14 +525,14 @@ def : InstRW<[LSU, EndGroup], (instregex "SPM$")>;
 def : InstRW<[FXU, FXU, LSU, Lat8, GroupAlone], (instregex "BAL(R)?$")>;
 
 // Test addressing mode
-def : InstRW<[FXU, EndGroup], (instregex "TAM$")>;
+def : InstRW<[FXU], (instregex "TAM$")>;
 
 // Set addressing mode
 def : InstRW<[LSU, EndGroup], (instregex "SAM(24|31|64)$")>;
 
 // Branch (and save) and set mode.
-def : InstRW<[FXU, LSU, Lat4, GroupAlone], (instregex "BSM$")>;
-def : InstRW<[FXU, FXU, LSU, Lat5, GroupAlone], (instregex "BASSM$")>;
+def : InstRW<[FXU, LSU, Lat5, GroupAlone], (instregex "BSM$")>;
+def : InstRW<[FXU, FXU, LSU, Lat6, GroupAlone], (instregex "BASSM$")>;
 
 //===----------------------------------------------------------------------===//
 // Transactional execution