aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2009-08-05 21:00:52 +0000
committerDavid Greene <greened@obbligato.org>2009-08-05 21:00:52 +0000
commita5bb59f85613e8ce481351803e7388f5ab466e72 (patch)
tree7cb0ccb16a560d20ec60939434c1e0c450f12536 /utils
parentcafbdc5c095f4cc84e74e0286651cf8daa6efa2a (diff)
downloadexternal_llvm-a5bb59f85613e8ce481351803e7388f5ab466e72.zip
external_llvm-a5bb59f85613e8ce481351803e7388f5ab466e72.tar.gz
external_llvm-a5bb59f85613e8ce481351803e7388f5ab466e72.tar.bz2
Fix some column padding bugs, reorganize things as suggested by Chris
and eliminate complexity. Yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78243 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/AsmWriterEmitter.cpp30
1 files changed, 4 insertions, 26 deletions
diff --git a/utils/TableGen/AsmWriterEmitter.cpp b/utils/TableGen/AsmWriterEmitter.cpp
index 5f1d325..de4ec22 100644
--- a/utils/TableGen/AsmWriterEmitter.cpp
+++ b/utils/TableGen/AsmWriterEmitter.cpp
@@ -148,8 +148,6 @@ AsmWriterInst::AsmWriterInst(const CodeGenInstruction &CGI, unsigned Variant) {
// Emit a constant string fragment.
- // TODO: Recognize an operand separator to determine when to pad
- // to the next operator.
if (DollarPos != LastEmitted) {
if (CurVariant == Variant || CurVariant == ~0U) {
for (; LastEmitted != DollarPos; ++LastEmitted)
@@ -727,30 +725,10 @@ void AsmWriterEmitter::run(raw_ostream &O) {
O << " // Emit the opcode for the instruction.\n"
<< " unsigned Bits = OpInfo[MI->getOpcode()];\n"
- << " if (Bits == 0) return false;\n\n";
-
- O << " unsigned OperandColumn = 1;\n\n"
- << " if (TAI->getOperandColumn(1) > 0) {\n"
- << " // Don't emit trailing whitespace, let the column padding do it. This\n"
- << " // guarantees that a stray long opcode + tab won't upset the alignment.\n"
- << " // We need to handle this special case here because sometimes the initial\n"
- << " // mnemonic string includes a tab or space and sometimes it doesn't.\n"
- << " unsigned OpLength = std::strlen(AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "));\n"
- << " if (OpLength > 0 &&\n"
- << " ((AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "))[OpLength-1] == ' ' ||\n"
- << " (AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "))[OpLength-1] == '\\t')) {\n"
- << " do {\n"
- << " --OpLength;\n"
- << " } while ((AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "))[OpLength-1] == ' ' ||\n"
- << " (AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "))[OpLength-1] == '\\t');\n"
- << " for (unsigned Idx = 0; Idx < OpLength; ++Idx)\n"
- << " O << (AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << "))[Idx];\n"
- << " O.PadToColumn(TAI->getOperandColumn(OperandColumn++), 1);\n"
- << " }\n"
- << " } else {\n"
- << " O << AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << ");\n"
- << " }\n\n";
-
+ << " if (Bits == 0) return false;\n"
+ << " O << AsmStrs+(Bits & " << (1 << AsmStrBits)-1 << ");\n\n";
+
+ O << " unsigned OperandColumn = 1;\n\n";
// Output the table driven operand information.
BitsLeft = 32-AsmStrBits;