aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/PIC16/PIC16Section.cpp
diff options
context:
space:
mode:
authorSanjiv Gupta <sanjiv.gupta@microchip.com>2009-10-21 10:42:44 +0000
committerSanjiv Gupta <sanjiv.gupta@microchip.com>2009-10-21 10:42:44 +0000
commit4e4bba5c80cc1168d244397f3fe09f301237638a (patch)
treebc65d3b7f488e1336a7b582b8fa7441daa4c4ec4 /lib/Target/PIC16/PIC16Section.cpp
parentdb1d9dbdd72db4254a7ff033331970ad7fa9dd41 (diff)
downloadexternal_llvm-4e4bba5c80cc1168d244397f3fe09f301237638a.zip
external_llvm-4e4bba5c80cc1168d244397f3fe09f301237638a.tar.gz
external_llvm-4e4bba5c80cc1168d244397f3fe09f301237638a.tar.bz2
Add a pass to overlay pic16 data sections for function frame and automatic
variables. This pass can be invoked by llvm-ld or opt to traverse over the call graph to detect what function frames and their automatic variables can be overlaid. Currently this builds an archive , but needs to be changed to a loadable module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16Section.cpp')
-rw-r--r--lib/Target/PIC16/PIC16Section.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/PIC16/PIC16Section.cpp b/lib/Target/PIC16/PIC16Section.cpp
index 7029501..a96ebb8 100644
--- a/lib/Target/PIC16/PIC16Section.cpp
+++ b/lib/Target/PIC16/PIC16Section.cpp
@@ -68,8 +68,13 @@ PIC16Section *PIC16Section::Create(const StringRef &Name,
// A generic way to print all types of sections.
void PIC16Section::PrintSwitchToSection(const MCAsmInfo &MAI,
raw_ostream &OS) const {
- // Print name.
- OS << getName() << '\t';
+
+ // If the section is overlaid(i.e. it has a color), print overlay name for
+ // it. Otherwise print its normal name.
+ if (Color != -1)
+ OS << PAN::getOverlayName(getName(), Color) << '\t';
+ else
+ OS << getName() << '\t';
// Print type.
switch (getType()) {