mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 06:29:05 +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:
@@ -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
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Reference in New Issue
Block a user