mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-21 03:32:21 +00:00
Don't call Predicate_* in Mips.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111468 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d96b02b3d6
commit
7552a3df39
@ -137,7 +137,7 @@ SelectAddr(SDNode *Op, SDValue Addr, SDValue &Offset, SDValue &Base)
|
|||||||
// Operand is a result from an ADD.
|
// Operand is a result from an ADD.
|
||||||
if (Addr.getOpcode() == ISD::ADD) {
|
if (Addr.getOpcode() == ISD::ADD) {
|
||||||
if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
|
if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
|
||||||
if (Predicate_immSExt16(CN)) {
|
if (isInt<16>(CN->getSExtValue())) {
|
||||||
|
|
||||||
// If the first operand is a FI, get the TargetFI Node
|
// If the first operand is a FI, get the TargetFI Node
|
||||||
if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>
|
if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>
|
||||||
@ -248,8 +248,8 @@ SDNode *MipsDAGToDAGISel::SelectStoreFp64(SDNode *N) {
|
|||||||
|
|
||||||
SDValue Chain = N->getOperand(0);
|
SDValue Chain = N->getOperand(0);
|
||||||
|
|
||||||
if (!Predicate_unindexedstore(N) ||
|
StoreSDNode *SN = cast<StoreSDNode>(N);
|
||||||
!Predicate_store(N))
|
if (SN->isTruncatingStore() || SN->getAddressingMode() != ISD::UNINDEXED)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
SDValue N1 = N->getOperand(1);
|
SDValue N1 = N->getOperand(1);
|
||||||
|
@ -96,12 +96,7 @@ def HI16 : SDNodeXForm<imm, [{
|
|||||||
|
|
||||||
// Node immediate fits as 16-bit sign extended on target immediate.
|
// Node immediate fits as 16-bit sign extended on target immediate.
|
||||||
// e.g. addi, andi
|
// e.g. addi, andi
|
||||||
def immSExt16 : PatLeaf<(imm), [{
|
def immSExt16 : PatLeaf<(imm), [{ return isInt<16>(N->getSExtValue()); }]>;
|
||||||
if (N->getValueType(0) == MVT::i32)
|
|
||||||
return (int32_t)N->getZExtValue() == (short)N->getZExtValue();
|
|
||||||
else
|
|
||||||
return (int64_t)N->getZExtValue() == (short)N->getZExtValue();
|
|
||||||
}]>;
|
|
||||||
|
|
||||||
// Node immediate fits as 16-bit zero extended on target immediate.
|
// Node immediate fits as 16-bit zero extended on target immediate.
|
||||||
// The LO16 param means that only the lower 16 bits of the node
|
// The LO16 param means that only the lower 16 bits of the node
|
||||||
|
Loading…
x
Reference in New Issue
Block a user