62 lines · plain
1# RUN: rm -rf %t && mkdir -p %t2# RUN: llvm-mc -triple=thumbv7s-apple-ios7.0.0 -filetype=obj -o %t/MachO_Thumb.o %s3# RUN: llvm-rtdyld -triple=thumbv7s-apple-ios7.0.0 -verify -check=%s %t/MachO_Thumb.o4 5 .section __TEXT,__text,regular,pure_instructions6 .syntax unified7 8 .globl thumb_caller_thumb_callee9 .p2align 110 .code 1611 .thumb_func thumb_caller_thumb_callee12thumb_caller_thumb_callee:13 nop14 15 .globl arm_caller_thumb_callee16 .p2align 117 .code 1618 .thumb_func arm_caller_thumb_callee19arm_caller_thumb_callee:20 nop21 22 .globl thumb_caller_arm_callee23 .p2align 124 .code 3225thumb_caller_arm_callee:26 nop27 28 .globl thumb_caller29 .p2align 130 .code 1631 .thumb_func thumb_caller32thumb_caller:33 nop34 35# Check that stubs for thumb callers use thumb code (not arm), and that thumb36# callees have the low bit set on their addresses.37#38# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, thumb_caller_thumb_callee)) = 0xf000f8df39# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, thumb_caller_thumb_callee) + 4) = (thumb_caller_thumb_callee | 0x1)40 bl thumb_caller_thumb_callee41 42# Check that arm callees do not have the low bit set on their addresses.43#44# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, thumb_caller_arm_callee)) = 0xf000f8df45# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, thumb_caller_arm_callee) + 4) = thumb_caller_arm_callee46 bl thumb_caller_arm_callee47 48 .globl arm_caller49 .p2align 250 .code 3251arm_caller:52 nop53 54# Check that stubs for arm callers use arm code (not thumb), and that thumb55# callees have the low bit set on their addresses.56# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, arm_caller_thumb_callee)) = 0xe51ff00457# rtdyld-check: *{4}(stub_addr(MachO_Thumb.o/__text, arm_caller_thumb_callee) + 4) = (arm_caller_thumb_callee | 0x1)58 bl arm_caller_thumb_callee59 nop60 61.subsections_via_symbols62