summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used ↵Benjamin Kramer2009-08-161-1/+4
| | | | | | after erasure. llvm-svn: 79189
* Styalistic and format changes. No functionality change.Bill Wendling2009-08-161-73/+85
| | | | llvm-svn: 79187
* add support for external symbols + X86::MOVPC32r.Chris Lattner2009-08-162-59/+123
| | | | llvm-svn: 79175
* implement support for lowering references to global addresses. For example, ↵Chris Lattner2009-08-162-5/+53
| | | | | | | | | | | | | we now can asmprint: NEW: movl "L___stack_chk_guard$non_lazy_ptr", %eax OLD: movl L___stack_chk_guard$non_lazy_ptr, %eax where 'new' is coming out of the MCInst version of the printer. llvm-svn: 79170
* more formatting improvements, no functionality change.Chris Lattner2009-08-161-57/+65
| | | | llvm-svn: 79167
* code formatting improvements, no functionality change.Chris Lattner2009-08-161-74/+85
| | | | llvm-svn: 79165
* An overhaul of the exception handling code. This is arguably more correct thanBill Wendling2009-08-151-55/+81
| | | | | | | | | | | | | what was there before. In "no FP mode", we weren't generating labels and unwind table entries after each "push" instruction. While more than likely "okay", it's not technically correct. The major thing was that the ordering of when to define a new CFA register and at what offset wasn't correct. This would cause the exception handling to fail in ways most miserable to users. I also cleaned up some code a bit. There's one function which has a "return" at the beginning, so it's never used. Should I just remove it? :-) llvm-svn: 79139
* Reapply r79127. It was fixed by d0k.Bill Wendling2009-08-155-9/+43
| | | | llvm-svn: 79136
* Revert r79127. It was causing compilation errors.Bill Wendling2009-08-155-43/+9
| | | | llvm-svn: 79135
* Change allowsUnalignedMemoryAccesses to take type argument since some targetsEvan Cheng2009-08-155-9/+43
| | | | | | | | | | support unaligned mem access only for certain types. (Should it be size instead?) ARM v7 supports unaligned access for i16 and i32, some v6 variants support it as well. llvm-svn: 79127
* the .eh_frame sections we generate need to be writable (whichChris Lattner2009-08-151-1/+2
| | | | | | | is why they are datarel). This should fix PR4724, and is fallout from r78890. llvm-svn: 79111
* Use the new API for creating an OpaqueType.Nicolas Geoffray2009-08-151-2/+4
| | | | llvm-svn: 79107
* tidy upChris Lattner2009-08-151-1/+2
| | | | llvm-svn: 79101
* Update cpp generation with new LLVM API for primitive types.Nicolas Geoffray2009-08-151-6/+7
| | | | llvm-svn: 79098
* Revert a few changes that were done in 78603.Sanjiv Gupta2009-08-152-14/+15
| | | | | | | | PIC16DebugInfo currently rely on NameStr of composite type descriptors to uniquely identify debug info for two aggregate type decls with same name. This implementation will change when we have MDNodes based debug info implemenatation in place llvm-svn: 79097
* Move XCore AsmPrinter to XCore/AsmPrinter directory.Richard Osborne2009-08-156-9/+32
| | | | llvm-svn: 79094
* Add support for the PowerPC 64-bit SVR4 ABI.Tilmann Scheller2009-08-159-72/+361
| | | | | | | | | | | | | | | | | 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
* Turn on if-conversion for thumb2.Evan Cheng2009-08-159-51/+57
| | | | llvm-svn: 79084
* update for rename.Chris Lattner2009-08-151-2/+2
| | | | llvm-svn: 79082
* rename PIC16Section.h -> MCSectionPIC16.h for consistency withChris Lattner2009-08-153-2/+2
| | | | | | the class it defines. llvm-svn: 79081
* cmake likes its explicit list of files to build.Chris Lattner2009-08-151-0/+1
| | | | llvm-svn: 79080
* use XCore-specific section with xcore specific cp/dp flags to restore Chris Lattner2009-08-151-14/+26
| | | | | | | | support for globals going into the appropriate sections with the flags. This hopefully finishes unbreaking the previous behavior that I broke before. llvm-svn: 79079
* If ELF subtargets don't want to support 4/8/16-byte mergable sections, allow Chris Lattner2009-08-151-3/+3
| | | | | | them to null out the default section pointers. llvm-svn: 79078
* add support for target-specific ELF section flags, add a new MCSectionXCoreChris Lattner2009-08-152-0/+89
| | | | | | | class which represents the XCore cp/dp section flags. No functionality change yet. llvm-svn: 79077
* Simplify a few more things, eliminating a few more dependencies onDan Gohman2009-08-152-3/+1
| | | | | | "the current basic block". llvm-svn: 79069
* Do not use frame register to reference fixed stack objects if the function ↵Evan Cheng2009-08-152-13/+14
| | | | | | is frameless. llvm-svn: 79067
* On x86-64, for a varargs function, don't store the xmm registers toDan Gohman2009-08-153-18/+126
| | | | | | | the register save area if %al is 0. This avoids touching xmm regsiters when they aren't actually used. llvm-svn: 79061
* Leaf functions which do not save CSRs can be frameless even with ↵Evan Cheng2009-08-142-1/+10
| | | | | | -disable-fp-elim. llvm-svn: 79039
* Allow targets to specify their choice of calling conventions perAnton Korobeynikov2009-08-142-1/+10
| | | | | | | | | | libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! llvm-svn: 79033
* Add Thumb2 lsr hooks.Evan Cheng2009-08-142-36/+106
| | | | llvm-svn: 79032
* CMake: Corrected variable check.Oscar Fuentes2009-08-141-1/+1
| | | | llvm-svn: 79030
* 80 col violation.Evan Cheng2009-08-141-1/+2
| | | | llvm-svn: 79026
* Cleanup the mess in msp430 target registration and hopefully unbreak the buildAnton Korobeynikov2009-08-142-5/+10
| | | | llvm-svn: 79024
* Indentation.Evan Cheng2009-08-141-1/+1
| | | | llvm-svn: 79022
* Hopefully unbreak cmake buildsAnton Korobeynikov2009-08-141-3/+2
| | | | llvm-svn: 79015
* Also shrink immediate branches; also more assembler workarounds.Evan Cheng2009-08-142-11/+59
| | | | llvm-svn: 79014
* Give MSP430 a separate asmprinter libAnton Korobeynikov2009-08-144-2/+23
| | | | llvm-svn: 79012
* Properly handle indirect win64 args when they're passed in memoryAnton Korobeynikov2009-08-141-2/+10
| | | | llvm-svn: 79009
* Get the CPP backend into some semblance of working by updating for numerous ↵Owen Anderson2009-08-141-10/+14
| | | | | | | | LLVMContext changes, as well as the StringRef change. llvm-svn: 79006
* Now that all the legal Neon shuffles (or at least the ones that have beenBob Wilson2009-08-141-1/+1
| | | | | | | implemented so far) are recognized during legalization, it is easy to fall back to the default expansion for other shuffles. llvm-svn: 78995
* Create a new ARM-specific DAG node, VDUP, to represent a splat from aBob Wilson2009-08-143-26/+19
| | | | | | | scalar_to_vector. Generate these VDUP nodes during legalization instead of trying to recognize the pattern during selection. llvm-svn: 78994
* During legalization, change Neon vdup_lane operations from shuffles toBob Wilson2009-08-144-61/+33
| | | | | | | | target-specific VDUPLANE nodes. This allows the subreg handling for the quad-register version to be done easily with Pats in the .td file, instead of with custom code in ARMISelDAGToDAG.cpp. llvm-svn: 78993
* Update llvm-mc / MCAsmStreamer to print the instruction using the actual targetDaniel Dunbar2009-08-141-4/+2
| | | | | | | | | | | specific printer (this only works on x86, for now). - This makes it possible to do some correctness checking of the parsing and matching, since we can compare the results of 'as' on the original input, to those of 'as' on the output from llvm-mc. - In theory, we could now have an easy ATT -> Intel syntax converter. :) llvm-svn: 78986
* Add virtual printMCInst method to AsmPrinter, as a quick way to expose the APIDaniel Dunbar2009-08-141-0/+2
| | | | | | to print one instruction. llvm-svn: 78985
* Add X86 instruction printer support for printing MCValue operands.Daniel Dunbar2009-08-141-0/+8
| | | | llvm-svn: 78984
* Shrink ADR and LDR from constantpool late during constantpool island pass.Evan Cheng2009-08-144-16/+79
| | | | llvm-svn: 78970
* New entry.Evan Cheng2009-08-141-0/+3
| | | | llvm-svn: 78968
* Make these matching rules more strict so that they don'tDan Gohman2009-08-141-3/+3
| | | | | | accidentally match unrelated things. llvm-svn: 78966
* TargetRegistry: Change AsmPrinter constructor to be typed as returning anDaniel Dunbar2009-08-132-8/+8
| | | | | | AsmPrinter instance (instead of just a FunctionPass) llvm-svn: 78962
* Remove HasCrazyBSS and add a flag in TAI to indicate that '.section' Bruno Cardoso Lopes2009-08-134-3/+7
| | | | | | must be emitted for PowerPC-Linux '.bss' section llvm-svn: 78958
OpenPOWER on IntegriCloud