summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Drop dead includesAnton Korobeynikov2008-04-231-3/+0
| | | | llvm-svn: 50192
* Adjust option names for C++ backendAnton Korobeynikov2008-04-231-11/+11
| | | | llvm-svn: 50190
* First step of implementing PR1538: move llvm2cpp logic to new 'target'Anton Korobeynikov2008-04-233-0/+2026
| | | | llvm-svn: 50189
* Initial CBE support for multiple return values.Dan Gohman2008-04-231-0/+30
| | | | llvm-svn: 50187
* Fix typoAnton Korobeynikov2008-04-231-1/+1
| | | | llvm-svn: 50169
* Only allow increase of max alignment valueAnton Korobeynikov2008-04-231-1/+2
| | | | llvm-svn: 50168
* Be over-conservative: scan for all used virtual registers and calculate ↵Anton Korobeynikov2008-04-232-2/+11
| | | | | | maximal stack alignment in assumption, that there will be spill of vector register. llvm-svn: 50167
* Add X86 Maximal Stack Alignment Calculator Pass before RAAnton Korobeynikov2008-04-234-9/+43
| | | | llvm-svn: 50166
* Do proper book-keeping of offsets and prologue/epilogue code for stack ↵Anton Korobeynikov2008-04-231-44/+81
| | | | | | realignment llvm-svn: 50163
* If stack realignment is used - incoming args will use EBP as base register ↵Anton Korobeynikov2008-04-231-9/+28
| | | | | | and locals - ESP llvm-svn: 50162
* Eastimate required stack alignment early, so we can decide, whether we will ↵Anton Korobeynikov2008-04-232-0/+21
| | | | | | need frame pointer or not llvm-svn: 50161
* CleanupAnton Korobeynikov2008-04-231-1/+3
| | | | llvm-svn: 50159
* SimplifyAnton Korobeynikov2008-04-231-26/+16
| | | | llvm-svn: 50158
* Make stack alignment options global for all targetsAnton Korobeynikov2008-04-233-9/+15
| | | | llvm-svn: 50157
* Provide option for enabling-disabling stack realignmentAnton Korobeynikov2008-04-231-2/+8
| | | | llvm-svn: 50156
* Disable stack realignment for functions with dynamic-sized alloca'sAnton Korobeynikov2008-04-231-1/+4
| | | | llvm-svn: 50155
* Provide ABI-correct stack alignmentAnton Korobeynikov2008-04-231-5/+3
| | | | llvm-svn: 50154
* Provide convenient helpers for some operationsAnton Korobeynikov2008-04-232-64/+88
| | | | llvm-svn: 50153
* Whitespace cleanupAnton Korobeynikov2008-04-231-28/+26
| | | | llvm-svn: 50152
* Implement an x86-64 ABI detail of passing structs by hidden firstDan Gohman2008-04-213-2/+67
| | | | | | | | | | | argument. The x86-64 ABI requires the incoming value of %rdi to be copied to %rax on exit from a function that is returning a large C struct. Also, add a README-X86-64 entry detailing the missed optimization opportunity and proposing an alternative approach. llvm-svn: 50075
* Fix the encoding of the MMX movd that moves from MMX to 64-bit GPR.Dan Gohman2008-04-211-1/+1
| | | | llvm-svn: 50053
* Add an ugly note.Chris Lattner2008-04-211-0/+35
| | | | llvm-svn: 50029
* Don't forget to update the current operand when getting the size of an ↵Nicolas Geoffray2008-04-201-4/+14
| | | | | | instruction. llvm-svn: 50007
* A better fix for my previous patch, MOVZQI2PQIrr just requires SSE2.Chris Lattner2008-04-201-1/+1
| | | | llvm-svn: 49986
* Switch to using Simplified ConstantFP::get API.Chris Lattner2008-04-201-21/+16
| | | | llvm-svn: 49977
* 64-bit atomic operations.Evan Cheng2008-04-194-56/+80
| | | | llvm-svn: 49949
* Also LXCHG64 -> XCHG64rm.Evan Cheng2008-04-191-3/+3
| | | | llvm-svn: 49948
* PPC32 atomic operations.Evan Cheng2008-04-193-2/+184
| | | | llvm-svn: 49947
* xchg which references a memory operand does not need to lock prefix. ↵Evan Cheng2008-04-191-14/+15
| | | | | | Atomicity is guaranteed. llvm-svn: 49946
* Fix the handling of va_copy on x86-64. As of llvm-gcc r49920Dan Gohman2008-04-181-14/+4
| | | | | | | llvm-gcc is now lowering va_copy on x86-64, so this completes the fix for PR2230. llvm-svn: 49922
* - Fix atomic operation JIT encoding.Evan Cheng2008-04-183-54/+30
| | | | | | - Remove unused instructions. llvm-svn: 49921
* Also support Intel asm syntax.Evan Cheng2008-04-171-20/+20
| | | | llvm-svn: 49878
* Fix assembly code for atomic operations.Evan Cheng2008-04-171-18/+18
| | | | llvm-svn: 49869
* Don't forget about sub-register indices when rematting instructions.Evan Cheng2008-04-161-0/+13
| | | | llvm-svn: 49830
* Unbreak build on x86-64.Dale Johannesen2008-04-161-1/+1
| | | | llvm-svn: 49822
* Correlate stubs with functions in JIT: when emitting a stub, the JIT tells ↵Nicolas Geoffray2008-04-168-31/+46
| | | | | | | | the memory manager which function the stub will resolve. llvm-svn: 49814
* Infrastructure for getting the machine code size of a function and an ↵Nicolas Geoffray2008-04-1612-208/+612
| | | | | | instruction. X86, PowerPC and ARM are implemented llvm-svn: 49809
* Initialize X863DNowLevel.Evan Cheng2008-04-161-0/+1
| | | | llvm-svn: 49808
* Ongoing work on improving the instruction selection infrastructure:Roman Levenstein2008-04-161-6/+6
| | | | | | | | | | Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. llvm-svn: 49795
* Add support for the form of the SSE41 extractps instruction thatDan Gohman2008-04-162-5/+6
| | | | | | puts its result in a 32-bit GPR. llvm-svn: 49762
* Recreate the size SDNode instead of reusing the old one in the x86Dan Gohman2008-04-161-2/+2
| | | | | | | | memcpy lowering code; this ensures that the size node has the desired result type. This fixes a regression from r49572 with @llvm.memcpy.i64 on x86-32. llvm-svn: 49761
* Remove X86_64SRet; it isn't used anymore.Dan Gohman2008-04-161-11/+0
| | | | llvm-svn: 49759
* Add movd instructions to move from MMX registersDan Gohman2008-04-151-0/+12
| | | | | | to 64-bit GPR registers on x86-64. llvm-svn: 49757
* Change Divided flag to Split, as suggested by EvanNicolas Geoffray2008-04-151-2/+2
| | | | llvm-svn: 49715
* Remove unnecessary <sstream> includes.Dan Gohman2008-04-141-1/+0
| | | | llvm-svn: 49681
* Fix const-correctness issues with the SrcValue handling in theDan Gohman2008-04-144-10/+10
| | | | | | memory intrinsic expansion code. llvm-svn: 49666
* Reverse sense of unwind-tables option. This meansDale Johannesen2008-04-143-6/+6
| | | | | | | stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. llvm-svn: 49663
* Add a divided flag for the first piece of an argument divided into mulitple ↵Nicolas Geoffray2008-04-131-12/+12
| | | | | | parts. Fixes PR1643 llvm-svn: 49611
* Provide option for stack alignment overrideAnton Korobeynikov2008-04-121-0/+7
| | | | llvm-svn: 49593
* This patch corrects the handling of byval arguments for tailcallArnold Schwaighofer2008-04-122-29/+148
| | | | | | | | | | | | | | | | | | | | | | optimized x86-64 (and x86) calls so that they work (... at least for my test cases). Should fix the following problems: Problem 1: When i introduced the optimized handling of arguments for tail called functions (using a sequence of copyto/copyfrom virtual registers instead of always lowering to top of the stack) i did not handle byval arguments correctly e.g they did not work at all :). Problem 2: On x86-64 after the arguments of the tail called function are moved to their registers (which include ESI/RSI etc), tail call optimization performs byval lowering which causes xSI,xDI, xCX registers to be overwritten. This is handled in this patch by moving the arguments to virtual registers first and after the byval lowering the arguments are moved from those virtual registers back to RSI/RDI/RCX. llvm-svn: 49584
OpenPOWER on IntegriCloud