| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 79763
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 77867
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
an enum.
llvm-svn: 77096
|
|
|
|
|
|
| |
pass it in instead of recomputing it.
llvm-svn: 76990
|
|
|
|
|
|
| |
hack.
llvm-svn: 76989
|
|
|
|
| |
llvm-svn: 76977
|
|
|
|
|
|
| |
vectors needlessly, doxygenify comments, improve constness, etc.
llvm-svn: 76585
|
|
|
|
| |
llvm-svn: 76431
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
includeing declarations. Later emit them from their section lists.
llvm-svn: 71661
|
|
|
|
|
|
|
| |
Later in asmprinter, go over thsese sections and print them.
Do not print empty sections.
llvm-svn: 71560
|
|
|
|
| |
llvm-svn: 71386
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
performance reasons. Provide a single virtual interface for directives of all sizes in non-default address spaces.
llvm-svn: 63521
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 62174
|
|
|
|
|
|
| |
ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted.
llvm-svn: 59617
|
|
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
|