mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
7b25ecf6ad
We on the linker to resolve calls to the appropriate BL/BLX instruction to make interworking function correctly. It uses the symbol in the relocation to do that, so we need to be careful about being too clever. To enable this for ARM mode, split the BL/BLX fixup kind off from the unconditional-branch fixups. rdar://10927209 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151571 91177308-0d34-0410-b5e6-96231b3b80d8
18 lines
763 B
ArmAsm
18 lines
763 B
ArmAsm
@ RUN: llvm-mc -triple armv7-unknown-unknown %s --show-encoding > %t
|
|
@ RUN: FileCheck < %t %s
|
|
|
|
bl _printf
|
|
@ CHECK: bl _printf @ encoding: [A,A,A,0xeb]
|
|
@ CHECK: @ fixup A - offset: 0, value: _printf, kind: fixup_arm_bl
|
|
|
|
mov r9, :lower16:(_foo)
|
|
movw r9, :lower16:(_foo)
|
|
movt r9, :upper16:(_foo)
|
|
|
|
@ CHECK: movw r9, :lower16:_foo @ encoding: [A,0x90'A',0b0000AAAA,0xe3]
|
|
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_arm_movw_lo16
|
|
@ CHECK: movw r9, :lower16:_foo @ encoding: [A,0x90'A',0b0000AAAA,0xe3]
|
|
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_arm_movw_lo16
|
|
@ CHECK: movt r9, :upper16:_foo @ encoding: [A,0x90'A',0b0100AAAA,0xe3]
|
|
@ CHECK: @ fixup A - offset: 0, value: _foo, kind: fixup_arm_movt_hi16
|