summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuozhi Wei <carrot@google.com>2017-07-21 21:06:08 +0000
committerGuozhi Wei <carrot@google.com>2017-07-21 21:06:08 +0000
commite0094ce22ec584ee32b61358307ecbfd8f92ec0a (patch)
treec165ec729a2b4b1db4deadc65f91157b5f7a7638
parent070d88e335d4c42d7d52e3d6926c735ba13cd2e7 (diff)
downloadbcm5719-llvm-e0094ce22ec584ee32b61358307ecbfd8f92ec0a.tar.gz
bcm5719-llvm-e0094ce22ec584ee32b61358307ecbfd8f92ec0a.zip
[PPC] Add Defs = [CARRY] to MIR SRADI_32
MIR SRADI uses instruction template XSForm_1rc which declares Defs = [CARRY]. But MIR SRADI_32 uses instruction template XSForm_1, and it doesn't declare such implicit definition. With patch D33720 it causes wrong code generation for perl. This patch adds the implicit definition. Differential Revision: https://reviews.llvm.org/D35699 llvm-svn: 308780
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstr64Bit.td2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
index e2af5e52954..e1838698de1 100644
--- a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+++ b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
@@ -643,7 +643,7 @@ defm SRADI : XSForm_1rc<31, 413, (outs g8rc:$rA), (ins g8rc:$rS, u6imm:$SH),
"sradi", "$rA, $rS, $SH", IIC_IntRotateDI,
[(set i64:$rA, (sra i64:$rS, (i32 imm:$SH)))]>, isPPC64;
// For fast-isel:
-let isCodeGenOnly = 1 in
+let isCodeGenOnly = 1, Defs = [CARRY] in
def SRADI_32 : XSForm_1<31, 413, (outs gprc:$rA), (ins gprc:$rS, u6imm:$SH),
"sradi $rA, $rS, $SH", IIC_IntRotateDI, []>, isPPC64;
OpenPOWER on IntegriCloud