diff options
Diffstat (limited to 'lib/VMCore/iOperators.cpp')
-rw-r--r-- | lib/VMCore/iOperators.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/VMCore/iOperators.cpp b/lib/VMCore/iOperators.cpp new file mode 100644 index 0000000000..c754f42b6f --- /dev/null +++ b/lib/VMCore/iOperators.cpp @@ -0,0 +1,37 @@ +//===-- iBinaryOperators.cpp - Implement the BinaryOperators -----*- C++ -*--=// +// +// This file implements the nontrivial binary operator instructions. +// +//===----------------------------------------------------------------------===// + +#include "llvm/iBinary.h" +#include "llvm/Type.h" + +//===----------------------------------------------------------------------===// +// SetCondInst Class +//===----------------------------------------------------------------------===// + +SetCondInst::SetCondInst(BinaryOps opType, Value *S1, Value *S2, + const string &Name) + : BinaryOperator(opType, S1, S2, Name) { + + OpType = opType; + setType(Type::BoolTy); // setcc instructions always return bool type. + + // Make sure it's a valid type... + assert(getOpcode() != "Invalid opcode type to SetCondInst class!"); +} + +string SetCondInst::getOpcode() const { + switch (OpType) { + case SetLE: return "setle"; + case SetGE: return "setge"; + case SetLT: return "setlt"; + case SetGT: return "setgt"; + case SetEQ: return "seteq"; + case SetNE: return "setne"; + default: + assert(0 && "Invalid opcode type to SetCondInst class!"); + return "invalid opcode type to SetCondInst"; + } +} |