diff options
-rw-r--r-- | lib/Target/PowerPC/PPCAsmPrinter.cpp | 12 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/pr13641.ll | 1 |
2 files changed, 9 insertions, 4 deletions
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp index de32415..1c9a23a 100644 --- a/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -458,11 +458,15 @@ bool PPCLinuxAsmPrinter::doFinalization(Module &M) { void PPCLinuxAsmPrinter::EmitFunctionBodyEnd() { // Only the 64-bit target requires a traceback table. For now, // we only emit the word of zeroes that GDB requires to find - // the end of the function. - // FIXME: Eventually we should add the eight-byte mandatory fields - // described in the PPC64 ELF ABI. - if (Subtarget.isPPC64()) + // the end of the function, and zeroes for the eight-byte + // mandatory fields. + // FIXME: We should fill in the eight-byte mandatory fields as described in + // the PPC64 ELF ABI (this is a low-priority item because GDB does not + // currently make use of these fields). + if (Subtarget.isPPC64()) { OutStreamer.EmitIntValue(0, 4/*size*/); + OutStreamer.EmitIntValue(0, 8/*size*/); + } } void PPCDarwinAsmPrinter::EmitStartOfAsmFile(Module &M) { 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 |