diff options
author | Bob Wilson <bob.wilson@apple.com> | 2011-12-22 23:39:48 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2011-12-22 23:39:48 +0000 |
commit | 1a74de95040808c0063fe3a73cd78ca5ba6c815c (patch) | |
tree | fe4321d47c2f3a9e7dba205ddf1ed86cfa7fc872 /llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | |
parent | 72be32af88cdaf2a22a4e5d631b53347bdefcd10 (diff) | |
download | bcm5719-llvm-1a74de95040808c0063fe3a73cd78ca5ba6c815c.tar.gz bcm5719-llvm-1a74de95040808c0063fe3a73cd78ca5ba6c815c.zip |
Add variants of the dispatchsetup pseudo for Thumb and !VFP. <rdar://10620138>
My change r146949 added register clobbers to the eh_sjlj_dispatchsetup pseudo
instruction, but on Thumb1 some of those registers cannot be used. This
caused massive failures on the testsuite when compiling for Thumb1. While
fixing that, I noticed that the eh_sjlj_setjmp instruction has a "nofp"
variant, and I realized that dispatchsetup needs the same thing, so I have
added that as well.
llvm-svn: 147204
Diffstat (limited to 'llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp index 1fb769754c0..35f3c25500a 100644 --- a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp +++ b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp @@ -842,7 +842,9 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB, MI.eraseFromParent(); return true; } - case ARM::eh_sjlj_dispatchsetup: { + case ARM::Int_eh_sjlj_dispatchsetup: + case ARM::Int_eh_sjlj_dispatchsetup_nofp: + case ARM::tInt_eh_sjlj_dispatchsetup: { MachineFunction &MF = *MI.getParent()->getParent(); const ARMBaseInstrInfo *AII = static_cast<const ARMBaseInstrInfo*>(TII); |