aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-08-31 01:58:39 +0000
committerNate Begeman <natebegeman@mac.com>2005-08-31 01:58:39 +0000
commit49296f1f48251945635fcebf562331b5ca5eb9c5 (patch)
tree9ea5225813b393030df3aa725dd7b04cc7e2c90c
parent7a49fdcd1136c26d9c60b19c087ca9d578cc9834 (diff)
Enable generation of AssertSext and AssertZext in the PPC backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23168 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/PowerPC/PPCISelLowering.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/PowerPC/PPCISelLowering.cpp b/lib/Target/PowerPC/PPCISelLowering.cpp
index dad4c9fd2e..fd9233f229 100644
--- a/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -214,8 +214,13 @@ PPC32TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) {
MF.addLiveIn(GPR[GPR_idx]);
argt = newroot = DAG.getCopyFromReg(DAG.getRoot(),
GPR[GPR_idx], MVT::i32);
- if (ObjectVT != MVT::i32)
- argt = DAG.getNode(ISD::TRUNCATE, ObjectVT, newroot);
+ if (ObjectVT != MVT::i32) {
+ unsigned AssertOp = I->getType()->isSigned() ? ISD::AssertSext
+ : ISD::AssertZext;
+ argt = DAG.getNode(AssertOp, MVT::i32, argt,
+ DAG.getValueType(ObjectVT));
+ argt = DAG.getNode(ISD::TRUNCATE, ObjectVT, argt);
+ }
} else {
needsLoad = true;
}