summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMFrameInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-1012/+0
| | | | | | and fixes here and there. llvm-svn: 123170
* PR8921: LDM/POP do not support interworking prior to v5t.Bob Wilson2011-01-061-1/+1
| | | | llvm-svn: 122970
* Remove extra whitespace.Bob Wilson2011-01-061-2/+2
| | | | llvm-svn: 122969
* Teach isCSRestore() that ARM/Thumb2 functions will use post-modify LDRJim Grosbach2010-12-101-0/+5
| | | | | | | instructions to restore a single register rather than an LDM instruction. rdar://8754999 llvm-svn: 121498
* ARM stm/ldm instructions require more than one register in the register list.Jim Grosbach2010-12-091-15/+55
| | | | | | | | Otherwise, a plain str/ldr should be used instead. Make sure we account for that in prologue/epilogue code generation. rdar://8745460 llvm-svn: 121391
* tidy up.Jim Grosbach2010-12-091-1/+1
| | | | llvm-svn: 121371
* 80 columns.Jim Grosbach2010-12-091-3/+5
| | | | llvm-svn: 121370
* Fix up some comments.Eric Christopher2010-12-091-2/+2
| | | | llvm-svn: 121351
* Add comments.Evan Cheng2010-12-081-8/+11
| | | | llvm-svn: 121238
* Fix a bad prologue / epilogue codegen bug where the compiler would emit illegalEvan Cheng2010-12-071-64/+87
| | | | | | | | | | | vpush instructions to save / restore VFP / NEON registers like this: vpush {d8,d10,d11} vpop {d8,d10,d11} vpush and vpop do not allow gaps in the register list. rdar://8728956 llvm-svn: 121197
* Code clean up; no functionality change.Evan Cheng2010-12-071-16/+14
| | | | llvm-svn: 121176
* Code clean up; no functionality change.Evan Cheng2010-12-071-11/+8
| | | | llvm-svn: 121172
* Enable sibling call optimization of libcalls which are expanded duringEvan Cheng2010-11-301-10/+13
| | | | | | | | | | | legalization time. Since at legalization time there is no mapping from SDNode back to the corresponding LLVM instruction and the return SDNode is target specific, this requires a target hook to check for eligibility. Only x86 and ARM support this form of sibcall optimization right now. rdar://8707777 llvm-svn: 120501
* Move more PEI-related hooks to TFIAnton Korobeynikov2010-11-271-0/+325
| | | | llvm-svn: 120229
* Move callee-saved regs spills / reloads to TFIAnton Korobeynikov2010-11-271-5/+127
| | | | llvm-svn: 120228
* Fix epilogue codegen to avoid leaving the stack pointer in an invalidEvan Cheng2010-11-221-7/+26
| | | | | | | | | | | | | | | | | state. Previously Thumb2 would restore sp from fp like this: mov sp, r7 sub, sp, #4 If an interrupt is taken after the 'mov' but before the 'sub', callee-saved registers might be clobbered by the interrupt handler. Instead, try restoring directly from sp: add sp, #4 Or, if necessary (with VLA, etc.) use a scratch register to compute sp and then restore it: sub.w r4, r7, #8 mov sp, r7 rdar://8465407 llvm-svn: 119977
* Move some more hooks to TargetFrameInfoAnton Korobeynikov2010-11-201-0/+90
| | | | llvm-svn: 119904
* Move hasFP() and few related hooks to TargetFrameInfo.Anton Korobeynikov2010-11-181-2/+48
| | | | llvm-svn: 119740
* Rewrite stack callee saved spills and restores to use push/pop instructions.Eric Christopher2010-11-181-67/+30
| | | | | | | | | Remove movePastCSLoadStoreOps and associated code for simple pointer increments. Update routines that depended upon other opcodes for save/restore. Adjust all testcases accordingly. llvm-svn: 119725
* First step of huge frame-related refactoring: move emit{Prologue,Epilogue} ↵Anton Korobeynikov2010-11-151-0/+376
out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place llvm-svn: 119097
OpenPOWER on IntegriCloud