mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +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::
|
||||
getThumbCBTargetOpValue(const MCInst &MI, unsigned OpIdx,
|
||||
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
|
||||
|
@ -37,6 +37,15 @@ _func:
|
||||
@ CHECK: adc r4, r2, #2139095040 @ encoding: [0x42,0xf1,0xff,0x44]
|
||||
@ 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
|
||||
@------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user