llvm/test/MC/MachO/ARM/thumb-bl-jbits.s
Kevin Enderby 2d524b0765 Fix issues with the ARM bl and blx thumb instructions and the J1 and J2 bits
for the assembler and disassembler.  Which were not being set/read correctly
for offsets greater than 22 bits in some cases.

Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156118 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-03 22:41:56 +00:00

20 lines
533 B
ArmAsm

@ RUN: llvm-mc -triple=thumbv7-apple-darwin -filetype=obj -o - < %s | macho-dump --dump-section-data | FileCheck %s
.thumb
.thumb_func t
t: nop
.data
.space 4441096 - 4 - 2
.section __TEXT, __branch, regular, pure_instructions
.thumb
.thumb_func b
b:
bl t
# CHECK: '_section_data', 'c3f7fcf5'
# We are checking that the branch and link instruction which is:
# bl #-4441096
# has it displacement encoded correctly with respect to the J1 and J2 bits when
# the branch is assembled with a label not a displacement.
# rdar://10149689