summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/Sparc.cpp
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-04-25 04:43:45 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-04-25 04:43:45 +0000
commit776df77d145dac2b74476712dae2842c8d4a5d24 (patch)
treea90b902fe814629484727641d94dcfd5c898cfff /llvm/lib/Target/Sparc/Sparc.cpp
parenta6d94c9a763bbd6426e1aef2cf609fb8e83b4c35 (diff)
downloadbcm5719-llvm-776df77d145dac2b74476712dae2842c8d4a5d24.tar.gz
bcm5719-llvm-776df77d145dac2b74476712dae2842c8d4a5d24.zip
Don't pad spills and temp. stack areas for alignment.
Freeze auto vars and spill areas when their sizes are used for computing other offsets. llvm-svn: 2317
Diffstat (limited to 'llvm/lib/Target/Sparc/Sparc.cpp')
-rw-r--r--llvm/lib/Target/Sparc/Sparc.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Target/Sparc/Sparc.cpp b/llvm/lib/Target/Sparc/Sparc.cpp
index 0fe8f1efcec..de778e25628 100644
--- a/llvm/lib/Target/Sparc/Sparc.cpp
+++ b/llvm/lib/Target/Sparc/Sparc.cpp
@@ -57,10 +57,10 @@ int
UltraSparcFrameInfo::getRegSpillAreaOffset(MachineCodeForMethod& mcInfo,
bool& pos) const
{
+ mcInfo.freezeAutomaticVarsArea(); // ensure no more auto vars are added
+
pos = false; // static stack area grows downwards
unsigned int autoVarsSize = mcInfo.getAutomaticVarsSize();
- if (int mod = autoVarsSize % getStackFrameSizeAlignment())
- autoVarsSize += (getStackFrameSizeAlignment() - mod);
return StaticAreaOffsetFromFP - autoVarsSize;
}
@@ -68,12 +68,13 @@ int
UltraSparcFrameInfo::getTmpAreaOffset(MachineCodeForMethod& mcInfo,
bool& pos) const
{
+ mcInfo.freezeAutomaticVarsArea(); // ensure no more auto vars are added
+ mcInfo.freezeSpillsArea(); // ensure no more spill slots are added
+
pos = false; // static stack area grows downwards
unsigned int autoVarsSize = mcInfo.getAutomaticVarsSize();
unsigned int spillAreaSize = mcInfo.getRegSpillsSize();
int offset = autoVarsSize + spillAreaSize;
- if (int mod = offset % getStackFrameSizeAlignment())
- offset += (getStackFrameSizeAlignment() - mod);
return StaticAreaOffsetFromFP - offset;
}
OpenPOWER on IntegriCloud