summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Prepare ARMFastISel::SelectSIToFP for getRegForValue returning registers for ↵Eli Friedman2011-05-251-0/+4
| | | | | | i8 and i16 values. llvm-svn: 132073
* Update MaxCallFrameSize regardless of the relocation model selected.Akira Hatanaka2011-05-251-11/+11
| | | | llvm-svn: 132070
* Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() shouldAkira Hatanaka2011-05-253-7/+7
| | | | | | return 0 if there are no function calls made. llvm-svn: 132065
* Coding style fixes. Added comments.Akira Hatanaka2011-05-252-23/+16
| | | | llvm-svn: 132063
* Remove unused OpcodeMask enumerator.Francois Pichet2011-05-251-1/+0
| | | | llvm-svn: 132062
* Fix MSVC warning: "is out of range for enum constant" Francois Pichet2011-05-251-1/+1
| | | | | | | MSVC doesn't support 64 bit enum. OpcodeMask is not used anywhere in the code base. llvm-svn: 132057
* Restore an accidentally removed comment.Cameron Zwarich2011-05-251-0/+1
| | | | llvm-svn: 132044
* Move some code to a more logical place.Cameron Zwarich2011-05-251-8/+8
| | | | llvm-svn: 132043
* Make tTAILJMPr/tTAILJMPrND emit a tBX without a preceding MOV of PC to LR. ThisCameron Zwarich2011-05-251-1/+1
| | | | | | fixes <rdar://problem/9495913> llvm-svn: 132042
* Change the order of tBX's operands so that the predicate operands come after theCameron Zwarich2011-05-252-2/+11
| | | | | | | | | target register, matching BX. I filed this bug because I was confused at first: PR10007 - ARM branch instructions have inconsistent predicate operand placement <http://llvm.org/bugs/show_bug.cgi?id=10007> llvm-svn: 132041
* Rename tBX_Rm to tBX.Cameron Zwarich2011-05-252-5/+4
| | | | llvm-svn: 132040
* Rename the existing tBX/tBXr9 instructions to tBX_CALL/tBXr9_CALL to betterCameron Zwarich2011-05-252-3/+3
| | | | | | reflect their actual meaning and match the ARM instructions. llvm-svn: 132039
* Replace the -unwind-tables option with a per function flag. This is moreRafael Espindola2011-05-254-11/+4
| | | | | | | LTO friendly as we can now correctly merge files compiled with or without -fasynchronous-unwind-tables. llvm-svn: 132033
* Fix lowering of DYNAMIC_STACKALLOC nodes.Akira Hatanaka2011-05-251-2/+20
| | | | llvm-svn: 132030
* Fix PR9762Bruno Cardoso Lopes2011-05-251-0/+2
| | | | | | Enable the parsing of the operand "cpsr_all" for the ARM msr instruction llvm-svn: 132026
* Implement the arm 'L' asm modifier.Eric Christopher2011-05-241-1/+5
| | | | | | Part of rdar://9119939 llvm-svn: 132024
* Implement the immediate part of the 'B' modifier.Eric Christopher2011-05-241-0/+4
| | | | | | Part of rdar://9119939 llvm-svn: 132023
* Add more unimplemented asm modifiers and some documentation of what theyEric Christopher2011-05-241-3/+13
| | | | | | | | do. Part of rdar://9119939. llvm-svn: 132015
* Add support for the arm 'y' asm modifier.Eric Christopher2011-05-241-0/+12
| | | | | | Fixes part of rdar://9444657 llvm-svn: 132011
* Enable printing of immediates that do not fit in 16-bit. .cprestore can haveAkira Hatanaka2011-05-244-4/+4
| | | | | | offsets that are larger than 0x10000. llvm-svn: 132003
* Implement byval structure argument passing. The following limitations orAkira Hatanaka2011-05-241-5/+115
| | | | | | | | | | deficiencies exist: - Works only if ABI is o32. - Zero-sized structures cannot be passed. - There is a lot of redundancy in generated code. llvm-svn: 131986
* Remove dead code.Devang Patel2011-05-241-3/+0
| | | | llvm-svn: 131974
* Add a method to TargetRegisterInfo to get the register number that the Win64 EHCharles Davis2011-05-242-0/+24
| | | | | | | scheme uses internally. Implement it for x86 (the only architecture that LLVM supports for which this matters right now). llvm-svn: 131969
* - Teach SelectionDAG::isKnownNeverZero to return true (op x, c) when c isEvan Cheng2011-05-241-7/+17
| | | | | | | | | | non-zero. - Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero. rdar://9490949 llvm-svn: 131948
* Simplify offset calculation of stack frame objects for $gp restore location andAkira Hatanaka2011-05-241-56/+31
| | | | | | | | variable arguments in LowerCall and LowerFormalArguments. This should also fix the bug in which handling of variable arguments is incorrect when the front-end optimizes away unused fixed arguments. llvm-svn: 131942
* Expand f64 FPOW.Akira Hatanaka2011-05-231-0/+1
| | | | llvm-svn: 131928
* Add pattern for double-to-integer conversion. Patch by Sasa Stankovic.Akira Hatanaka2011-05-231-0/+1
| | | | llvm-svn: 131927
* Fixes related to coding style.Akira Hatanaka2011-05-231-36/+36
| | | | llvm-svn: 131922
* Fix MipsAsmPrinter::printSavedRegsBitmaskChange. Remove functions and variablesAkira Hatanaka2011-05-232-38/+40
| | | | | | in MipsFunctionInfo that are no longer used. llvm-svn: 131917
* clarify this, apparently it is confusing :)Chris Lattner2011-05-231-1/+3
| | | | llvm-svn: 131916
* Change StackDirection from StackGrowsUp to StackGrowsDown.Akira Hatanaka2011-05-235-212/+60
| | | | | | | | | | | | | | | | The following improvements are accomplished as a result of applying this patch: - Fixed frame objects' offsets (relative to either the virtual frame pointer or the stack pointer) are set before instruction selection is completed. There is no need to wait until Prologue/Epilogue Insertion is run to set them. - Calculation of final offsets of fixed frame objects is straightforward. It is no longer necessary to assign negative offsets to fixed objects for incoming arguments in order to distinguish them from the others. - Since a fixed object has its relative offset set during instruction selection, there is no need to conservatively set its alignment to 4. - It is no longer necessary to reorder non-fixed frame objects in MipsFrameLowering::adjustMipsStackFrame. llvm-svn: 131915
* Fix <rdar://problem/9476260> by having tail calls always generate 32-bit ↵Cameron Zwarich2011-05-231-1/+3
| | | | | | | | branches in Darwin Thumb2 code. Tail calls are already disabled on Thumb1. llvm-svn: 131894
* add a missing alias to make us more bug compatible with gcc, PR9378Chris Lattner2011-05-221-0/+1
| | | | llvm-svn: 131874
* RTABI chapter 4.3.4 specifies __eabi_mem* calls. Specifically, __eabi_memset ↵Renato Golin2011-05-223-0/+79
| | | | | | accepts parameters (ptr, size, value) in a different order than GNU's memset (ptr, value, size), therefore the special lowering in AAPCS mode. Implementation by Evzen Muller. llvm-svn: 131868
* add a note.Chris Lattner2011-05-221-0/+10
| | | | llvm-svn: 131863
* Fix Bug 9386 - ARM disassembler failed to disassemble conditional bxJohnny Chen2011-05-222-3/+13
| | | | | | | Modified the patch to .td file supplied by Jyun-Yan You. Add a test case and modified ARMDisassemblerCore.cpp a little bit. llvm-svn: 131859
* move PR9408 here.Chris Lattner2011-05-221-0/+40
| | | | llvm-svn: 131841
* add a copy ctor to TargetLibraryInfo.Chris Lattner2011-05-211-0/+6
| | | | llvm-svn: 131806
* X86: smulo -> add is now done target-independently in DAGCombiner, remove ↵Benjamin Kramer2011-05-211-6/+0
| | | | | | the patterns. llvm-svn: 131801
* Fix PR9978 by adding RIP to GR64_TC so it can be used as an address in PIC ↵Cameron Zwarich2011-05-211-1/+1
| | | | | | | | | code. It is already in GR64 for the same reasons. Since it isn't allocatable it can't cause any problems. llvm-svn: 131787
* Use the correct register to access stack frame objects.Akira Hatanaka2011-05-211-10/+31
| | | | llvm-svn: 131785
* Insert instructions that copy $sp to or from $fp at the right locations. Akira Hatanaka2011-05-211-11/+26
| | | | llvm-svn: 131784
* Change the order fixed objects are created in MipsTargetLowering::LowerCall inAkira Hatanaka2011-05-201-25/+35
| | | | | | | | | | | | | | preparation for reversing StackDirection. Fixed objects are created in the following order: 1. Incoming arguments passed on stack. 2. va_arg objects (include both arguments that are passed in registers and pointer to the location of the first va_arg argument). 3. $gp restore slot. 4. Outgoing arguments passed on stack. 5. Pointer to alloca'd space. llvm-svn: 131767
* Add fast-isel support for byval calls on x86.Eli Friedman2011-05-201-17/+51
| | | | llvm-svn: 131764
* In CC_MipsO32, allocate a stack space regardless of whether the argument isAkira Hatanaka2011-05-201-22/+25
| | | | | | passed in register or on the stack. llvm-svn: 131758
* Define functions that get/set maximum call frame size.Akira Hatanaka2011-05-201-1/+6
| | | | llvm-svn: 131752
* adds some attributes to attribute section when cpu is "xscale"Rafael Espindola2011-05-201-0/+6
| | | | | | | | (this is what used in Android NDK, when architecture is ARMv5) patch by Koan-Sin Tan llvm-svn: 131751
* fixes target address tBL and tBLX and sets relocation typeRafael Espindola2011-05-201-2/+2
| | | | | | | | of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6) Patch by koan-sin tan. llvm-svn: 131748
* Re-commit 131641 with fixes; de-pseudoize MOVSX16rr8 and friends.Stuart Hastings2011-05-205-50/+38
| | | | | | rdar://problem/8614450 llvm-svn: 131746
* Make $fp and $ra callee-saved registers and let PrologEpilogInserter handleAkira Hatanaka2011-05-205-101/+37
| | | | | | saving and restoring them. llvm-svn: 131745
OpenPOWER on IntegriCloud