summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>2016-11-09 12:47:57 +0000
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>2016-11-09 12:47:57 +0000
commite127fe7083895d8ec5a44bbfd0b6ee75769ca45c (patch)
tree8f47bf1dff710cb034d99faa75a360fc40d29aad /llvm/lib
parentc207bec388e36229cb25865c0e8326b80736e823 (diff)
downloadbcm5719-llvm-e127fe7083895d8ec5a44bbfd0b6ee75769ca45c.tar.gz
bcm5719-llvm-e127fe7083895d8ec5a44bbfd0b6ee75769ca45c.zip
[SystemZ] A few fixes in scheduler files.
Review: U Weigand llvm-svn: 286362
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZ13.td6
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZ196.td8
-rw-r--r--llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td8
3 files changed, 11 insertions, 11 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
index d5b2c127995..7bf15b40431 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
@@ -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$")>;
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
index c4c377e0702..06575059328 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
@@ -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.
diff --git a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
index 08a49b9e479..e302d4606b4 100644
--- a/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
+++ b/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
@@ -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
OpenPOWER on IntegriCloud