From 6968bff783e49d16974db91f47df343794101ff5 Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Mon, 27 Jun 2005 23:24:11 +0000 Subject: [PATCH] So, it turns out I forgot that one valid way of restoring GP after a call is to use RA, which assumes the called function uses RA for the register holding the return address when it issues a ret. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22301 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Alpha/AlphaISelPattern.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Target/Alpha/AlphaISelPattern.cpp b/lib/Target/Alpha/AlphaISelPattern.cpp index deb367887d9..43bc1b8396d 100644 --- a/lib/Target/Alpha/AlphaISelPattern.cpp +++ b/lib/Target/Alpha/AlphaISelPattern.cpp @@ -92,8 +92,7 @@ namespace { setOperationAction(ISD::BRCONDTWOWAY, MVT::Other, Expand); setOperationAction(ISD::EXTLOAD, MVT::i1, Promote); - setOperationAction(ISD::EXTLOAD, MVT::f32, Promote); - + setOperationAction(ISD::ZEXTLOAD, MVT::i1 , Expand); setOperationAction(ISD::ZEXTLOAD, MVT::i32 , Expand); @@ -2392,7 +2391,8 @@ void AlphaISel::Select(SDOperand N) { break; } // Just emit a 'ret' instruction - BuildMI(BB, Alpha::RET, 1, Alpha::R31).addReg(AlphaLowering.getRA()); + AlphaLowering.restoreRA(BB); + BuildMI(BB, Alpha::RET, 1, Alpha::R31).addReg(Alpha::R26); return; case ISD::TRUNCSTORE: