diff options
author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-07-06 10:18:37 +0000 |
---|---|---|
committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-07-06 10:18:37 +0000 |
commit | b89d3db1fda59ab90dd2ceb386e2df6e0843692b (patch) | |
tree | 0871decf65c6be56a6954ab81bf604a2e5185461 /llvm/lib/Target/PIC16/PIC16.h | |
parent | f539f0328988b4af7b253de5efb6c1e5b4f774f7 (diff) | |
download | bcm5719-llvm-b89d3db1fda59ab90dd2ceb386e2df6e0843692b.tar.gz bcm5719-llvm-b89d3db1fda59ab90dd2ceb386e2df6e0843692b.zip |
Implement _CONFIG macro to allow users to se to configuration settings on 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
Diffstat (limited to 'llvm/lib/Target/PIC16/PIC16.h')
-rw-r--r-- | llvm/lib/Target/PIC16/PIC16.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/llvm/lib/Target/PIC16/PIC16.h b/llvm/lib/Target/PIC16/PIC16.h index 57b08b730d0..0a71b130a0b 100644 --- a/llvm/lib/Target/PIC16/PIC16.h +++ b/llvm/lib/Target/PIC16/PIC16.h @@ -221,17 +221,29 @@ namespace PIC16CC { return Func1 + tag + "# CODE"; } - // udata and idata section names are generated by a given number. + // udata, romdata and idata section names are generated by a given number. // @udata.<num>.# - static std::string getUdataSectionName(unsigned num) { + static std::string getUdataSectionName(unsigned num, + std::string prefix = "") { std::ostringstream o; - o << getTagName(PREFIX_SYMBOL) << "udata." << num << ".# UDATA"; + o << getTagName(PREFIX_SYMBOL) << prefix << "udata." << num + << ".# UDATA"; return o.str(); } - static std::string getIdataSectionName(unsigned num) { + static std::string getRomdataSectionName(unsigned num, + std::string prefix = "") { std::ostringstream o; - o << getTagName(PREFIX_SYMBOL) << "idata." << num << ".# IDATA"; + o << getTagName(PREFIX_SYMBOL) << prefix << "romdata." << num + << ".# ROMDATA"; + return o.str(); + } + + static std::string getIdataSectionName(unsigned num, + std::string prefix = "") { + std::ostringstream o; + o << getTagName(PREFIX_SYMBOL) << prefix << "idata." << num + << ".# IDATA"; return o.str(); } |