summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM
Commit message (Collapse)AuthorAgeFilesLines
* clean up the asmprinter header and privatize some stuff.Chris Lattner2010-04-041-5/+5
| | | | llvm-svn: 100342
* remove TargetMachine.h #include, also, TRI isn't used frequently Chris Lattner2010-04-041-4/+5
| | | | | | enough to warrant caching in AsmPrinter, so remove it. llvm-svn: 100336
* Momentous day: remove the "O" member from AsmPrinter. Now all Chris Lattner2010-04-041-6/+3
| | | | | | | | | | "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. llvm-svn: 100327
* mcize a bunch more stuff, using EmitRawText for things weChris Lattner2010-04-041-26/+38
| | | | | | don't have mcstreamer support for yet. llvm-svn: 100319
* convert the non-MCInstPrinter'ized EmitInstruction Chris Lattner2010-04-041-14/+14
| | | | | | | implementations to use EmitRawText instead of writing directly to "O". llvm-svn: 100318
* fix PrintAsmOperand and PrintAsmMemoryOperand to pass down Chris Lattner2010-04-041-4/+7
| | | | | | raw_ostream to print to. llvm-svn: 100313
* fix an ugly wart in the MCInstPrinter api where theChris Lattner2010-04-043-7/+6
| | | | | | | | raw_ostream to print an instruction to had to be specified at MCInstPrinter construction time instead of being able to pick at each call to printInstruction. llvm-svn: 100307
* change a ton of code to not implicitly use the "O" raw_ostreamChris Lattner2010-04-043-218/+349
| | | | | | member of AsmPrinter. Instead, pass it in explicitly. llvm-svn: 100306
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-042-5/+6
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
* asmstreamerize the .size directive for function bodies, force clientsChris Lattner2010-04-031-1/+1
| | | | | | of printOffset to pass in a stream to print to. llvm-svn: 100296
* Get rid of the middleman (ARMAlgorithm), which causes more trouble than theJohnny Chen2010-04-032-86/+29
| | | | | | | abstraction it brings. And also get rid of the atexit() handler, it does not belong in the lib directory. :-) llvm-svn: 100265
* Fix comment.Johnny Chen2010-04-031-2/+2
| | | | llvm-svn: 100259
* Register ARMAlgorithm::DoCleanup() to be called on exit to free the memoryJohnny Chen2010-04-032-1/+13
| | | | | | occuplied by the cached ARMAlgorithm objects. llvm-svn: 100258
* Fix another build warning.Johnny Chen2010-04-021-0/+2
| | | | llvm-svn: 100251
* Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgenJohnny Chen2010-04-027-2/+6372
| | | | | | | | | | backend (ARMDecoderEmitter) which emits the decoder functions for ARM and Thumb, and the disassembler core which invokes the decoder function and builds up the MCInst based on the decoded Opcode. Reviewed by Chris Latter and Bob Wilson. llvm-svn: 100233
* Added support for reporting operand token rangesSean Callanan2010-04-021-71/+151
| | | | | | to the ARM AsmParser. llvm-svn: 100232
* use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()Chris Lattner2010-04-026-27/+22
| | | | llvm-svn: 100214
* Revert r100191 since it breaks objc in clang Mon P Wang2010-04-022-6/+5
| | | | llvm-svn: 100199
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-022-5/+6
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
* Teach AnalyzeBranch, RemoveBranch and the branchDale Johannesen2010-04-021-1/+14
| | | | | | | folder to be tolerant of debug info following the branch(es) at the end of a block. llvm-svn: 100168
* vml[as] are slow on 1136jf-s also.Jim Grosbach2010-04-011-1/+2
| | | | llvm-svn: 100066
* Comment the changes for r98218 and friends inside the source code.Bill Wendling2010-03-311-0/+5
| | | | llvm-svn: 100031
* Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.Bob Wilson2010-03-302-6/+5
| | | | llvm-svn: 99948
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-302-5/+6
| | | | | | | | | memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-302-5/+5
| | | | | | | | | create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
* add a note.Chris Lattner2010-03-291-0/+3
| | | | llvm-svn: 99815
* Add NVTBLFrm to represent A8.6.406 VTBL, VTBX Vector Table Lookup Instructions.Johnny Chen2010-03-292-8/+9
| | | | | | | | | | | | | These instructions use byte index in a control vector (M:Vm) to lookup byte values in a table and generate a new vector (D:Vd). The table is specified via a list of vectors, which can be: {Dn} {Dn D<n+1>} {Dn D<n+1> D<n+2>} {Dn D<n+1> D<n+2> D<n+3>} llvm-svn: 99789
* fix integer negates to use the proper type for the zero vectors,Chris Lattner2010-03-281-11/+14
| | | | | | | this also depends on the new "bitconvert dropping" behavior just added to tblgen. llvm-svn: 99757
* fix vnot matching to explicitly specify the type of theChris Lattner2010-03-281-10/+16
| | | | | | | | | input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. llvm-svn: 99754
* Fix indentation.Bob Wilson2010-03-271-34/+34
| | | | llvm-svn: 99705
* Add a format argument to the N3V and N3VX classes, removing the N3Vf class.Bob Wilson2010-03-272-198/+198
| | | | llvm-svn: 99704
* Add NVMulSLFrm to represent "3-register multiply with scalar" operations and setJohnny Chen2010-03-272-122/+130
| | | | | | | | | | | | it as the format for the appropriate N3V*SL*<> classes. These instructions require special handling of the M:Vm field which encodes the restricted Dm and the lane index within Dm. Examples are A8.6.325 VMLA, VMLAL, VMLS, VMLSL (by scalar): vmlal.s32 q3, d2, d10[0] llvm-svn: 99690
* Thumb2 storeFrom/LoadToStackSlot() need to handle tGPR regs directly, not passJim Grosbach2010-03-271-2/+2
| | | | | | | through to the generic version. The generic functions use STR/LDR, but T2 needs the t2STR/t2LDR instead so we get the addressing mode correct. llvm-svn: 99678
* Remove the duplicate multiclass N3VSh_QHSD and use N3VInt_QHSD which is modifiedJohnny Chen2010-03-261-193/+154
| | | | | | | to now take a format argument. N3VDInt<> and N3VQInt<> are modified to take a format argument as well. llvm-svn: 99676
* Add NVExtFrm to represent NEON Vector Extract Instructions, that uses Inst{11-8}Johnny Chen2010-03-262-10/+11
| | | | | | | | | to encode the byte location of the extracted result in the concatenation of the operands, from the least significant end. Modify VEXTd and VEXTq classes to use the format. llvm-svn: 99659
* Add N3RegVShFrm to represent 3-Register Vector Shift Instructions, which do notJohnny Chen2010-03-262-23/+85
| | | | | | | | | | | | | | follow the N3RegFrm's operand order of D:Vd N:Vn M:Vm. The operand order of N3RegVShFrm is D:Vd M:Vm N:Vn (notice that M:Vm is the first src operand). Add a parent class N3Vf which requires passing a Format argument and which the N3V class is modified to inherit from. N3V class represents the "normal" 3-Register NEON Instructions with N3RegFrm. Also add a multiclass N3VSh_QHSD to represent clusters of NEON 3-Register Shift Instructions and replace 8 invocations with it. llvm-svn: 99655
* vldm/vstm can only do up to 16 double-word registers at a time.Jim Grosbach2010-03-261-1/+5
| | | | | | Radar 7797856 llvm-svn: 99630
* Add N3RegFrm to represent "NEON 3 vector register format" instructions.Johnny Chen2010-03-261-2/+3
| | | | | | | Examples are VABA (Vector Absolute Difference and Accumulate), VABAL (Vector Absolute Difference and Accumulate Long), and VABD (Vector Absolute Difference). llvm-svn: 99628
* Add N2RegVShLFrm and N2RegVShRFrm formats so that the disassembler can easilyJohnny Chen2010-03-262-42/+54
| | | | | | | | | | | dispatch to the appropriate routines to handle the different interpretations of the shift amount encoded in the imm6 field. The Vd, Vm fields are interpreted the same between the two, though. See, for example, A8.6.367 VQSHL, VQSHLU (immediate) for N2RegVShLFrm format and A8.6.368 VQSHRN, VQSHRUN for N2RegVShRFrm format. llvm-svn: 99590
* switch the flag for using NEON for SP floating point to a subtarget 'feature'.Jim Grosbach2010-03-252-16/+11
| | | | | | Re-commit. This time complete with testsuite updates. llvm-svn: 99570
* need to fix 'make check' tests first. revert for a moment.Jim Grosbach2010-03-252-11/+16
| | | | llvm-svn: 99569
* switch the flag for using NEON for SP floating point to a subtarget 'feature'Jim Grosbach2010-03-252-16/+11
| | | | llvm-svn: 99568
* Removed instruction class NI from ARMInstrFormats.td.Johnny Chen2010-03-251-6/+0
| | | | | | It doesn't seem to be used anywhere. llvm-svn: 99566
* switch the use-vml[as] instructions flag to a subtarget 'feature'Jim Grosbach2010-03-253-16/+15
| | | | llvm-svn: 99565
* Add NVDupLnFrm and change NVDupLane class to use that format.Johnny Chen2010-03-251-1/+2
| | | | llvm-svn: 99557
* ARM cortex-a8 doesn't do vmla/vmls well. disable them by default for that cpuJim Grosbach2010-03-251-0/+6
| | | | llvm-svn: 99549
* Add NVCVTFrm (NEON Convert with fractional bits immediate) and modify N2VImm toJohnny Chen2010-03-252-19/+20
| | | | | | expect a Format arg. N2VCvtD/N2VCvtQ are modified to use the NVCVTFrm format. llvm-svn: 99548
* Added a new instruction class NVDupLane to be inherited by VDUPLND and VDUPLNQ,Johnny Chen2010-03-252-20/+31
| | | | | | | instead of the current N2V. Format of NVDupLane instances are set to NEONFrm currently. llvm-svn: 99518
* Make the use of the vmla and vmls VFP instructions controllable via cmd line.Jim Grosbach2010-03-245-4/+30
| | | | | | | Preliminary testing shows significant performance wins by not using these instructions. llvm-svn: 99436
* Trivial formating change.Johnny Chen2010-03-241-2/+2
| | | | llvm-svn: 99428
OpenPOWER on IntegriCloud