diff options
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/SystemZ/args-04.ll | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/SystemZ/args-07.ll | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index a699f9c56f2..50a4f247efb 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -1344,7 +1344,8 @@ void SelectionDAGBuilder::visitRet(const ReturnInst &I) { ComputeValueVTs(TLI, DL, PointerType::getUnqual(F->getReturnType()), PtrValueVTs); - SDValue RetPtr = DAG.getRegister(DemoteReg, PtrValueVTs[0]); + SDValue RetPtr = DAG.getCopyFromReg(DAG.getEntryNode(), getCurSDLoc(), + DemoteReg, PtrValueVTs[0]); SDValue RetOp = getValue(I.getOperand(0)); SmallVector<EVT, 4> ValueVTs; diff --git a/llvm/test/CodeGen/SystemZ/args-04.ll b/llvm/test/CodeGen/SystemZ/args-04.ll index 48a2cf49104..475cceb106e 100644 --- a/llvm/test/CodeGen/SystemZ/args-04.ll +++ b/llvm/test/CodeGen/SystemZ/args-04.ll @@ -1,7 +1,7 @@ ; Test incoming GPR, FPR and stack arguments when no extension type is given. ; This type of argument is used for passing structures, etc. ; -; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s +; RUN: llc < %s -mtriple=s390x-linux-gnu -verify-machineinstrs | FileCheck %s ; Do some arithmetic so that we can see the register being used. define i8 @f1(i8 %r2) { diff --git a/llvm/test/CodeGen/SystemZ/args-07.ll b/llvm/test/CodeGen/SystemZ/args-07.ll index 29d9b319ffc..44a31fadd6d 100644 --- a/llvm/test/CodeGen/SystemZ/args-07.ll +++ b/llvm/test/CodeGen/SystemZ/args-07.ll @@ -1,6 +1,6 @@ ; Test multiple return values (LLVM ABI extension) ; -; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s +; RUN: llc < %s -mtriple=s390x-linux-gnu -verify-machineinstrs| FileCheck %s ; Up to four integer return values fit into GPRs. define { i64, i64, i64, i64 } @f1() { |