brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · d19a43c Raw
38 lines · plain
1// REQUIRES: arm2// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t3// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %S/Inputs/far-arm-thumb-abs.s -o %tfar4// RUN: ld.lld  %t %tfar -o %t25// RUN: llvm-objdump -d %t26 .syntax unified7 .thumb8 .section .text, "ax",%progbits9 .globl _start10 .balign 0x1000011 .type _start,%function12_start:13 // address of too_far symbols are just out of range of ARM branch with14 // 26-bit immediate field and an addend of -815 bl  too_far116 b   too_far217 beq.w too_far318 19// CHECK: Disassembly of section .text:20// CHECK-EMPTY:21// CHECK-NEXT: _start:22// CHECK-NEXT:    20000:       00 f0 04 f8     bl      #823// CHECK-NEXT:    20004:       00 f0 07 b8     b.w     #14 <__Thumbv7ABSLongThunk_too_far2>24// CHECK-NEXT:    20008:       00 f0 0a 80     beq.w   #20 <__Thumbv7ABSLongThunk_too_far3>25// CHECK: __Thumbv7ABSLongThunk_too_far1:26// CHECK-NEXT:    2000c:       40 f2 05 0c     movw    r12, #527// CHECK-NEXT:    20010:       c0 f2 02 1c     movt    r12, #25828// CHECK-NEXT:    20014:       60 47   bx      r1229// CHECK: __Thumbv7ABSLongThunk_too_far2:30// CHECK-NEXT:    20016:       40 f2 09 0c     movw    r12, #931// CHECK-NEXT:    2001a:       c0 f2 02 1c     movt    r12, #25832// CHECK-NEXT:    2001e:       60 47   bx      r1233// CHECK: __Thumbv7ABSLongThunk_too_far3:34// CHECK-NEXT:    20020:       40 f2 0d 0c     movw    r12, #1335// CHECK-NEXT:    20024:       c0 f2 12 0c     movt    r12, #1836// CHECK-NEXT:    20028:       60 47   bx      r1237// CHECK-NEXT:    2002a:       00 00   movs    r0, r038