1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00
llvm-mirror/test/MC/ARM/macho-word-reloc-thumb.s
Tim Northover 4b802a178e ARM-MachO: don't add Thumb bit for addend to non-external relocation.
ld64 supplies its own Thumb bit for Thumb functions, and intentionally zeroes
out that part of any addend in an object file. But it only does that for
symbols marked N_EXT -- i.e. external symbols. So LLVM should avoid setting
that extra bit in other cases.

llvm-svn: 339007
2018-08-06 11:32:44 +00:00

31 lines
753 B
ArmAsm

@ RUN: llvm-mc -triple thumbv7-apple-ios %s -filetype=obj -o %t
@ RUN: llvm-objdump -macho -d %t -triple thumbv7-apple-ios | FileCheck %s
@ ARM relocatable object files try to look like they're pre-linked, so the
@ offsets in the instructions are a best-guess. I suspect the "-3" should b
@ CHECK: movw r1, :lower16:((_bar-8)-3)
@ [...]
@ CHECK: .long {{[0-9]*[13579]}}
.thumb
.thumb_func _foo
_foo:
movw r1, :lower16:(_bar-(LPC2_0+4))
movt r1, :upper16:(_bar-(LPC2_0+4))
LPC2_0:
add r1, pc
ldr r0, Lconstpool
bx lr
Lconstpool:
.data_region
.word _bar
.end_data_region
.thumb_func _bar
.global _bar
_bar:
bx lr
.subsections_via_symbols