diff options
author | Guozhi Wei <carrot@google.com> | 2017-07-21 21:06:08 +0000 |
---|---|---|
committer | Guozhi Wei <carrot@google.com> | 2017-07-21 21:06:08 +0000 |
commit | e0094ce22ec584ee32b61358307ecbfd8f92ec0a (patch) | |
tree | c165ec729a2b4b1db4deadc65f91157b5f7a7638 | |
parent | 070d88e335d4c42d7d52e3d6926c735ba13cd2e7 (diff) | |
download | bcm5719-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.td | 2 |
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; |