mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
ARM: mark branch-like instructions with correct flags.
There's probably no way to test BXJ, but if the compiler ever did emit it during CodeGen it would have to be a block terminator so "isBranch" is appropriate. BLX is more tricky. Clearly a call, but it affects surprisingly little. rdar://18719544 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236140 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f74703a44f
commit
304d8fb5ca
@ -2256,6 +2256,7 @@ def BLXi : AXI<(outs), (ins blx_target:$target), BrMiscFrm, NoItinerary,
|
|||||||
bits<25> target;
|
bits<25> target;
|
||||||
let Inst{23-0} = target{24-1};
|
let Inst{23-0} = target{24-1};
|
||||||
let Inst{24} = target{0};
|
let Inst{24} = target{0};
|
||||||
|
let isCall = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Branch and Exchange Jazelle
|
// Branch and Exchange Jazelle
|
||||||
@ -2266,6 +2267,7 @@ def BXJ : ABI<0b0001, (outs), (ins GPR:$func), NoItinerary, "bxj", "\t$func",
|
|||||||
let Inst{19-8} = 0xfff;
|
let Inst{19-8} = 0xfff;
|
||||||
let Inst{7-4} = 0b0010;
|
let Inst{7-4} = 0b0010;
|
||||||
let Inst{3-0} = func;
|
let Inst{3-0} = func;
|
||||||
|
let isBranch = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tail calls.
|
// Tail calls.
|
||||||
|
Loading…
Reference in New Issue
Block a user