diff --git a/include/llvm/iOperators.h b/include/llvm/iOperators.h index 5a31b711427..99e4bf33bac 100644 --- a/include/llvm/iOperators.h +++ b/include/llvm/iOperators.h @@ -16,26 +16,18 @@ // All of these classes are subclasses of the BinaryOperator class... // -class AddInst : public BinaryOperator { +class GenericBinaryInst : public BinaryOperator { + const char *OpcodeString; public: - AddInst(Value *S1, Value *S2, const string &Name = "") - : BinaryOperator(Instruction::Add, S1, S2, Name) { + GenericBinaryInst(unsigned Opcode, Value *S1, Value *S2, + const char *OpcodeStr, const string &Name = "") + : BinaryOperator(Opcode, S1, S2, Name) { + OpcodeString = OpcodeStr; } - virtual string getOpcode() const { return "add"; } + virtual string getOpcode() const { return OpcodeString; } }; - -class SubInst : public BinaryOperator { -public: - SubInst(Value *S1, Value *S2, const string &Name = "") - : BinaryOperator(Instruction::Sub, S1, S2, Name) { - } - - virtual string getOpcode() const { return "sub"; } -}; - - class SetCondInst : public BinaryOperator { BinaryOps OpType; public: