115 lines · plain
1// REQUIRES: arm2 3// RUN: split-file %s %t4// RUN: llvm-mc -filetype=obj -triple=thumbv6m-unknown-linux-gnueabi %t/asm -o %t.o5// RUN: ld.lld --script %t/lds %t.o -o %t26// RUN: llvm-objdump -d %t2 --triple=thumbv6m-unknown-linux-gnueabi --no-show-raw-insn | FileCheck %s7 8//--- lds9SECTIONS {10 .tests 0x00001000 : AT(0x00001000) { *(.tests) }11 .sym1 0x11223344 : AT(0x11223344) { *(.sym1) }12 .sym2 0x00ffffff : AT(0x00ffffff) { *(.sym2) }13 .fn 0x55667788 : AT(0x55667788) { *(.fn) }14}15 16//--- asm17 .section .tests, "ax", %progbits18 19// CHECK-LABEL: <R_ARM_THM_ALU_ABS_G0_NC>:20// CHECK: adds r0, #0x4421// CHECK-NEXT: movs r0, #0x4422// CHECK-NEXT: movs r0, #0x4523// CHECK-NEXT: movs r0, #0x4324// CHECK-NEXT: movs r0, #0xff25// CHECK-NEXT: movs r0, #0x026// CHECK-NEXT: movs r0, #0xfe27// CHECK-NEXT: movs r0, #0x8928// CHECK-NEXT: movs r0, #0x8b29R_ARM_THM_ALU_ABS_G0_NC:30 adds r0, :lower0_7:sym131 movs r0, :lower0_7:sym132 movs r0, :lower0_7:sym1+133 movs r0, :lower0_7:sym1+0xff34 movs r0, :lower0_7:sym235 movs r0, :lower0_7:sym2+136 movs r0, :lower0_7:sym2+0xff37 movs r0, :lower0_7:fn38 movs r0, :lower0_7:fn+239 40// CHECK-LABEL: <R_ARM_THM_ALU_ABS_G1_NC>:41// CHECK: adds r0, #0x3342// CHECK-NEXT: movs r0, #0x3343// CHECK-NEXT: movs r0, #0x3344// CHECK-NEXT: movs r0, #0x3445// CHECK-NEXT: movs r0, #0xff46// CHECK-NEXT: movs r0, #0x047// CHECK-NEXT: movs r0, #0x048// CHECK-NEXT: movs r0, #0x7749// CHECK-NEXT: movs r0, #0x7750R_ARM_THM_ALU_ABS_G1_NC:51 adds r0, :lower8_15:sym152 movs r0, :lower8_15:sym153 movs r0, :lower8_15:sym1+154 movs r0, :lower8_15:sym1+0xff55 movs r0, :lower8_15:sym256 movs r0, :lower8_15:sym2+157 movs r0, :lower8_15:sym2+0xff58 movs r0, :lower8_15:fn59 movs r0, :lower8_15:fn+260 61// CHECK-LABEL: <R_ARM_THM_ALU_ABS_G2_NC>:62// CHECK: adds r0, #0x2263// CHECK-NEXT: movs r0, #0x2264// CHECK-NEXT: movs r0, #0x2265// CHECK-NEXT: movs r0, #0x2266// CHECK-NEXT: movs r0, #0xff67// CHECK-NEXT: movs r0, #0x068// CHECK-NEXT: movs r0, #0x069// CHECK-NEXT: movs r0, #0x6670// CHECK-NEXT: movs r0, #0x6671R_ARM_THM_ALU_ABS_G2_NC:72 adds r0, :upper0_7:sym173 movs r0, :upper0_7:sym174 movs r0, :upper0_7:sym1+175 movs r0, :upper0_7:sym1+0xff76 movs r0, :upper0_7:sym277 movs r0, :upper0_7:sym2+178 movs r0, :upper0_7:sym2+0xff79 movs r0, :upper0_7:fn80 movs r0, :upper0_7:fn+281 82// CHECK-LABEL: <R_ARM_THM_ALU_ABS_G3>:83// CHECK: adds r0, #0x1184// CHECK-NEXT: movs r0, #0x1185// CHECK-NEXT: movs r0, #0x1186// CHECK-NEXT: movs r0, #0x1187// CHECK-NEXT: movs r0, #0x088// CHECK-NEXT: movs r0, #0x189// CHECK-NEXT: movs r0, #0x190// CHECK-NEXT: movs r0, #0x5591// CHECK-NEXT: movs r0, #0x5592R_ARM_THM_ALU_ABS_G3:93 adds r0, :upper8_15:sym194 movs r0, :upper8_15:sym195 movs r0, :upper8_15:sym1+196 movs r0, :upper8_15:sym1+0xff97 movs r0, :upper8_15:sym298 movs r0, :upper8_15:sym2+199 movs r0, :upper8_15:sym2+0xff100 movs r0, :upper8_15:fn101 movs r0, :upper8_15:fn+2102 103 .section .sym1, "aw", %progbits104sym1:105 .byte 0106 107 .section .sym2, "aw", %progbits108sym2:109 .byte 0110 111 .section .fn, "ax", %progbits112 .thumb_func113fn:114 bx lr115