mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
Add ShiftInst::isLogical/ArithmeticShift methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30445 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a5b07404f7
commit
2f463865c2
@ -213,10 +213,10 @@ public:
|
||||
/// getNegArgument, getNotArgument - Helper functions to extract the
|
||||
/// unary argument of a NEG or NOT operation implemented via Sub or Xor.
|
||||
///
|
||||
static const Value* getNegArgument(const Value *BinOp);
|
||||
static Value* getNegArgument( Value *BinOp);
|
||||
static const Value* getNotArgument(const Value *BinOp);
|
||||
static Value* getNotArgument( Value *BinOp);
|
||||
static const Value *getNegArgument(const Value *BinOp);
|
||||
static Value *getNegArgument( Value *BinOp);
|
||||
static const Value *getNotArgument(const Value *BinOp);
|
||||
static Value *getNotArgument( Value *BinOp);
|
||||
|
||||
BinaryOps getOpcode() const {
|
||||
return static_cast<BinaryOps>(Instruction::getOpcode());
|
||||
|
@ -16,7 +16,6 @@
|
||||
#ifndef LLVM_INSTRUCTIONS_H
|
||||
#define LLVM_INSTRUCTIONS_H
|
||||
|
||||
#include "llvm/Instruction.h"
|
||||
#include "llvm/InstrTypes.h"
|
||||
|
||||
namespace llvm {
|
||||
@ -633,6 +632,17 @@ public:
|
||||
}
|
||||
unsigned getNumOperands() const { return 2; }
|
||||
|
||||
/// isLogicalShift - Return true if this is a logical shift left or a logical
|
||||
/// shift right.
|
||||
bool isLogicalShift() const;
|
||||
|
||||
/// isArithmeticShift - Return true if this is a sign-extending shift right
|
||||
/// operation.
|
||||
bool isArithmeticShift() const {
|
||||
return !isLogicalShift();
|
||||
}
|
||||
|
||||
|
||||
virtual ShiftInst *clone() const;
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
|
@ -1141,6 +1141,17 @@ bool BinaryOperator::swapOperands() {
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ShiftInst Class
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// isLogicalShift - Return true if this is a logical shift left or a logical
|
||||
/// shift right.
|
||||
bool ShiftInst::isLogicalShift() const {
|
||||
return getOpcode() == Instruction::Shl || getType()->isUnsigned();
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SetCondInst Class
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user