summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Select add FI, c correctly.Evan Cheng2007-02-061-1/+6
| | | | llvm-svn: 33960
* - Store val, [sp, c] must be selected to tSTRsp.Evan Cheng2007-02-061-4/+34
| | | | | | | - If c does not fit in the offset field, materialize sp + c into a register using tADDhirr. llvm-svn: 33944
* Change the operand orders to t_addrmode_s* to make it easier to morphEvan Cheng2007-01-301-15/+15
| | | | | | | instructions that use these address modes to instructions that use t_addrmode_sp. llvm-svn: 33651
* Use PC relative ldr to load from a constantpool in Thumb mode.Evan Cheng2007-01-241-8/+17
| | | | llvm-svn: 33484
* Allow [ fi#c, imm ] as ARM load / store addresses.Evan Cheng2007-01-241-25/+39
| | | | llvm-svn: 33474
* Various Thumb mode load / store isel bug fixes.Evan Cheng2007-01-241-13/+38
| | | | llvm-svn: 33472
* - Reorg Thumb load / store instructions. Combine each rr and ri pair ofEvan Cheng2007-01-231-21/+38
| | | | | | | | | instructions into one (e.g. tLDRrr, tLDRri -> tLDR). - Thumb ldrsb and ldrsh only have the [reg, reg] address format. If the address is not an add, materialize a 0 immediate into a register and use it as the offset field. llvm-svn: 33470
* ARM backend contribution from Apple.Evan Cheng2007-01-191-986/+450
| | | | llvm-svn: 33353
* Build constants using instructions mov/orr or mvn/eor.Lauro Ramos Venancio2007-01-121-20/+74
| | | | llvm-svn: 33141
* Expand SELECT (f32/f64) and FCOPYSIGN (f32/f64).Lauro Ramos Venancio2007-01-041-0/+5
| | | | llvm-svn: 32870
* implement missing comparesRafael Espindola2006-12-311-37/+66
| | | | | | | patch by Lauro bug fixed by me llvm-svn: 32795
* For PR950:Reid Spencer2006-12-311-1/+1
| | | | | | | | | | | | | | | | | | Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. llvm-svn: 32788
* fix commentRafael Espindola2006-12-291-1/+1
| | | | llvm-svn: 32767
* Implement SELECT_CC (f32/f64) for ARM.Lauro Ramos Venancio2006-12-281-1/+3
| | | | llvm-svn: 32762
* avoid using a constant table when a constant can be used inlineRafael Espindola2006-12-141-24/+82
| | | | llvm-svn: 32580
* more general matching of the MVN instructionRafael Espindola2006-12-121-26/+11
| | | | llvm-svn: 32484
* don't use "ordinary" addressing mode 1 when mvn is appropriateRafael Espindola2006-12-121-0/+2
| | | | llvm-svn: 32482
* use MVN to handle small negative constantsRafael Espindola2006-12-121-0/+21
| | | | llvm-svn: 32459
* What should be the last unnecessary <iostream>s in the library.Bill Wendling2006-12-071-1/+0
| | | | llvm-svn: 32333
* expand memmove and memcpyRafael Espindola2006-12-051-0/+2
| | | | llvm-svn: 32226
* add support for the "r" asm constraintRafael Espindola2006-12-051-0/+27
| | | | | | patch by Lauro Ramos Venancio llvm-svn: 32224
* implement load effective address similar to the alpha backendRafael Espindola2006-11-091-34/+11
| | | | | | remove lea_addri and the now unused memri addressing mode llvm-svn: 31592
* Match tblegen changes.Evan Cheng2006-11-081-10/+16
| | | | llvm-svn: 31571
* initial implementation of addressing mode 2Rafael Espindola2006-11-081-1/+31
| | | | | | TODO: fix lea_addri llvm-svn: 31552
* move ARMCondCodeToString to ARMAsmPrinter.cppRafael Espindola2006-11-021-2/+0
| | | | | | remove unused variables from lowerCall llvm-svn: 31378
* All targets expand BR_JT for now.Evan Cheng2006-10-301-1/+2
| | | | llvm-svn: 31294
* initial support for frame pointersRafael Espindola2006-10-261-0/+3
| | | | llvm-svn: 31197
* expand ISD::VACOPYRafael Espindola2006-10-241-0/+1
| | | | llvm-svn: 31170
* expand ISD::MEMSETRafael Espindola2006-10-231-0/+3
| | | | llvm-svn: 31137
* For PR950:Reid Spencer2006-10-201-2/+1
| | | | | | | | This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. llvm-svn: 31063
* expand SIGN_EXTEND_INREGRafael Espindola2006-10-191-0/+4
| | | | llvm-svn: 31046
* expand brind so that we don't have to implement jump tables right nowRafael Espindola2006-10-191-0/+1
| | | | llvm-svn: 31045
* implement CallingConv::Fast as CallingConv::CRafael Espindola2006-10-181-1/+3
| | | | llvm-svn: 31034
* expand ISD::SDIV, ISD::UDIV, ISD::SREM and ISD::UREMRafael Espindola2006-10-171-0/+4
| | | | llvm-svn: 31014
* initial implementation of addressing mode 5Rafael Espindola2006-10-171-0/+9
| | | | llvm-svn: 31002
* expand ISD::SHL_PARTS, ISD::SRA_PARTS and ISD::SRL_PARTSRafael Espindola2006-10-161-4/+11
| | | | llvm-svn: 30987
* expand ISD::BRCONDRafael Espindola2006-10-141-0/+2
| | | | llvm-svn: 30963
* fix some fp condition codesRafael Espindola2006-10-141-32/+28
| | | | | | use non trapping comparison instructions llvm-svn: 30962
* Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.Evan Cheng2006-10-131-5/+5
| | | | llvm-svn: 30945
* implement calls to functions that return longRafael Espindola2006-10-131-9/+16
| | | | llvm-svn: 30929
* implement unordered floating point comparesRafael Espindola2006-10-131-27/+68
| | | | llvm-svn: 30928
* uint <-> double conversionRafael Espindola2006-10-101-0/+18
| | | | llvm-svn: 30862
* add double <-> int conversionRafael Espindola2006-10-101-0/+18
| | | | llvm-svn: 30858
* compare doublesRafael Espindola2006-10-101-2/+2
| | | | llvm-svn: 30856
* initial support for fp compares. Unordered compares not implemented yetRafael Espindola2006-10-101-10/+40
| | | | llvm-svn: 30854
* Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.Evan Cheng2006-10-091-3/+2
| | | | llvm-svn: 30844
* expand ISD::SELECTRafael Espindola2006-10-091-0/+2
| | | | llvm-svn: 30829
* expand ISD::EXTLOADRafael Espindola2006-10-091-0/+2
| | | | llvm-svn: 30827
* implement FUITOS and FUITODRafael Espindola2006-10-071-0/+22
| | | | llvm-svn: 30803
* add optional input flag to FMRRDRafael Espindola2006-10-061-2/+2
| | | | llvm-svn: 30774
OpenPOWER on IntegriCloud