summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
Commit message (Collapse)AuthorAgeFilesLines
...
* add targetoperand flags for jump tables, constant pool and block addressChris Lattner2010-11-156-111/+122
| | | | | | | | | | | | | | nodes to indicate when ha16/lo16 modifiers should be used. This lets us pass PowerPC/indirectbr.ll. The one annoying thing about this patch is that the MCSymbolExpr isn't expressive enough to represent ha16(label1-label2) which we need on PowerPC. I have a terrible hack in the meantime, but this will have to be revisited at some point. Last major conversion item left is global variable references. llvm-svn: 119105
* remove some extraneous quotes to make the new instprinter match.Chris Lattner2010-11-151-2/+2
| | | | llvm-svn: 119104
* Attempt to unbreak cmake-based buildsAnton Korobeynikov2010-11-151-0/+1
| | | | llvm-svn: 119098
* First step of huge frame-related refactoring: move emit{Prologue,Epilogue} ↵Anton Korobeynikov2010-11-155-664/+702
| | | | | | 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
* implement support for the MO_DARWIN_STUB TargetOperand flag,Chris Lattner2010-11-144-35/+172
| | | | | | | | and have isel apply to to call operands as required. This allows us to get $stub suffixes on label references on ppc/tiger with the new instprinter, fixing two tests. Only 2 to go. llvm-svn: 119093
* with the picbase nonsense starting to be figured out, implementChris Lattner2010-11-141-0/+22
| | | | | | lowering support for MovePCtoLR[8]. Down to 4 failures again. llvm-svn: 119090
* move the pic base symbol stuff up to MachineFunctionChris Lattner2010-11-142-2/+3
| | | | | | | since it is trivial and will be shared between ppc and x86. This substantially simplifies the X86 backend also. llvm-svn: 119089
* reimplement ppc asmprinter "toc" handling to use a VariantKindChris Lattner2010-11-142-3/+27
| | | | | | | | on the operand, required for .o file writing and fixing the PowerPC/mult-alt-generic-powerpc64.ll failure with the new instprinter. llvm-svn: 119087
* lower PPC::MFCRpseud when transforming to MC, avoiding callingChris Lattner2010-11-142-2/+18
| | | | | | the aborting printSpecial() method. This gets us to 8 failures. llvm-svn: 119084
* make the stubbed-out printer methods abort instead of Chris Lattner2010-11-142-3/+18
| | | | | | printing nothing. This gets us back up to 24 failures. llvm-svn: 119083
* wire up a few more things, down to 4 test failures, allChris Lattner2010-11-142-19/+39
| | | | | | about handling $stub, lo/hi etc. llvm-svn: 119082
* properly wire up the instprinter to the ppc64 backend, down to 5 failures.Chris Lattner2010-11-141-1/+1
| | | | llvm-svn: 119081
* implement pretty printing support for the various pseudoChris Lattner2010-11-141-0/+45
| | | | | | | ops the asmprinter supported, fixing PowerPC/rlwimi2.ll among others. Down to 20 failures. llvm-svn: 119080
* Wire up symbol hi/lo printing. We don't print hi()/lo(), but this getsChris Lattner2010-11-142-4/+17
| | | | | | us further along. Only 28 failures now. llvm-svn: 119079
* implement basic support for symbol operand lowering,Chris Lattner2010-11-143-3/+63
| | | | | | and printing support for call operands. Down to 77 failures. llvm-svn: 119078
* switch PPC to a simplified MCInstLowering model.Chris Lattner2010-11-144-92/+13
| | | | llvm-svn: 119074
* fix PPC.h to not pull in TargetMachine.hChris Lattner2010-11-141-2/+2
| | | | llvm-svn: 119072
* implement basic support for memory operands and crbit operands,Chris Lattner2010-11-142-5/+72
| | | | | | this fixes 3 more ppc tests. llvm-svn: 119065
* implement several trivial operand printers, reducingChris Lattner2010-11-142-6/+56
| | | | | | failures in CodeGen/PowerPC from 120 -> 117 llvm-svn: 119063
* Implement support for printing register and immediate operands,Chris Lattner2010-11-143-6/+46
| | | | | | | | | | | | | | add support for darwin vs aix syntax. We now can print instructions like this: add r3, r3, r4 blr and (in aix mode): add 3, 3, 4 blr llvm-svn: 119062
* stub out PPCMCInstLowering, add a new option that uses it and the newChris Lattner2010-11-144-0/+154
| | | | | | instprinter when -enable-ppc-inst-printer is passed to llc. llvm-svn: 119061
* stub out a powerpc MCInstPrinter implementation.Chris Lattner2010-11-146-1/+144
| | | | llvm-svn: 119059
* move PPCAsmPrinter into the main PPC library, like ARM and X86.Chris Lattner2010-11-145-22/+2
| | | | llvm-svn: 119054
* In the calling convention logic, ValVT is always a legal type,Duncan Sands2010-11-041-6/+6
| | | | | | | and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. llvm-svn: 118245
* Inside the calling convention logic LocVT is always a simpleDuncan Sands2010-11-031-8/+8
| | | | | | | | | | value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. llvm-svn: 118167
* Inline asm multiple alternative constraints development phase 2 - improved ↵John Thompson2010-10-292-2/+49
| | | | | | basic logic, added initial platform support. llvm-svn: 117667
* Remove some variables that are never really usedDuncan Sands2010-10-211-1/+0
| | | | | | (gcc-4.6 warns about these). llvm-svn: 117021
* PowerPC varargs functions store live-in registers on the stack. Make sure we useJakob Stoklund Olesen2010-10-111-33/+13
| | | | | | | | | virtual registers for those stores since RegAllocFast requires that each live physreg only be used once. This fixes PR8357. llvm-svn: 116222
* fix the expansion of va_arg instruction on PPC to know the arg Chris Lattner2010-10-101-0/+4
| | | | | | | | | alignment for PPC32/64, avoiding some masking operations. llvm-gcc expands vaarg inline instead of using the instruction so it has never hit this. llvm-svn: 116168
* Make <target>CodeEmitter::getBinaryCodeForInstr() a const method.Jim Grosbach2010-10-081-3/+3
| | | | llvm-svn: 116018
* Add support to model pipeline bypass / forwarding.Evan Cheng2010-09-284-4/+4
| | | | llvm-svn: 115005
* Removed a bunch of unnecessary target_link_libraries.Oscar Fuentes2010-09-281-2/+0
| | | | llvm-svn: 114999
* fix a long standing wart: all the ComplexPattern's were beingChris Lattner2010-09-211-8/+5
| | | | | | | | | | | passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
* update a bunch of code to use the MachinePointerInfo version of getStore.Chris Lattner2010-09-211-26/+30
| | | | llvm-svn: 114461
* eliminate an old SelectionDAG::getTruncStore method, propagatingChris Lattner2010-09-211-4/+6
| | | | | | MachinePointerInfo around more. llvm-svn: 114452
* propagate MachinePointerInfo through various uses of the oldChris Lattner2010-09-211-1/+2
| | | | | | SelectionDAG::getExtLoad overload, and eliminate it. llvm-svn: 114446
* convert the targets off the non-MachinePointerInfo of getLoad.Chris Lattner2010-09-211-25/+30
| | | | llvm-svn: 114410
* reimplement memcpy/memmove/memset lowering to use MachinePointerInfoChris Lattner2010-09-211-1/+2
| | | | | | | instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. llvm-svn: 114401
* convert targets to the new MF.getMachineMemOperand interface.Chris Lattner2010-09-212-6/+9
| | | | llvm-svn: 114391
* add a readme.Chris Lattner2010-09-191-0/+25
| | | | llvm-svn: 114303
* Teach if-converter to be more careful with predicating instructions that wouldEvan Cheng2010-09-101-2/+2
| | | | | | | | | | | take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. llvm-svn: 113570
* zap dead code.Chris Lattner2010-09-043-11/+0
| | | | llvm-svn: 113073
* Simplify eliminateFrameIndex() interface back down now that PEI doesn't needJim Grosbach2010-08-262-11/+8
| | | | | | to try to re-use scavenged frame index reference registers. rdar://8277890 llvm-svn: 112241
* tyopsGabor Greif2010-08-231-1/+1
| | | | llvm-svn: 111835
* fix emacs language spec's, patch by Edmund Grimley-Evans!Chris Lattner2010-08-171-1/+1
| | | | llvm-svn: 111241
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-062-2/+2
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-062-2/+2
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-052-2/+2
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Implement target specific getDebugValueLocation().Devang Patel2010-08-041-0/+14
| | | | llvm-svn: 110256
OpenPOWER on IntegriCloud