mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
d64bc3ec0b
The Thumb2 conditional branch B<cond>.W has a different encoding (T3) to the unconditional branch B.W (T4) as it needs to record <cond>. As the encoding is different the B<cond>.W is given a different relocation type. ELF for the ARM Architecture 4.6.1.6 (Table-13) states that R_ARM_THM_JUMP19 should be used for B<cond>.W. At present the MC layer is using the R_ARM_THM_JUMP24 from B.W. This change makes B<cond>.W use R_ARM_THM_JUMP19 and alters the existing test that checks for R_ARM_THM_JUMP24 to expect R_ARM_THM_JUMP19. llvm-svn: 271997
13 lines
595 B
ArmAsm
13 lines
595 B
ArmAsm
@ RUN: not llvm-mc -triple thumbv6m-none-macho -filetype=obj -o /dev/null %s 2>&1 | FileCheck --check-prefix=CHECK-ERROR %s
|
|
@ RUN: not llvm-mc -triple thumbv7m-none-macho -filetype=obj -o /dev/null %s 2>&1 | FileCheck --check-prefix=CHECK-ERROR %s
|
|
@ RUN: llvm-mc -triple thumbv7m-none-eabi -filetype=obj -o %t %s
|
|
@ RUN: llvm-objdump -d -r -triple thumbv7m-none-eabi %t | FileCheck --check-prefix=CHECK-ELF %s
|
|
|
|
.global func1
|
|
_func1:
|
|
bne _func2
|
|
@ CHECK-ERROR: unsupported relocation on symbol
|
|
|
|
@ CHECK-ELF: 7f f4 fe af bne.w #-4
|
|
@ CHECK-ELF-NEXT: R_ARM_THM_JUMP19 _func2
|