llvm-6502/test/MC/ARM/elf-movt.s
Evan Cheng f3eb3bba16 Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.
- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14 02:38:49 +00:00

40 lines
1.4 KiB
ArmAsm

@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi | FileCheck -check-prefix=ASM %s
@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi -filetype=obj -o - | \
@ RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
.syntax unified
.text
.globl barf
.align 2
.type barf,%function
barf: @ @barf
@ BB#0: @ %entry
movw r0, :lower16:GOT-(.LPC0_2+8)
movt r0, :upper16:GOT-(.LPC0_2+16)
.LPC0_2:
@ ASM: movw r0, :lower16:(GOT-(.LPC0_2+8))
@ ASM-NEXT: movt r0, :upper16:(GOT-(.LPC0_2+16))
@@ make sure that the text section fixups are sane too
@ OBJ: '.text'
@ OBJ-NEXT: 'sh_type', 0x00000001
@ OBJ-NEXT: 'sh_flags', 0x00000006
@ OBJ-NEXT: 'sh_addr', 0x00000000
@ OBJ-NEXT: 'sh_offset', 0x00000034
@ OBJ-NEXT: 'sh_size', 0x00000008
@ OBJ-NEXT: 'sh_link', 0x00000000
@ OBJ-NEXT: 'sh_info', 0x00000000
@ OBJ-NEXT: 'sh_addralign', 0x00000004
@ OBJ-NEXT: 'sh_entsize', 0x00000000
@ OBJ-NEXT: '_section_data', 'f00f0fe3 ff0f4fe3'
@ OBJ: Relocation 0x00000000
@ OBJ-NEXT: 'r_offset', 0x00000000
@ OBJ-NEXT: 'r_sym'
@ OBJ-NEXT: 'r_type', 0x0000002d
@ OBJ: Relocation 0x00000001
@ OBJ-NEXT: 'r_offset', 0x00000004
@ OBJ-NEXT: 'r_sym'
@ OBJ-NEXT: 'r_type', 0x0000002e