- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
authorEvan Cheng <evan.cheng@apple.com>
Tue, 30 Jan 2007 01:18:38 +0000 (01:18 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 30 Jan 2007 01:18:38 +0000 (01:18 +0000)
commitd1b2c1e88fe4a7728ca9739b0f1c6fd90a19c5fd
treea06f37be3684c1db7e3e3182bf132703a45bc1b2
parent225dfe973bd85e36ff16fe7a08e458f285703cc9
- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
  spilled (if it is not already).
- If LR is spilled, use BL to implement far jumps. LR is not used as a GPR
  in thumb mode so it can be clobbered if it is properly spilled / restored
  in prologue / epilogue.
- If LR is force spilled but no far jump has been emitted, try undo'ing the
  spill by:
  push lr -> delete
  pop pc -> bx lr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33650 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMConstantIslandPass.cpp
lib/Target/ARM/ARMMachineFunctionInfo.h
lib/Target/ARM/ARMRegisterInfo.cpp