diff options
author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-08-20 19:28:24 +0000 |
---|---|---|
committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2009-08-20 19:28:24 +0000 |
commit | eb01abaad1b0c0987ffcd679824cbeeb2a083199 (patch) | |
tree | 00045cdb77c9fb8a7fe4ff5000d2d4eed2df0a38 /lib/Target/PIC16/PIC16TargetObjectFile.h | |
parent | 72689b4094570666f3aa8e003186998805a06b45 (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.h | 7 |
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; |