summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Per discussion with Sanjiv, remove the PIC16 target from mainline. When/ifChris Lattner2010-10-111-224/+0
| | | | | | | it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. llvm-svn: 116190
* Remove the isMoveInstr() hook.Jakob Stoklund Olesen2010-07-161-15/+0
| | | | llvm-svn: 108567
* Replace copyRegToReg with copyPhysReg for PIC16.Jakob Stoklund Olesen2010-07-111-18/+13
| | | | llvm-svn: 108081
* Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). ThisStuart Hastings2010-06-171-3/+3
| | | | | | | | | | | | addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. llvm-svn: 106243
* Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that itDan Gohman2010-05-061-3/+2
| | | | | | doesn't have to guess. llvm-svn: 103194
* Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot.Evan Cheng2010-05-061-2/+4
| | | | llvm-svn: 103193
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-2/+2
| | | | | | | | | | | | | const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. llvm-svn: 101635
* Move per-function state out of TargetLowering subclasses and intoDan Gohman2010-04-171-4/+4
| | | | | | MachineFunctionInfo subclasses. llvm-svn: 101634
* Fix memory leaks for external symbol name strings.Sanjiv Gupta2010-04-071-2/+2
| | | | llvm-svn: 100601
* use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()Chris Lattner2010-04-021-4/+4
| | | | llvm-svn: 100214
* Teach AnalyzeBranch, RemoveBranch and the branchDale Johannesen2010-04-021-0/+5
| | | | | | | folder to be tolerant of debug info following the branch(es) at the end of a block. llvm-svn: 100168
* Remove unnecessary gotos to fall-thru successors.Sanjiv Gupta2009-10-271-0/+22
| | | | llvm-svn: 85257
* Re-apply 84180 with the fixed test case.Sanjiv Gupta2009-10-151-0/+1
| | | | llvm-svn: 84195
* Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on newDaniel Dunbar2009-10-151-1/+0
| | | | | | PIC16Section class", it breaks globals.ll. llvm-svn: 84184
* Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section classSanjiv Gupta2009-10-151-0/+1
| | | | | | derived from MCSection. llvm-svn: 84180
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-141-2/+2
| | | | | | | | | 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
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-111-2/+3
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* FrameIndex could be used as a value (addressof (arg)) or as an address.Sanjiv Gupta2009-06-031-0/+28
| | | | | | | Expand it exactly like GlobalAddress. Fix some more crashes (InsertBranch() not being implemented) for compiling hitec libs. llvm-svn: 72776
* Change MachineInstrBuilder::addReg() to take a flag instead of a list ofBill Wendling2009-05-131-2/+2
| | | | | | | | | | | | booleans. This gives a better indication of what the "addReg()" is doing. Remembering what all of those booleans mean isn't easy, especially if you aren't spending all of your time in that code. I took Jakob's suggestion and made it illegal to pass in "true" for the flag. This should hopefully prevent any unintended misuse of this (by reverting to the old way of using addReg()). llvm-svn: 71722
* Changed lowering and asmprinter to use ABI Names class called PAN.Sanjiv Gupta2009-05-101-4/+2
| | | | llvm-svn: 71386
* Emit banksel and movlp instructions.Sanjiv Gupta2009-05-061-4/+4
| | | | | | | Split large global data (both initialized and un-initialized) into multiple sections of <= 80 bytes. Provide routines to manage PIC16 ABI naming conventions. llvm-svn: 71073
* Added code to handle spilling and reloading of FSRs.Sanjiv Gupta2009-04-101-6/+31
| | | | llvm-svn: 68783
* Map stack based frameindices for spills to zero based indices that can be ↵Sanjiv Gupta2009-04-061-2/+4
| | | | | | accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc. llvm-svn: 68442
* Move debug loc info along when the spiller creates new instructions.Bill Wendling2009-02-121-4/+11
| | | | llvm-svn: 64342
* Fixed build warnings. Restoring changes done in 62600, they were lost in 62655.Sanjiv Gupta2009-01-211-2/+3
| | | | llvm-svn: 62681
* Implement LowerOperationWrapper for legalizer. Sanjiv Gupta2009-01-211-3/+2
| | | | | | Also a few signed comparison fixes. llvm-svn: 62665
* Change TargetInstrInfo::isMoveInstr to return source and destination ↵Evan Cheng2009-01-201-2/+3
| | | | | | sub-register indices as well. llvm-svn: 62600
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-131-2/+11
| | | | llvm-svn: 62174
* Add include files needed when building withDuncan Sands2008-11-281-0/+1
| | | | | | gcc 4.4 (due to use of sprintf). llvm-svn: 60209
* Fixed build warnings.Sanjiv Gupta2008-11-191-2/+2
| | | | llvm-svn: 59621
* Added a more function PIC16 backend. However to get this working a patch inSanjiv Gupta2008-11-191-87/+86
| | | | | | ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted. llvm-svn: 59617
* Add more const qualifiers. This fixes build breakage from r59540.Dan Gohman2008-11-181-2/+2
| | | | llvm-svn: 59542
* Add <cstdio> include where needed by gcc-4.4.Duncan Sands2008-10-081-0/+1
| | | | | | Patch by Samuel Tardieu. llvm-svn: 57291
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-5/+5
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* Convert uses of std::vector in TargetInstrInfo to SmallVector. This change ↵Owen Anderson2008-08-141-1/+1
| | | | | | had to be propoagated down into all the targets and up into all clients of this API. llvm-svn: 54802
* Detabification. Fixed indentation and spacing.Sanjiv Gupta2008-05-141-4/+4
| | | | | | | Changed cout to DOUT, and TODOs to FIXMEs. Other changes as per coding conventions. llvm-svn: 51105
* Adding files for Microchip's PIC16 target.Sanjiv Gupta2008-05-131-0/+143
A brief description about PIC16: =============================== PIC16 is an 8-bit microcontroller with only one 8-bit register which is the accumulator. All arithmetic/load/store operations are 8-bit only. The architecture has two address spaces: program and data. The program memory is divided into 2K pages and the data memory is divided into banks of 128 byte, with only 80 usable bytes, resulting in an non-contiguous data memory. It supports direct data memory access (by specifying the address as part of the instruction) and indirect data and program memory access (in an unorthodox fashion which utilize a 16 bit pointer register). Two classes of registers exist: (8-bit class which is only one accumulator) (16-bit class, which contains one or more 16 bit pointer(s)) llvm-svn: 51027
OpenPOWER on IntegriCloud