summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2008-06-26 01:51:13 +0000
committerDale Johannesen <dalej@apple.com>2008-06-26 01:51:13 +0000
commitb5dae003252d8e650a32bfdf33cba5aed8e41e40 (patch)
tree26bc34ce33c717a126765122886e4b2d9c93eb5a /utils
parent872a738775ea3a78136da9914a9bbbb56326cacc (diff)
downloadllvm-b5dae003252d8e650a32bfdf33cba5aed8e41e40.tar.gz
llvm-b5dae003252d8e650a32bfdf33cba5aed8e41e40.tar.bz2
llvm-b5dae003252d8e650a32bfdf33cba5aed8e41e40.tar.xz
Fixes the last x86-64 test failure in compat.exp:
<16 x float> is 64-byte aligned (for some reason), which gets us into the stack realignment code. The computation changing FP-relative offsets to SP-relative was broken, assiging a spill temp to a location also used for parameter passing. This fixes it by rounding up the stack frame to a multiple of the largest alignment (I concluded it wasn't fixable without doing this, but I'm not very sure.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52750 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/RegisterInfoEmitter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp
index 92773359a9..2f253ff34e 100644
--- a/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/utils/TableGen/RegisterInfoEmitter.cpp
@@ -64,6 +64,8 @@ void RegisterInfoEmitter::runHeader(std::ostream &OS) {
<< " virtual int getDwarfRegNumFull(unsigned RegNum, "
<< "unsigned Flavour) const;\n"
<< " virtual int getDwarfRegNum(unsigned RegNum, bool isEH) const = 0;\n"
+ << " virtual bool needsStackRealignment(const MachineFunction &) const\n"
+ << " { return false; }\n"
<< " unsigned getSubReg(unsigned RegNo, unsigned Index) const;\n"
<< "};\n\n";