diff options
author | Hal Finkel <hfinkel@anl.gov> | 2012-08-29 20:22:24 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2012-08-29 20:22:24 +0000 |
commit | bbd169b1d96e1012df9852d41b7fd00381ed9d48 (patch) | |
tree | ec4275f2ba8ab42adebbe30f4ded62b04dc96ff4 /test/CodeGen/PowerPC/pr13641.ll | |
parent | 21b742ffce7bec3d71e09c7c6d901a756d55feb3 (diff) | |
download | external_llvm-bbd169b1d96e1012df9852d41b7fd00381ed9d48.zip external_llvm-bbd169b1d96e1012df9852d41b7fd00381ed9d48.tar.gz external_llvm-bbd169b1d96e1012df9852d41b7fd00381ed9d48.tar.bz2 |
Reserve space for the mandatory traceback fields on PPC64.
We need to reserve space for the mandatory traceback fields,
though leaving them as zero is appropriate for now.
Although the ABI calls for these fields to be filled in fully, no
compiler on Linux currently does this, and GDB does not read these
fields. GDB uses the first word of zeroes during exception handling to
find the end of the function and the size field, allowing it to compute
the beginning of the function. DWARF information is used for everything
else. We need the extra 8 bytes of pad so the size field is found in
the right place.
As a comparison, GCC fills in a few of the fields -- language, number
of saved registers -- but ignores the rest. IBM's proprietary OSes do
make use of the full traceback table facility.
Patch by Bill Schmidt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162854 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/PowerPC/pr13641.ll')
-rw-r--r-- | test/CodeGen/PowerPC/pr13641.ll | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/pr13641.ll b/test/CodeGen/PowerPC/pr13641.ll index e80fbea..c4d3f3a 100644 --- a/test/CodeGen/PowerPC/pr13641.ll +++ b/test/CodeGen/PowerPC/pr13641.ll @@ -8,3 +8,4 @@ define void @foo() nounwind { ; CHECK: blr ; CHECK-NEXT: .long 0 +; CHECK-NEXT: .quad 0 |