mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111263 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8708ead5a4
commit
4bb862d179
@ -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…
Reference in New Issue
Block a user