summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16.h
Commit message (Collapse)AuthorAgeFilesLines
* Per discussion with Sanjiv, remove the PIC16 target from mainline. When/ifChris Lattner2010-10-111-134/+0
| | | | | | | it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. llvm-svn: 116190
* Fix this code to avoid decrementing an iterator past the beginningDan Gohman2010-07-281-5/+2
| | | | | | of a std::vector. llvm-svn: 109597
* Fix memory leaks for external symbol name strings.Sanjiv Gupta2010-04-071-9/+27
| | | | llvm-svn: 100601
* Replace strcpy with memcpy when we have the length around anyway.Benjamin Kramer2010-01-281-1/+2
| | | | llvm-svn: 94746
* Re-apply 84180 with the fixed test case.Sanjiv Gupta2009-10-151-259/+8
| | | | llvm-svn: 84195
* Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on newDaniel Dunbar2009-10-151-8/+259
| | | | | | PIC16Section class", it breaks globals.ll. llvm-svn: 84184
* Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section classSanjiv Gupta2009-10-151-259/+8
| | | | | | derived from MCSection. llvm-svn: 84180
* eliminate a #include.Chris Lattner2009-08-241-1/+0
| | | | llvm-svn: 79888
* revert r79562 + r79563Chris Lattner2009-08-211-1/+262
| | | | llvm-svn: 79690
* revert 79631Chris Lattner2009-08-211-1/+0
| | | | llvm-svn: 79685
* Add a pass to do call graph analyis to overlay the autos and frame sections of Sanjiv Gupta2009-08-211-0/+1
| | | | | | | leaf functions. This pass will be extended to color other nodes of the call tree as well in future. llvm-svn: 79631
* Implement support for ISRs. Sanjiv Gupta2009-08-201-262/+1
| | | | | | | | | Clone functions that are shared between the Main thread and Interrupt thread. CallSites are changed in AsmPrinter currently. A better solution would have been to modify the legalizer (SoftenFloat) to allow targets to change the name of libcalls for float operations. But that currently breaks other targets. Also, cloing of automatic variables is done AsmPrinter, a better approach would be to use the ValueMap in CloneFunction itself. llvm-svn: 79562
* define target names for std libcalls.Sanjiv Gupta2009-07-311-7/+2
| | | | llvm-svn: 77667
* Keep track of references to mem(cpy,move,set) and then print only one externSanjiv Gupta2009-07-301-0/+14
| | | | | | declaration for them. llvm-svn: 77578
* Add new helpers for registering targets.Daniel Dunbar2009-07-251-4/+1
| | | | | | - Less boilerplate == good. llvm-svn: 77052
* Put Target definitions inside Target specific header, and llvm namespace.Daniel Dunbar2009-07-181-0/+4
| | | | llvm-svn: 76344
* Register AsmPrinter for XCore, MSP430, and PIC16 targets.Daniel Dunbar2009-07-151-1/+1
| | | | | | - Switch to standard addAssemblyEmitter logic. llvm-svn: 75854
* Have asm printers use formatted_raw_ostream directly to avoid aDavid Greene2009-07-141-2/+2
| | | | | | dynamic_cast<>. llvm-svn: 75670
* 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
* Implement _CONFIG macro to allow users to se to configuration settings on ↵Sanjiv Gupta2009-07-061-5/+17
| | | | | | | | | | | the part. Implement _section macro to allow users to place objects in specific sections. Implement _address macro to allow users to place objects at a particular address. Placing objects at a memory address: crate a unique section name from varname, address, object type and put that section at specified address. Mark this section a full (size = banksize) so that other objects do not compete for it while placing objects to sections in AsmPrinter. llvm-svn: 74822
* Corrected the names description. Change in a comment. No functionality change.Sanjiv Gupta2009-07-061-1/+1
| | | | llvm-svn: 74819
* Silence a warning when assertions are turned off.Duncan Sands2009-07-031-0/+1
| | | | llvm-svn: 74778
* Remove unused AsmPrinter OptLevel argument, and propogate.Daniel Dunbar2009-07-011-1/+0
| | | | | | | - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. llvm-svn: 74579
* Fixed a bug in which signed comparisons were being used instead of unsigned ↵Sanjiv Gupta2009-06-031-0/+2
| | | | | | comparisons. llvm-svn: 72771
* We do not need to create a label for external defs and decls,Sanjiv Gupta2009-05-121-14/+0
| | | | | | just emit a comment for readability. llvm-svn: 71544
* Fix more naming issues.Sanjiv Gupta2009-05-111-13/+20
| | | | | | | compiler libcalls start with .lib. now. fixed section names. llvm-svn: 71424
* Detect calls to compiler intrinsics and emit an extern declarations Sanjiv Gupta2009-05-111-1/+7
| | | | | | | | | | | only for those. These extern declarations to intrinsics are currently being emitted at the bottom of generated .s file, which works fine with gpasm(not sure about MPSAM though). PIC16 linker generates errors for few cases (function-args/struct_args_5) if you do not include any extern declarations (even if no intrinsics are being used), but that needs to be fixed in the linker itself. llvm-svn: 71423
* Changed lowering and asmprinter to use ABI Names class called PAN.Sanjiv Gupta2009-05-101-63/+178
| | | | llvm-svn: 71386
* Add missing #include for "strlen" which is used inline in this header. FixesNick Lewycky2009-05-081-0/+1
| | | | | | build under gcc 4.3. llvm-svn: 71208
* Moved pic16 naming functions to correct place.Sanjiv Gupta2009-05-081-30/+77
| | | | | | No functionality change. llvm-svn: 71207
* Emit banksel and movlp instructions.Sanjiv Gupta2009-05-061-0/+93
| | | | | | | 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
* Instead of passing in an unsigned value for the optimization level, use an enum,Bill Wendling2009-04-291-1/+3
| | | | | | | which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
* Second attempt:Bill Wendling2009-04-291-1/+1
| | | | | | | | | | | | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
* r70270 isn't ready yet. Back this out. Sorry for the noise.Bill Wendling2009-04-281-1/+1
| | | | llvm-svn: 70275
* Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want toBill Wendling2009-04-281-1/+1
| | | | | | | | | | | use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
* CodeGen still defaults to non-verbose asm, but llc now overrides it and ↵Evan Cheng2009-03-251-1/+1
| | | | | | default to verbose. llvm-svn: 67668
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-241-1/+2
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* Implement LowerOperationWrapper for legalizer. Sanjiv Gupta2009-01-211-1/+25
| | | | | | Also a few signed comparison fixes. llvm-svn: 62665
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-131-0/+27
| | | | llvm-svn: 62174
* Tidy up #includes, deleting a bunch of unnecessary #includes.Dan Gohman2009-01-051-2/+0
| | | | llvm-svn: 61715
* Added a more function PIC16 backend. However to get this working a patch inSanjiv Gupta2008-11-191-3/+2
| | | | | | ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted. llvm-svn: 59617
* Use raw_ostream throughout the AsmPrinter.Owen Anderson2008-08-211-1/+2
| | | | llvm-svn: 55092
* Fixed the file description header at the top to remove the developer name.Sanjiv Gupta2008-05-141-2/+2
| | | | llvm-svn: 51094
* Adding files for Microchip's PIC16 target.Sanjiv Gupta2008-05-131-0/+38
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