mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 17:32:36 +00:00
Don't call Predicate_* methods directly from Sparc target.
Modernize predicates a bit. The Predicate_* methods are not used by TableGen any longer. They are only emitted for the sake of legacy code. llvm-svn: 111263
This commit is contained in:
parent
4597437c58
commit
74db02758b
@ -84,7 +84,7 @@ bool SparcDAGToDAGISel::SelectADDRri(SDNode *Op, SDValue Addr,
|
||||
|
||||
if (Addr.getOpcode() == ISD::ADD) {
|
||||
if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
|
||||
if (Predicate_simm13(CN)) {
|
||||
if (isInt<13>(CN->getSExtValue())) {
|
||||
if (FrameIndexSDNode *FIN =
|
||||
dyn_cast<FrameIndexSDNode>(Addr.getOperand(0))) {
|
||||
// Constant offset from frame ref.
|
||||
@ -120,9 +120,9 @@ bool SparcDAGToDAGISel::SelectADDRrr(SDNode *Op, SDValue Addr,
|
||||
return false; // direct calls.
|
||||
|
||||
if (Addr.getOpcode() == ISD::ADD) {
|
||||
if (isa<ConstantSDNode>(Addr.getOperand(1)) &&
|
||||
Predicate_simm13(Addr.getOperand(1).getNode()))
|
||||
return false; // Let the reg+imm pattern catch this!
|
||||
if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))
|
||||
if (isInt<13>(CN->getSExtValue()))
|
||||
return false; // Let the reg+imm pattern catch this!
|
||||
if (Addr.getOperand(0).getOpcode() == SPISD::Lo ||
|
||||
Addr.getOperand(1).getOpcode() == SPISD::Lo)
|
||||
return false; // Let the reg+imm pattern catch this!
|
||||
|
@ -43,17 +43,9 @@ def UseDeprecatedInsts : Predicate<"Subtarget.useDeprecatedV8Instructions()">;
|
||||
// Instruction Pattern Stuff
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def simm11 : PatLeaf<(imm), [{
|
||||
// simm11 predicate - True if the imm fits in a 11-bit sign extended field.
|
||||
return (((int)N->getZExtValue() << (32-11)) >> (32-11)) ==
|
||||
(int)N->getZExtValue();
|
||||
}]>;
|
||||
def simm11 : PatLeaf<(imm), [{ return isInt<11>(N->getSExtValue()); }]>;
|
||||
|
||||
def simm13 : PatLeaf<(imm), [{
|
||||
// simm13 predicate - True if the imm fits in a 13-bit sign extended field.
|
||||
return (((int)N->getZExtValue() << (32-13)) >> (32-13)) ==
|
||||
(int)N->getZExtValue();
|
||||
}]>;
|
||||
def simm13 : PatLeaf<(imm), [{ return isInt<13>(N->getSExtValue()); }]>;
|
||||
|
||||
def LO10 : SDNodeXForm<imm, [{
|
||||
return CurDAG->getTargetConstant((unsigned)N->getZExtValue() & 1023,
|
||||
|
Loading…
x
Reference in New Issue
Block a user