mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-06 05:33:28 +00:00
Fix encoding of CBZ/CBNZ Thumb2 instructions with immediate offsets rather than labels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138837 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d4522460d4
commit
21df36c57a
@ -501,7 +501,10 @@ getThumbBCCTargetOpValue(const MCInst &MI, unsigned OpIdx,
|
|||||||
uint32_t ARMMCCodeEmitter::
|
uint32_t ARMMCCodeEmitter::
|
||||||
getThumbCBTargetOpValue(const MCInst &MI, unsigned OpIdx,
|
getThumbCBTargetOpValue(const MCInst &MI, unsigned OpIdx,
|
||||||
SmallVectorImpl<MCFixup> &Fixups) const {
|
SmallVectorImpl<MCFixup> &Fixups) const {
|
||||||
return ::getBranchTargetOpValue(MI, OpIdx, ARM::fixup_arm_thumb_cb, Fixups);
|
const MCOperand MO = MI.getOperand(OpIdx);
|
||||||
|
if (MO.isExpr())
|
||||||
|
return ::getBranchTargetOpValue(MI, OpIdx, ARM::fixup_arm_thumb_cb, Fixups);
|
||||||
|
return (MO.getImm() >> 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return true if this branch has a non-always predication
|
/// Return true if this branch has a non-always predication
|
||||||
|
@ -37,6 +37,15 @@ _func:
|
|||||||
@ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]
|
@ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]
|
||||||
@ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64]
|
@ CHECK: adc r4, r2, #1664 @ encoding: [0x42,0xf5,0xd0,0x64]
|
||||||
|
|
||||||
|
@------------------------------------------------------------------------------
|
||||||
|
@ CBZ/CBNZ
|
||||||
|
@------------------------------------------------------------------------------
|
||||||
|
cbnz r7, #6
|
||||||
|
cbnz r7, #12
|
||||||
|
|
||||||
|
@ CHECK: cbnz r7, #6 @ encoding: [0x1f,0xb9]
|
||||||
|
@ CHECK: cbnz r7, #12 @ encoding: [0x37,0xb9]
|
||||||
|
|
||||||
@------------------------------------------------------------------------------
|
@------------------------------------------------------------------------------
|
||||||
@ IT
|
@ IT
|
||||||
@------------------------------------------------------------------------------
|
@------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user