summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* For functions that use vector registers, save VRSAVE, mark usedChris Lattner2006-03-131-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | registers, and update it on entry to each function, then restore it on exit. This compiles: void func(vfloat *a, vfloat *b, vfloat *c) { *a = *b * *c + *c; } to this: _func: mfspr r2, 256 oris r6, r2, 49152 mtspr 256, r6 lvx v0, 0, r5 lvx v1, 0, r4 vmaddfp v0, v1, v0, v0 stvx v0, 0, r3 mtspr 256, r2 blr GCC produces this (which has additional stack accesses): _func: mfspr r0,256 stw r0,-4(r1) oris r0,r0,0xc000 mtspr 256,r0 lvx v0,0,r5 lvx v1,0,r4 lwz r12,-4(r1) vmaddfp v0,v0,v1,v0 stvx v0,0,r3 mtspr 256,r12 blr llvm-svn: 26733
* Move isLoadFrom/StoreToStackSlot from MRegisterInfo to TargetInstrInfo,a far ↵Chris Lattner2006-02-021-18/+0
| | | | | | more logical place. Other methods should also be moved if anyoneis interested. :) llvm-svn: 25913
* Fix an off-by-one error that Nate's eagle eyes caughtChris Lattner2006-01-111-1/+1
| | | | llvm-svn: 25231
* Use the auto-insert BuildMI constructor to avoid an explicit insert. NoChris Lattner2006-01-111-28/+20
| | | | | | functionality change, just code cleanup. llvm-svn: 25230
* If a function has a non-zero sized frame, use an add to adjust the stackChris Lattner2006-01-111-9/+20
| | | | | | pointer in the epilog, not a load. llvm-svn: 25229
* New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replaceEvan Cheng2006-01-091-2/+1
| | | | | | hasInFlag, hasOutFlag. llvm-svn: 25155
* * Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.Evan Cheng2005-12-231-1/+2
| | | | | | | | * Added a pseudo instruction (for each target) that represent "return void". This is a workaround for lack of optional flag operand (return void is not lowered so it does not have a flag operand.) llvm-svn: 24997
* Add the necessary support to the ISel to allow targets to codegen the newNate Begeman2005-11-061-3/+26
| | | | | | | | alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. llvm-svn: 24224
* Fix the JIT encoding of LWA, LD, STD, and STDU.Chris Lattner2005-10-181-0/+9
| | | | llvm-svn: 23787
* First bits of 64 bit PowerPC stuff, currently disabled. A lot of this isNate Begeman2005-10-181-17/+33
| | | | | | purely mechanical. llvm-svn: 23778
* More PPC32 -> PPC changes, as well as merging some classes that wereNate Begeman2005-10-161-22/+22
| | | | | | redundant after the change. llvm-svn: 23759
* Rename PPC32*.h to PPC*.hChris Lattner2005-10-141-0/+346
This completes the grand PPC file renaming llvm-svn: 23745
OpenPOWER on IntegriCloud