mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-26 10:29:36 +00:00
Explicitly mark LEApcrel pseudos with hasSideEffects.
It's not clear that they should be marked as such, but tbb formation fails if t2LEApcrelJT is hoisted of of a loop. This doesn't change the flags on these instructions, UnmodeledSideEffects was already inferred from the missing pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162603 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aaaecfce70
commit
7778ee1ed9
@ -1794,12 +1794,15 @@ def ADR : AI1<{0,?,?,0}, (outs GPR:$Rd), (ins adrlabel:$label),
|
||||
let Inst{15-12} = Rd;
|
||||
let Inst{11-0} = label{11-0};
|
||||
}
|
||||
|
||||
let hasSideEffects = 1 in {
|
||||
def LEApcrel : ARMPseudoInst<(outs GPR:$Rd), (ins i32imm:$label, pred:$p),
|
||||
4, IIC_iALUi, []>;
|
||||
|
||||
def LEApcrelJT : ARMPseudoInst<(outs GPR:$Rd),
|
||||
(ins i32imm:$label, nohash_imm:$id, pred:$p),
|
||||
4, IIC_iALUi, []>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Control Flow Instructions.
|
||||
|
@ -1200,6 +1200,7 @@ def t2ADR : T2PCOneRegImm<(outs rGPR:$Rd),
|
||||
let neverHasSideEffects = 1, isReMaterializable = 1 in
|
||||
def t2LEApcrel : t2PseudoInst<(outs rGPR:$Rd), (ins i32imm:$label, pred:$p),
|
||||
4, IIC_iALUi, []>;
|
||||
let hasSideEffects = 1 in
|
||||
def t2LEApcrelJT : t2PseudoInst<(outs rGPR:$Rd),
|
||||
(ins i32imm:$label, nohash_imm:$id, pred:$p),
|
||||
4, IIC_iALUi,
|
||||
|
Loading…
x
Reference in New Issue
Block a user