diff options
author | Chris Lattner <sabre@nondot.org> | 2008-01-27 06:09:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-01-27 06:09:28 +0000 |
commit | 553c116a1b94e9c5c7489e6a31908dbb8a76131c (patch) | |
tree | b9cb3268b8c8256805af26a43b09d4d782baf0f4 /lib/CodeGen/AsmPrinter.cpp | |
parent | b753065f6d415ee4a63a045a4150caaebd5d05a2 (diff) |
For long double constants, print an approximation of their value to the .s file to make it easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index bb66bd2ad5..7c4a8e189d 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -939,10 +939,13 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, bool Packed) { // api needed to prevent premature destruction APInt api = CFP->getValueAPF().convertToAPInt(); const uint64_t *p = api.getRawData(); + APFloat DoubleVal = CFP->getValueAPF(); + DoubleVal.convert(APFloat::IEEEdouble, APFloat::rmNearestTiesToEven); if (TD->isBigEndian()) { O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 48) << "\t" << TAI->getCommentString() - << " long double most significant halfword\n"; + << " long double most significant halfword of ~" + << DoubleVal.convertToDouble() << "\n"; O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 32) << "\t" << TAI->getCommentString() << " long double next halfword\n"; @@ -958,7 +961,8 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, bool Packed) { } else { O << TAI->getData16bitsDirective() << uint16_t(p[1]) << "\t" << TAI->getCommentString() - << " long double least significant halfword\n"; + << " long double least significant halfword of ~" + << DoubleVal.convertToDouble() << "\n"; O << TAI->getData16bitsDirective() << uint16_t(p[0]) << "\t" << TAI->getCommentString() << " long double next halfword\n"; |