// 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: