Changes in directory llvm/lib/VMCore:
AsmWriter.cpp updated: 1.214 -> 1.215 Instruction.cpp updated: 1.59 -> 1.60 --- Log message: Allow the ICmp and FCmp instructions to be written by the AsmWriter --- Diffs of the changes: (+41 -0) AsmWriter.cpp | 39 +++++++++++++++++++++++++++++++++++++++ Instruction.cpp | 2 ++ 2 files changed, 41 insertions(+) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.214 llvm/lib/VMCore/AsmWriter.cpp:1.215 --- llvm/lib/VMCore/AsmWriter.cpp:1.214 Mon Nov 27 20:09:03 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Sun Dec 3 00:27:29 2006 @@ -1125,6 +1125,45 @@ // Print out the opcode... Out << I.getOpcodeName(); + // Print out the compare instruction predicates + if (const FCmpInst *FCI = dyn_cast<FCmpInst>(&I)) { + const char *pred = 0; + switch (FCI->getPredicate()) { + case FCmpInst::FCMP_FALSE: pred = "false"; + case FCmpInst::FCMP_OEQ: pred = "ordeq"; + case FCmpInst::FCMP_OGT: pred = "ordgt"; + case FCmpInst::FCMP_OGE: pred = "ordge"; + case FCmpInst::FCMP_OLT: pred = "ordlt"; + case FCmpInst::FCMP_OLE: pred = "ordle"; + case FCmpInst::FCMP_ONE: pred = "ordne"; + case FCmpInst::FCMP_ORD: pred = "ord"; + case FCmpInst::FCMP_UNO: pred = "uno"; + case FCmpInst::FCMP_UEQ: pred = "unoeq"; + case FCmpInst::FCMP_UGT: pred = "unogt"; + case FCmpInst::FCMP_UGE: pred = "unoge"; + case FCmpInst::FCMP_ULT: pred = "unolt"; + case FCmpInst::FCMP_ULE: pred = "unole"; + case FCmpInst::FCMP_UNE: pred = "unone"; + case FCmpInst::FCMP_TRUE: pred = "true"; + } + Out << " " << pred; + } else if (const ICmpInst *ICI = dyn_cast<ICmpInst>(&I)) { + const char *pred = 0; + switch (ICI->getPredicate()) { + case ICmpInst::ICMP_EQ: pred = "eq"; + case ICmpInst::ICMP_NE: pred = "ne"; + case ICmpInst::ICMP_SGT: pred = "sgt"; + case ICmpInst::ICMP_SGE: pred = "sge"; + case ICmpInst::ICMP_SLT: pred = "slt"; + case ICmpInst::ICMP_SLE: pred = "sle"; + case ICmpInst::ICMP_UGT: pred = "ugt"; + case ICmpInst::ICMP_UGE: pred = "uge"; + case ICmpInst::ICMP_ULT: pred = "ult"; + case ICmpInst::ICMP_ULE: pred = "ule"; + } + Out << " " << pred; + } + // Print out the type of the operands... const Value *Operand = I.getNumOperands() ? I.getOperand(0) : 0; Index: llvm/lib/VMCore/Instruction.cpp diff -u llvm/lib/VMCore/Instruction.cpp:1.59 llvm/lib/VMCore/Instruction.cpp:1.60 --- llvm/lib/VMCore/Instruction.cpp:1.59 Sun Nov 26 19:05:10 2006 +++ llvm/lib/VMCore/Instruction.cpp Sun Dec 3 00:27:29 2006 @@ -137,6 +137,8 @@ case BitCast: return "bitcast"; // Other instructions... + case ICmp: return "icmp"; + case FCmp: return "fcmp"; case PHI: return "phi"; case Select: return "select"; case Call: return "call"; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits