summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCFrameInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Restore the behavior of frame lowering before my refactoring.Anton Korobeynikov2010-12-181-0/+1
| | | | | | | | It turns out that ppc backend has really weird interdependencies over different hooks and all stuff is fragile wrt small changes. This should fix PR8749 llvm-svn: 122155
* Move more PEI-related hooks to TFIAnton Korobeynikov2010-11-271-0/+4
| | | | llvm-svn: 120229
* Move getInitialFrameState() to TargetFrameInfoAnton Korobeynikov2010-11-181-0/+1
| | | | llvm-svn: 119754
* Move hasFP() and few related hooks to TargetFrameInfo.Anton Korobeynikov2010-11-181-0/+2
| | | | llvm-svn: 119740
* First step of huge frame-related refactoring: move emit{Prologue,Epilogue} ↵Anton Korobeynikov2010-11-151-7/+20
| | | | | | out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place llvm-svn: 119097
* Whitespace cleanupAnton Korobeynikov2010-11-151-4/+4
| | | | llvm-svn: 119096
* Fix wrong frame pointer save offset in the 64-bit PowerPC SVR4 ABI.Tilmann Scheller2009-12-181-1/+1
| | | | | | Patch contributed by Ken Werner of IBM! llvm-svn: 91681
* Fix compiler warnings.Dale Johannesen2009-11-251-4/+4
| | | | llvm-svn: 89824
* Do not store R31 into the caller's link area on PPC.Dale Johannesen2009-11-241-4/+16
| | | | | | | | | | | | This violates the ABI (that area is "reserved"), and while it is safe if all code is generated with current compilers, there is some very old code around that uses that slot for something else, and breaks if it is stored into. Adjust testcases looking for current behavior. I've verified that the stack frame size is right in all testcases, whether it changed or not. 7311323. llvm-svn: 89811
* Use explicit structs instead of std::pair to map callee saved regs to spill ↵Tilmann Scheller2009-09-271-154/+154
| | | | | | slots. llvm-svn: 82909
* Add support for the PowerPC 64-bit SVR4 ABI.Tilmann Scheller2009-08-151-20/+123
| | | | | | | | | | | | | | | | | The Link Register is volatile when using the 32-bit SVR4 ABI. Make it possible to use the 64-bit SVR4 ABI. Add non-volatile registers for the 64-bit SVR4 ABI. Make sure r2 is a reserved register when using the 64-bit SVR4 ABI. Update PPCFrameInfo for the 64-bit SVR4 ABI. Add FIXME for 64-bit Darwin PPC. Insert NOP instruction after direct function calls. Emit official procedure descriptors. Create TOC entries for GlobalAddress references. Spill 64-bit non-volatile registers to the correct slots. Only custom lower VAARG when using the 32-bit SVR4 ABI. Use simple VASTART lowering for the 64-bit SVR4 ABI. llvm-svn: 79091
* Various small changes related to the Condition Register on PowerPC.Tilmann Scheller2009-07-031-15/+16
| | | | | | | | Don't spill to the CR save area when using the SVR4 ABI for now. Don't rely on constants assigned for registers to be in order (they aren't assigned in order). Make sure CR bits are mapped to the corresponding CR field. llvm-svn: 74767
* Refactor ABI code in the PowerPC backend.Tilmann Scheller2009-07-031-18/+18
| | | | | | | | | | | Make CalculateParameterAndLinkageAreaSize() Darwin-specific. Remove SVR4 specific code from LowerCALL_Darwin() and LowerFORMAL_ARGUMENTS_Darwin(). Rename MachoABI to DarwinABI for consistency. Rename ELF ABI to SVR4 ABI for consistency. Factor out common call return lowering between the Darwin and SVR4 ABI. Factor out common call lowering between the Darwin and SVR4 ABI. llvm-svn: 74766
* Implement the SVR4 ABI for PowerPC.Tilmann Scheller2009-07-031-1/+92
| | | | | | | | | | | | | | | | | | | | | | | | Implement LowerFORMAL_ARGUMENTS_SVR4(). Implement LowerCALL_SVR4(). Add support for split arguments. Implement by value parameter passing for aggregates. Add support for variable argument lists. Create the spill area for argument registers of variable argument functions no longer at a fixed offset. Make sure callee saved registers are spilled to the correct stack offsets. Change allocation order of non-volatile floating-point registers. Add VRSAVE to the list of callee-saved registers, add CallConvLowering for vararg calls. Add support for variable argument calls with Vector arguments. Add support for VR and VRSAVE save area, improve allocation order for non-volatile vector registers. Stop creating illegal i8 values in LowerVASTART(). Add memory access width hints. Make sure to reserve space on the stack for the frame pointer. When using the SVR4 ABI, reserve r13 for the Small Data Area pointer. Assure that the frame pointer is spilled to the correct location on the stack. Some FP registers were not marked as volatile. Make sure the i64 words from a long double are passed either both in registers or both on the stack. Only put integer arguments in registers which are not marked with the inreg flag. llvm-svn: 74765
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Squelch a warning about mismatch between sign of constant and sign of returnReid Spencer2007-04-041-1/+1
| | | | | | type. llvm-svn: 35674
* The PPC64 ELF ABI is "intended to use the same structure layout and calling ↵Nicolas Geoffray2007-04-031-7/+7
| | | | | | | | | convention rules as the 64-bit PowerOpen ABI" (Reference http://www.linux-foundation.org/spec/ELF/ppc64/). Change all ELF tests to ELF32. llvm-svn: 35624
* implement support for the linux/ppc function call ABI. Patch byChris Lattner2007-02-251-15/+35
| | | | | | Nicolas Geoffray! llvm-svn: 34574
* Make it easier for gdb to find the return address.Jim Laskey2006-12-061-13/+5
| | | | llvm-svn: 32277
* make sure to safe LR8 in the right stack slot for PPC64Chris Lattner2006-11-181-2/+7
| | | | llvm-svn: 31839
* This is a general clean up of the PowerPC ABI. Address several problems andJim Laskey2006-11-161-0/+34
| | | | | | | | | bugs including making sure that the TOS links back to the previous frame, that the maximum call frame size is not included twice when using frame pointers, no longer growing the frame on calls, double storing of SP and a cleaner/faster dynamic alloca. llvm-svn: 31792
* More PPC32 -> PPC changes, as well as merging some classes that wereNate Begeman2005-10-161-4/+4
| | | | | | redundant after the change. llvm-svn: 23759
* Rename PowerPC*.h to PPC*.hChris Lattner2005-10-141-0/+42
llvm-svn: 23743
OpenPOWER on IntegriCloud