Mark ARM eh_sjlj_dispatchsetup as clobbering all registers. Radar 10567930.
authorBob Wilson <bob.wilson@apple.com>
Tue, 20 Dec 2011 01:29:27 +0000 (01:29 +0000)
committerBob Wilson <bob.wilson@apple.com>
Tue, 20 Dec 2011 01:29:27 +0000 (01:29 +0000)
commitc0b0e57a87aa5e52e0a45af75fc1cee78d8f2bc6
treefcb107703c6b609205031d2644d29e3d398dca0f
parentb5e8b8c8f762ae9a95f52a477440e426622d5446
Mark ARM eh_sjlj_dispatchsetup as clobbering all registers.  Radar 10567930.

We used to rely on the *eh_sjlj_setjmp instructions to mark that a function
with setjmp/longjmp exception handling clobbers all the registers.  But with
the recent reorganization of ARM EH, those eh_sjlj_setjmp instructions are
expanded away earlier, before PEI can see them to determine what registers to
save and restore.  Mark the dispatchsetup instruction in the same way, since
that instruction cannot be expanded early.  This also more accurately reflects
when the registers are clobbered.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146949 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrInfo.td
test/CodeGen/ARM/2011-12-19-sjlj-clobber.ll [new file with mode: 0644]