diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-02-02 08:58:48 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-02-02 08:58:48 +0000 |
commit | fda6550545008e763be2e82dd908afa35ccd1dd7 (patch) | |
tree | a8487256fe470a69b2100088b846a2a5289e670f /llvm/lib/Target/ARM/ARMRegisterInfo.cpp | |
parent | d5fea61d985df3fdb0e0fc4de51212bf5bd7ccbd (diff) | |
download | bcm5719-llvm-fda6550545008e763be2e82dd908afa35ccd1dd7.tar.gz bcm5719-llvm-fda6550545008e763be2e82dd908afa35ccd1dd7.zip |
Ugh. Only meant to do this in thumb mode.
llvm-svn: 33780
Diffstat (limited to 'llvm/lib/Target/ARM/ARMRegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMRegisterInfo.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM/ARMRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMRegisterInfo.cpp index 9c9aef75990..94c10f1e3b0 100644 --- a/llvm/lib/Target/ARM/ARMRegisterInfo.cpp +++ b/llvm/lib/Target/ARM/ARMRegisterInfo.cpp @@ -1159,12 +1159,17 @@ void ARMRegisterInfo::emitEpilogue(MachineFunction &MF, } if (VARegSaveSize) { - // Epilogue for vararg functions: pop LR to R3 and branch off it. - // FIXME: Verify this is still ok when R3 is no longer being reserved. - BuildMI(MBB, MBBI, TII.get(ARM::tPOP)).addReg(ARM::R3); + if (isThumb) + // Epilogue for vararg functions: pop LR to R3 and branch off it. + // FIXME: Verify this is still ok when R3 is no longer being reserved. + BuildMI(MBB, MBBI, TII.get(ARM::tPOP)).addReg(ARM::R3); + emitSPUpdate(MBB, MBBI, VARegSaveSize, isThumb, TII); - BuildMI(MBB, MBBI, TII.get(ARM::tBX_RET_vararg)).addReg(ARM::R3); - MBB.erase(MBBI); + + if (isThumb) { + BuildMI(MBB, MBBI, TII.get(ARM::tBX_RET_vararg)).addReg(ARM::R3); + MBB.erase(MBBI); + } } } |