1# REQUIRES: arm 2# RUN: rm -rf %t; split-file %s %t 3 4# RUN: llvm-mc -filetype=obj -triple=armv4t-apple-darwin %t/armv4t-dtrace.s -o %t/armv4t-dtrace.o 5# RUN: %lld -arch armv4t -o %t/armv4t-dtrace %t/armv4t-dtrace.o 6 7## If references of dtrace symbols are handled by lld, their relocation should be replaced with the following instructions 8# RUN: llvm-objdump --macho -D %t/armv4t-dtrace | FileCheck %s --check-prefix=CHECK-armv4t 9 10# CHECK-armv4t: 00 00 20 e0 eor r0, r0, r0 11 12# CHECK-armv4t: 00 00 a0 e1 mov r0, r0 13 14# RUN: llvm-mc -filetype=obj -triple=thumbv7-apple-darwin %t/armv7-dtrace.s -o %t/armv7-dtrace.o 15# RUN: %lld -arch armv7 -o %t/armv7-dtrace %t/armv7-dtrace.o 16 17## If references of dtrace symbols are handled by lld, their relocation should be replaced with the following instructions 18# RUN: llvm-objdump --macho -D %t/armv7-dtrace | FileCheck %s --check-prefix=CHECK-armv7 19 20# CHECK-armv7: 40 40 eors r0, r0 21# CHECK-armv7-NEXT: c0 46 mov r8, r8 22 23# CHECK-armv7: c0 46 mov r8, r8 24# CHECK-armv7-NEXT: c0 46 mov r8, r8 25 26;--- armv4t-dtrace.s 27 .globl _main 28_main: 29 bl ___dtrace_isenabled$Foo$added$v1 30 .reference ___dtrace_typedefs$Foo$v2 31 bl ___dtrace_probe$Foo$added$v1$696e74 32 .reference ___dtrace_stability$Foo$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0 33 34.subsections_via_symbols 35 36;--- armv7-dtrace.s 37 .globl _main 38 .thumb_func _main 39_main: 40 bl ___dtrace_isenabled$Foo$added$v1 41 .reference ___dtrace_typedefs$Foo$v2 42 bl ___dtrace_probe$Foo$added$v1$696e74 43 .reference ___dtrace_stability$Foo$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0 44 45.subsections_via_symbols 46