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.

llvm-svn: 22301
This commit is contained in:
Andrew Lenharth 2005-06-27 23:24:11 +00:00
parent db32921535
commit a50adcf57d
1 changed files with 3 additions and 3 deletions

View File

@ -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: