diff options
author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2010-02-16 03:41:07 +0000 |
---|---|---|
committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2010-02-16 03:41:07 +0000 |
commit | 7643ca5c2b6a8b6e63a270a7c02e2d3b23a42a6d (patch) | |
tree | 706c2dc2cf0a06cfa990cfcf1177b40a32a04fa0 /lib/Target/PIC16/PIC16TargetObjectFile.cpp | |
parent | 6e303cb9fa5fdf93a09b8b6017658f3c72a21292 (diff) |
The code section for an ISR has a specific address.
Currently, whether a function is ISR or not is encoded in the section attribute for that function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96322 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16TargetObjectFile.cpp')
-rw-r--r-- | lib/Target/PIC16/PIC16TargetObjectFile.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Target/PIC16/PIC16TargetObjectFile.cpp b/lib/Target/PIC16/PIC16TargetObjectFile.cpp index d7cfe029d3..b891c18c46 100644 --- a/lib/Target/PIC16/PIC16TargetObjectFile.cpp +++ b/lib/Target/PIC16/PIC16TargetObjectFile.cpp @@ -315,8 +315,12 @@ PIC16TargetObjectFile::allocateSHARED(const GlobalVariable *GV, // Interface used by AsmPrinter to get a code section for a function. const PIC16Section * -PIC16TargetObjectFile::SectionForCode(const std::string &FnName) const { +PIC16TargetObjectFile::SectionForCode(const std::string &FnName, + bool isISR) const { const std::string &sec_name = PAN::getCodeSectionName(FnName); + // If it is ISR, its code section starts at a specific address. + if (isISR) + return getPIC16Section(sec_name, CODE, PAN::getISRAddr()); return getPIC16Section(sec_name, CODE); } |