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