diff options
author | Chris Lattner <sabre@nondot.org> | 2001-07-07 19:24:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-07-07 19:24:15 +0000 |
commit | a41f50dea8573e4a610b5aa5e45b5c368559b084 (patch) | |
tree | 4e4bc17fa7fffd16e0f99e9229015ca6654ef802 /lib/VMCore/iOperators.cpp | |
parent | 30f24a402c27919e4809f6a54ec4046a921a889f (diff) |
Broad superficial changes:
* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/iOperators.cpp')
-rw-r--r-- | lib/VMCore/iOperators.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/lib/VMCore/iOperators.cpp b/lib/VMCore/iOperators.cpp index c1efb42e71..ef6933adb2 100644 --- a/lib/VMCore/iOperators.cpp +++ b/lib/VMCore/iOperators.cpp @@ -10,25 +10,31 @@ BinaryOperator *BinaryOperator::create(unsigned Op, Value *S1, Value *S2, const string &Name) { switch (Op) { - // Standard binary operators... - case Add: return new GenericBinaryInst(Op, S1, S2, "add", Name); - case Sub: return new GenericBinaryInst(Op, S1, S2, "sub", Name); - case Mul: return new GenericBinaryInst(Op, S1, S2, "mul", Name); - case Div: return new GenericBinaryInst(Op, S1, S2, "div", Name); - case Rem: return new GenericBinaryInst(Op, S1, S2, "rem", Name); - - // Logical operators... - case And: return new GenericBinaryInst(Op, S1, S2, "and", Name); - case Or : return new GenericBinaryInst(Op, S1, S2, "or", Name); - case Xor: return new GenericBinaryInst(Op, S1, S2, "xor", Name); - // Binary comparison operators... 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 new GenericBinaryInst(Op, S1, S2, Name); + } +} + +const char *GenericBinaryInst::getOpcodeName() const { + switch (getOpcode()) { + // Standard binary operators... + case Add: return "add"; + case Sub: return "sub"; + case Mul: return "mul"; + case Div: return "div"; + case Rem: return "rem"; + + // Logical operators... + case And: return "and"; + case Or : return "or"; + case Xor: return "xor"; + default: + cerr << "Invalid binary operator type!" << getOpcode() << endl; return 0; } } @@ -45,10 +51,10 @@ SetCondInst::SetCondInst(BinaryOps opType, Value *S1, Value *S2, setType(Type::BoolTy); // setcc instructions always return bool type. // Make sure it's a valid type... - assert(getOpcode() != "Invalid opcode type to SetCondInst class!"); + assert(getOpcodeName() != 0); } -string SetCondInst::getOpcode() const { +const char *SetCondInst::getOpcodeName() const { switch (OpType) { case SetLE: return "setle"; case SetGE: return "setge"; |