aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/PIC16/PIC16TargetObjectFile.h
diff options
context:
space:
mode:
authorSanjiv Gupta <sanjiv.gupta@microchip.com>2009-08-20 19:28:24 +0000
committerSanjiv Gupta <sanjiv.gupta@microchip.com>2009-08-20 19:28:24 +0000
commiteb01abaad1b0c0987ffcd679824cbeeb2a083199 (patch)
tree00045cdb77c9fb8a7fe4ff5000d2d4eed2df0a38 /lib/Target/PIC16/PIC16TargetObjectFile.h
parent72689b4094570666f3aa8e003186998805a06b45 (diff)
Implement support for ISRs.
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79562 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16TargetObjectFile.h')
-rw-r--r--lib/Target/PIC16/PIC16TargetObjectFile.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/PIC16/PIC16TargetObjectFile.h b/lib/Target/PIC16/PIC16TargetObjectFile.h
index 1c6d9cf388..4676b3c8d6 100644
--- a/lib/Target/PIC16/PIC16TargetObjectFile.h
+++ b/lib/Target/PIC16/PIC16TargetObjectFile.h
@@ -77,10 +77,13 @@ namespace llvm {
Mangler *Mang,
const TargetMachine&) const;
- const MCSection *getSectionForFunction(const std::string &FnName) const;
+ const MCSection *getSectionForFunction(const std::string &FnName,
+ bool isInterrupt=false) const;
const MCSection *getSectionForFunctionFrame(const std::string &FnName)const;
-
+ // If the current function is cloned then create the new autos section
+ // also.
+ void createClonedSectionForAutos(const std::string &SecName);
private:
std::string getSectionNameForSym(const std::string &Sym) const;