Changes in directory llvm/lib/Target/CBackend:
Writer.cpp updated: 1.272.2.7 -> 1.272.2.8 --- Log message: --- Diffs of the changes: (+13 -5) Writer.cpp | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-) Index: llvm/lib/Target/CBackend/Writer.cpp diff -u llvm/lib/Target/CBackend/Writer.cpp:1.272.2.7 llvm/lib/Target/CBackend/Writer.cpp:1.272.2.8 --- llvm/lib/Target/CBackend/Writer.cpp:1.272.2.7 Wed Oct 25 20:58:05 2006 +++ llvm/lib/Target/CBackend/Writer.cpp Sun Oct 29 01:35:49 2006 @@ -592,10 +592,10 @@ case Instruction::Mul: case Instruction::URem: case Instruction::SRem: + case Instruction::FRem: case Instruction::SDiv: case Instruction::UDiv: case Instruction::FDiv: - case Instruction::FRem: case Instruction::And: case Instruction::Or: case Instruction::Xor: @@ -607,6 +607,7 @@ case Instruction::SetGE: case Instruction::Shl: case Instruction::Shr: + { Out << '('; bool NeedsClosingParens = printConstExprCast(CE); printConstantWithCast(CE->getOperand(0), CE->getOpcode()); @@ -638,6 +639,7 @@ Out << "))"; Out << ')'; return; + } default: std::cerr << "CWriter Error: Unhandled constant expression: " @@ -827,7 +829,9 @@ bool Result = false; const Type* Ty = CE->getOperand(0)->getType(); switch (CE->getOpcode()) { + case Instruction::URem: case Instruction::UDiv: Result = Ty->isSigned(); break; + case Instruction::SRem: case Instruction::SDiv: Result = Ty->isUnsigned(); break; default: break; } @@ -857,6 +861,7 @@ default: // for most instructions, it doesn't matter break; + case Instruction::URem: case Instruction::UDiv: // For UDiv to have unsigned operands if (OpTy->isSigned()) { @@ -864,6 +869,7 @@ shouldCast = true; } break; + case Instruction::SRem: case Instruction::SDiv: if (OpTy->isUnsigned()) { OpTy = OpTy->getSignedVersion(); @@ -921,7 +927,9 @@ bool Result = false; const Type* Ty = I.getOperand(0)->getType(); switch (I.getOpcode()) { + case Instruction::URem: case Instruction::UDiv: Result = Ty->isSigned(); break; + case Instruction::SRem: case Instruction::SDiv: Result = Ty->isUnsigned(); break; default: break; } @@ -951,6 +959,7 @@ default: // for most instructions, it doesn't matter break; + case Instruction::URem: case Instruction::UDiv: // For UDiv to have unsigned operands if (OpTy->isSigned()) { @@ -958,6 +967,7 @@ shouldCast = true; } break; + case Instruction::SRem: case Instruction::SDiv: if (OpTy->isUnsigned()) { OpTy = OpTy->getSignedVersion(); @@ -1776,8 +1786,7 @@ Out << "-("; writeOperand(BinaryOperator::getNegArgument(cast<BinaryOperator>(&I))); Out << ")"; - } else if ((I.getOpcode() == Instruction::URem || - I.getOpcode() == Instruction::SRem) && + } else if (I.getOpcode() == Instruction::FRem && I.getType()->isFloatingPoint()) { // Output a call to fmod/fmodf instead of emitting a%b if (I.getType() == Type::FloatTy) @@ -1804,8 +1813,7 @@ case Instruction::Sub: Out << " - "; break; case Instruction::Mul: Out << '*'; break; case Instruction::URem: - case Instruction::SRem: - case Instruction::FRem: Out << '%'; break; + case Instruction::SRem:Out << '%'; break; case Instruction::UDiv: case Instruction::SDiv: case Instruction::FDiv: Out << '/'; break; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits