summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16TargetAsmInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-221-35/+0
| | | | llvm-svn: 79763
* Change TargetAsmInfo to be constructed via TargetRegistry from a Target+TripleChris Lattner2009-08-121-1/+4
| | | | | | | | pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. llvm-svn: 78802
* PIC16 TAI doesn't need TMChris Lattner2009-08-021-6/+1
| | | | llvm-svn: 77867
* Rip all of the global variable lowering logic out of TargetAsmInfo. SinceChris Lattner2009-07-281-74/+5
| | | | | | | | | | | | | | | | | | | | it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. llvm-svn: 77294
* make SectionKind be a first-class pod struct instead of justChris Lattner2009-07-251-2/+2
| | | | | | an enum. llvm-svn: 77096
* we already know the sectionkind when invoking SelectSectionForGlobal,Chris Lattner2009-07-241-1/+2
| | | | | | pass it in instead of recomputing it. llvm-svn: 76990
* make SectionForGlobal non-virtual, add a hook for pic16 to do its "address=" ↵Chris Lattner2009-07-241-1/+7
| | | | | | hack. llvm-svn: 76989
* start refactoring pic16 section selection logic.Chris Lattner2009-07-241-2/+2
| | | | llvm-svn: 76977
* more random whitespace cleanup, eliminate #define, avoid copyingChris Lattner2009-07-211-22/+27
| | | | | | vectors needlessly, doxygenify comments, improve constness, etc. llvm-svn: 76585
* rename TargetAsmInfo::getASDirective -> getDataASDirectiveChris Lattner2009-07-201-1/+1
| | | | llvm-svn: 76431
* Implement _CONFIG macro to allow users to se to configuration settings on ↵Sanjiv Gupta2009-07-061-3/+14
| | | | | | | | | | | 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
* PIC16 emits auto variables as globals. When optimizer removes a function ↵Sanjiv Gupta2009-06-091-1/+5
| | | | | | entierly by estimating its side effects on globals, those globals(autos) without a function were not being printed by the Asm printer. llvm-svn: 73135
* Run through the list of globals once and sectionize all types of globlas ↵Sanjiv Gupta2009-05-131-0/+4
| | | | | | includeing declarations. Later emit them from their section lists. llvm-svn: 71661
* Iterate over globals once and sectionize them into appropriate sections.Sanjiv Gupta2009-05-121-0/+6
| | | | | | | Later in asmprinter, go over thsese sections and print them. Do not print empty sections. llvm-svn: 71560
* Changed lowering and asmprinter to use ABI Names class called PAN.Sanjiv Gupta2009-05-101-3/+3
| | | | llvm-svn: 71386
* Emit banksel and movlp instructions.Sanjiv Gupta2009-05-061-1/+34
| | | | | | | 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
* Made the common case of default address space directive as non-virtual for ↵Sanjiv Gupta2009-02-021-4/+3
| | | | | | performance reasons. Provide a single virtual interface for directives of all sizes in non-default address spaces. llvm-svn: 63521
* Enable emitting of constant values in non-default address space as well. The ↵Sanjiv Gupta2009-01-301-0/+6
| | | | | | APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces. llvm-svn: 63377
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-131-10/+0
| | | | llvm-svn: 62174
* Added a more function PIC16 backend. However to get this working a patch inSanjiv Gupta2008-11-191-0/+11
| | | | | | ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted. llvm-svn: 59617
* Adding files for Microchip's PIC16 target.Sanjiv Gupta2008-05-131-0/+30
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