[llvm-commits] [llvm] r93292 - /llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Chris Lattner
sabre at nondot.org
Tue Jan 12 20:38:16 PST 2010
Author: lattner
Date: Tue Jan 12 22:38:16 2010
New Revision: 93292
URL: http://llvm.org/viewvc/llvm-project?rev=93292&view=rev
Log:
reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt.
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=93292&r1=93291&r2=93292&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Tue Jan 12 22:38:16 2010
@@ -1260,39 +1260,34 @@
else
Val = RawData[i];
- if (MAI->getData64bitsDirective(AddrSpace))
+ if (MAI->getData64bitsDirective(AddrSpace)) {
O << MAI->getData64bitsDirective(AddrSpace) << Val << '\n';
- else if (TD->isBigEndian()) {
- O << MAI->getData32bitsDirective(AddrSpace) << unsigned(Val >> 32);
- if (VerboseAsm) {
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString()
- << " most significant half of i64 " << Val;
- }
- O << '\n';
- O << MAI->getData32bitsDirective(AddrSpace) << unsigned(Val);
- if (VerboseAsm) {
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString()
- << " least significant half of i64 " << Val;
- }
- O << '\n';
- } else {
- O << MAI->getData32bitsDirective(AddrSpace) << unsigned(Val);
- if (VerboseAsm) {
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString()
- << " least significant half of i64 " << Val;
- }
- O << '\n';
- O << MAI->getData32bitsDirective(AddrSpace) << unsigned(Val >> 32);
- if (VerboseAsm) {
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString()
- << " most significant half of i64 " << Val;
- }
- O << '\n';
+ continue;
}
+
+ // Emit two 32-bit chunks, order depends on endianness.
+ unsigned FirstChunk = unsigned(Val), SecondChunk = unsigned(Val >> 32);
+ const char *FirstName = " least", *SecondName = " most";
+ if (TD->isBigEndian()) {
+ std::swap(FirstChunk, SecondChunk);
+ std::swap(FirstName, SecondName);
+ }
+
+ O << MAI->getData32bitsDirective(AddrSpace) << FirstChunk;
+ if (VerboseAsm) {
+ O.PadToColumn(MAI->getCommentColumn());
+ O << MAI->getCommentString()
+ << FirstName << " significant half of i64 " << Val;
+ }
+ O << '\n';
+
+ O << MAI->getData32bitsDirective(AddrSpace) << SecondChunk;
+ if (VerboseAsm) {
+ O.PadToColumn(MAI->getCommentColumn());
+ O << MAI->getCommentString()
+ << SecondName << " significant half of i64 " << Val;
+ }
+ O << '\n';
}
}
More information about the llvm-commits
mailing list