mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-25 00:33:15 +00:00
fix a type compatibility bug. imm is i32 in the input
pattern, not i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97956 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d10a53d5a1
commit
0273fbbf22
@ -1112,7 +1112,8 @@ def : Pat<(SystemZcall (i64 texternalsym:$dst)), (CALLi texternalsym:$dst)>;
|
||||
|
||||
// Arbitrary immediate support.
|
||||
def : Pat<(i32 imm:$src),
|
||||
(EXTRACT_SUBREG (MOV64ri32 (i64 imm:$src)), subreg_32bit)>;
|
||||
(EXTRACT_SUBREG (MOV64ri32 (GetI64FromI32 (i32 imm:$src))),
|
||||
subreg_32bit)>;
|
||||
|
||||
// Implement in terms of LLIHF/OILF.
|
||||
def : Pat<(i64 imm:$imm),
|
||||
|
@ -67,6 +67,10 @@ def HI32 : SDNodeXForm<imm, [{
|
||||
return getI32Imm(N->getZExtValue() >> 32);
|
||||
}]>;
|
||||
|
||||
def GetI64FromI32 : SDNodeXForm<imm, [{
|
||||
return CurDAG->getTargetConstant(N->getSExtValue(), MVT::i64);
|
||||
}]>;
|
||||
|
||||
def i32ll16 : PatLeaf<(i32 imm), [{
|
||||
// i32ll16 predicate - true if the 32-bit immediate has only rightmost 16
|
||||
// bits set.
|
||||
|
Loading…
x
Reference in New Issue
Block a user