summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Adding the missing implementation of Bitfield's "clear" and "insert".Shih-wei Liao2010-05-261-4/+9
| | | | | | Fixing http://llvm.org/bugs/show_bug.cgi?id=7222. llvm-svn: 104653
* To handle s* registers in emitVFPLoadStoreMultipleInstruction().Shih-wei Liao2010-05-261-7/+12
| | | | | | Fixing http://llvm.org/bugs/show_bug.cgi?id=7221. llvm-svn: 104652
* Add missing implementation to the materialization of VFP misc. instructions ↵Zonr Chang2010-05-251-0/+43
| | | | | | (vmrs, vmsr and vmov (immediate)) llvm-svn: 104588
* Add support to MOVimm32 using movt/movw for ARM JITZonr Chang2010-05-251-1/+94
| | | | llvm-svn: 104587
* Fix -Wcast-qual warnings.Dan Gohman2010-04-171-4/+5
| | | | llvm-svn: 101655
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-151-7/+9
| | | | llvm-svn: 101334
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-071-2/+2
| | | | llvm-svn: 100709
* Clean up whitespace.Bob Wilson2010-03-171-16/+12
| | | | llvm-svn: 98769
* Remove redundant writeback flag in ARM addressing mode 5.Bob Wilson2010-03-161-1/+1
| | | | llvm-svn: 98648
* Remove the writeback flag from ARM's address mode 4. Now that we have separateBob Wilson2010-03-161-1/+1
| | | | | | instructions for ld/st with writeback, the flag is completely redundant. llvm-svn: 98643
* change the DBG_LABEL MachineInstr to always be createdChris Lattner2010-03-141-2/+0
| | | | | | with an MCSymbol instead of an immediate. llvm-svn: 98481
* change the LabelSDNode to be EHLabelSDNode and make it holdChris Lattner2010-03-141-1/+3
| | | | | | | | an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". llvm-svn: 98463
* change EH related stuff (other than EH_LABEL) to use MCSymbolChris Lattner2010-03-141-2/+4
| | | | | | | | | | | | | | | | instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. llvm-svn: 98459
* Attempt to appease the arm-linux buildbot by fixing the JIT encodings for newBob Wilson2010-03-131-9/+24
| | | | | | base register updating load/store-multiple instructions. llvm-svn: 98427
* Fix ARM buildbot breakage.Bob Wilson2010-03-111-2/+2
| | | | llvm-svn: 98215
* Fix an obvious typo in an assert.Bob Wilson2010-03-101-1/+1
| | | | | | Patch by Sean Callanan. llvm-svn: 98200
* Initial bits of ARMv4-only support.Anton Korobeynikov2010-03-061-1/+1
| | | | | | Patch by John Tytgat! llvm-svn: 97886
* move target-independent opcodes out of TargetInstrInfoChris Lattner2010-02-091-5/+5
| | | | | | | | | into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687
* tidy some targets.Chris Lattner2010-02-021-2/+0
| | | | llvm-svn: 95146
* detemplatize ARM code emitter.Chris Lattner2010-02-021-111/+57
| | | | llvm-svn: 95138
* remove dead code.Chris Lattner2010-02-021-11/+2
| | | | llvm-svn: 95134
* prep work to support a future where getJumpTableInfo will returnChris Lattner2010-01-251-1/+2
| | | | | | | a null pointer for functions with no jump tables. No functionality change. llvm-svn: 94469
* Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.Dan Gohman2009-11-231-1/+0
| | | | | | | | Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
* Make the need-stub variables accurate and consistent. In the case ofJeffrey Yasskin2009-11-071-4/+5
| | | | | | | | | | | | | MachineRelocations, "stub" always refers to a far-call stub or a load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs are used for lazy compilation and dlsym address replacement.) The variable was also inconsistent between the positive and negative sense, and the positive sense ("NeedStub") was more demanding than is accurate (since a nearby-enough function can be called directly even if the platform often requires a stub). Since the negative sense causes double-negatives, I switched to "MayNeedFarStub" globally. llvm-svn: 86363
* Add support for BlockAddress values in ARM constant pools.Bob Wilson2009-11-021-0/+1
| | | | llvm-svn: 85806
* Remove includes of Support/Compiler.h that are no longer needed after theNick Lewycky2009-10-251-1/+0
| | | | | | VISIBILITY_HIDDEN removal. llvm-svn: 85043
* Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.Nick Lewycky2009-10-251-2/+1
| | | | | | | Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
* Update processDebugLoc() so that it can be used to process debug info before ↵Devang Patel2009-10-061-1/+2
| | | | | | and after printing an instruction. llvm-svn: 83363
* strength reduce a ton of type equality tests to check the typeid (ThroughChris Lattner2009-10-051-2/+2
| | | | | | | | the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. llvm-svn: 83297
* Update ARM JIT emitter to account for ld/st multiple changes.Evan Cheng2009-10-011-3/+3
| | | | llvm-svn: 83192
* Introduce the TargetInstrInfo::KILL machine instruction and get rid of theJakob Stoklund Olesen2009-09-281-0/+1
| | | | | | | | | | unused DECLARE instruction. KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers. llvm-svn: 83006
* Make ARM and Thumb2 32-bit immediate materialization into a single 32-bit pseudoEvan Cheng2009-09-281-1/+2
| | | | | | | | | instruction. This makes it re-materializable. Thumb2 will split it back out into two instructions so IT pass will generate the right mask. Also, this expose opportunies to optimize the movw to a 16-bit move. llvm-svn: 82982
* Register the MachineModuleInfo for the ARM JIT, and update JITDwarfEmitter toDaniel Dunbar2009-09-211-0/+7
| | | | | | assert if the setModuleInfo hasn't been called. llvm-svn: 82441
* Proper support of non-lazy indirect symbols.Evan Cheng2009-09-101-8/+18
| | | | llvm-svn: 81422
* Fix double load / store multiple encoding.Evan Cheng2009-09-091-1/+1
| | | | llvm-svn: 81403
* Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a ↵Evan Cheng2009-08-281-9/+2
| | | | | | bunch of nasty code in ARM asm printer. llvm-svn: 80404
* eliminate the last DOUTs from the targets.Chris Lattner2009-08-231-13/+8
| | | | llvm-svn: 79833
* remove various std::ostream version of printing methods fromChris Lattner2009-08-231-4/+4
| | | | | | | | MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) llvm-svn: 79813
* Record variable debug info at ISel time directly.Devang Patel2009-08-221-1/+0
| | | | llvm-svn: 79742
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-2/+2
| | | | llvm-svn: 78948
* Whitespace cleanup. Remove trailing whitespace.Jim Grosbach2009-08-111-9/+9
| | | | llvm-svn: 78666
* llvm_report_error already prints "LLVM ERROR:". So stop reporting errors ↵Benjamin Kramer2009-08-031-1/+1
| | | | | | like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:". llvm-svn: 77971
* More migration to raw_ostream, the water has dried up around the iostream hole.Daniel Dunbar2009-07-251-10/+11
| | | | | | | | | | - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. llvm-svn: 77019
* ARM code emitter can't handle Thumb2 instructions yet. So don't even try.Evan Cheng2009-07-251-4/+3
| | | | llvm-svn: 77018
* Get rid one of the getRegisterNumbering. Also add D16 - D31.Evan Cheng2009-07-221-3/+3
| | | | llvm-svn: 76725
* r76102 added the MachineCodeEmitter::processDebugLoc call and called it fromJeffrey Yasskin2009-07-171-1/+2
| | | | | | | the X86 Emitter. This patch extends that to the rest of the targets that can write to a MachineCodeEmitter: ARM, Alpha, and PPC. llvm-svn: 76211
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-141-10/+10
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* Remove extra \n from LLVM_UNREACHABLE calls.Torok Edwin2009-07-121-1/+1
| | | | llvm-svn: 75416
* Change how so_imm and t2_so_imm are handled. At instruction selection time, ↵Evan Cheng2009-07-081-7/+10
| | | | | | the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead. llvm-svn: 75048
* Implement changes from Chris's feedback.Torok Edwin2009-07-081-7/+8
| | | | | | Finish converting lib/Target. llvm-svn: 75043
OpenPOWER on IntegriCloud