mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
Teach the dag isel generator how to construct arbitrary immediates. The
generated isel now tries li then lis, then lis+ori. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23418 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
72fe91c4dd
commit
ea874f3306
@ -774,7 +774,12 @@ def : Pat<(or GPRC:$in, imm:$imm),
|
|||||||
def : Pat<(xor GPRC:$in, imm:$imm),
|
def : Pat<(xor GPRC:$in, imm:$imm),
|
||||||
(XORIS (XORI GPRC:$in, (LO16 imm:$imm)), (HI16 imm:$imm))>;
|
(XORIS (XORI GPRC:$in, (LO16 imm:$imm)), (HI16 imm:$imm))>;
|
||||||
|
|
||||||
// Same as above, but using a temporary.
|
// Arbitrary immediate support.
|
||||||
|
def : Pat<(i32 imm:$imm),
|
||||||
|
(ORI (LIS (HI16 imm:$imm)), (LO16 imm:$imm))>;
|
||||||
|
|
||||||
|
|
||||||
|
// Same as above, but using a temporary. FIXME: implement temporaries :)
|
||||||
/*
|
/*
|
||||||
def : Pattern<(xor GPRC:$in, imm:$imm),
|
def : Pattern<(xor GPRC:$in, imm:$imm),
|
||||||
[(set GPRC:$tmp, (XORI GPRC:$in, (LO16 imm:$imm))),
|
[(set GPRC:$tmp, (XORI GPRC:$in, (LO16 imm:$imm))),
|
||||||
|
Loading…
Reference in New Issue
Block a user