xref: /aosp_15_r20/external/llvm/test/MC/ARM/macho-movwt.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple thumbv7s-apple-ios9.0 %s -filetype obj -o %t.o
2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-readobj -r %t.o | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker        .thumb
5*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x
6*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x+4
9*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x+4
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x+0x10000
12*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x+0x10000
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker        .arm
15*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x
16*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x+4
19*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x+4
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker        movw r0, :lower16:_x+0x10000
22*9880d681SAndroid Build Coastguard Worker        movt r0, :upper16:_x+0x10000
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker@ Enter the bizarre world of MachO relocations. First, they're in reverse order
25*9880d681SAndroid Build Coastguard Worker@ to the actual instructions
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker@ First column on the second line is the "other half" of the addend, its partner
28*9880d681SAndroid Build Coastguard Worker@ being in the instruction itself.
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker@ Third column identifies ARM/Thumb & HI/LO.
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x2C 0 1 1 ARM_RELOC_HALF 0 _x
33*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 1 0 ARM_RELOC_PAIR 0 -
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x28 0 0 1 ARM_RELOC_HALF 0 _x
36*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x1 0 0 0 ARM_RELOC_PAIR 0 -
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x24 0 1 1 ARM_RELOC_HALF 0 _x
39*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x4 0 1 0 ARM_RELOC_PAIR 0 -
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x20 0 0 1 ARM_RELOC_HALF 0 _x
42*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 0 0 ARM_RELOC_PAIR 0 -
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x1C 0 1 1 ARM_RELOC_HALF 0 _x
45*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 1 0 ARM_RELOC_PAIR 0 -
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x18 0 0 1 ARM_RELOC_HALF 0 _x
48*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 0 0 ARM_RELOC_PAIR 0 -
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x14 0 3 1 ARM_RELOC_HALF 0 _x
51*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 3 0 ARM_RELOC_PAIR 0 -
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x10 0 2 1 ARM_RELOC_HALF 0 _x
54*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x1 0 2 0 ARM_RELOC_PAIR 0 -
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Worker@ CHECK: 0xC 0 3 1 ARM_RELOC_HALF 0 _x
57*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x4 0 3 0 ARM_RELOC_PAIR 0 -
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x8 0 2 1 ARM_RELOC_HALF 0 _x
60*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 0 ARM_RELOC_PAIR 0 -
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x4 0 3 1 ARM_RELOC_HALF 0 _x
63*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 3 0 ARM_RELOC_PAIR 0 -
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 1 ARM_RELOC_HALF 0 _x
66*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 0 ARM_RELOC_PAIR 0 -
67