diff options
Diffstat (limited to 'lib/VMCore/iOperators.cpp')
-rw-r--r-- | lib/VMCore/iOperators.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/VMCore/iOperators.cpp b/lib/VMCore/iOperators.cpp index c754f42b6f..d856a20d0a 100644 --- a/lib/VMCore/iOperators.cpp +++ b/lib/VMCore/iOperators.cpp @@ -7,6 +7,25 @@ #include "llvm/iBinary.h" #include "llvm/Type.h" +BinaryOperator *BinaryOperator::create(unsigned Op, Value *S1, Value *S2, + const string &Name) { + switch (Op) { + case Add: return new AddInst(S1, S2, Name); + case Sub: return new SubInst(S1, S2, Name); + case SetLT: + case SetGT: + case SetLE: + case SetGE: + case SetEQ: + case SetNE: + return new SetCondInst((BinaryOps)Op, S1, S2, Name); + + default: + cerr << "Don't know how to GetBinaryOperator " << Op << endl; + return 0; + } +} + //===----------------------------------------------------------------------===// // SetCondInst Class //===----------------------------------------------------------------------===// |