1# REQUIRES: x86 2 3# RUN: rm -rf %t; split-file %s %t 4 5# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/foo.s -o %t/foo.o 6# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/bar.s -o %t/bar.o 7# RUN: %lld %t/foo.o %t/bar.o -o %t/main.exe 8# RUN: llvm-objdump --private-headers %t/main.exe > %t/objdump 9# RUN: llvm-objdump --macho --data-in-code %t/main.exe >> %t/objdump 10# RUN: FileCheck %s < %t/objdump 11 12 13# CHECK-LABEL: sectname __text 14# CHECK-NEXT: segname __TEXT 15# CHECK-NEXT: addr 16# CHECK-NEXT: size 17# CHECK-NEXT: offset [[#%,TEXT:]] 18 19# CHECK-LABEL: cmd LC_DATA_IN_CODE 20# CHECK-NEXT: cmdsize 16 21# CHECK-NEXT: dataoff 22# CHECK-NEXT: datasize 16 23 24# CHECK-LABEL: Data in code table (2 entries) 25# CHECK-NEXT: offset length kind 26# CHECK-NEXT: [[#%x,TEXT + 28]] 24 JUMP_TABLE32 27# CHECK-NEXT: [[#%x,TEXT + 68]] 12 JUMP_TABLE32 28 29#--- foo.s 30.text 31.globl _main 32.p2align 4, 0x90 33_main: 34pushq %rbp 35movq %rsp, %rbp 36subq $16, %rsp 37movl $0, -4(%rbp) 38movb $0, %al 39callq _bar 40addq $16, %rsp 41popq %rbp 42retq 43.p2align 2, 0x90 44.data_region jt32 45.long 0 46.long 0 47.long 0 48.long 0 49.long 0 50.long 0 51.end_data_region 52 53#--- bar.s 54.text 55.globl _bar 56.p2align 4 57_bar: 58retq 59.p2align 2, 0x90 60.data_region jt32 61.long 0 62.long 0 63.long 0 64.end_data_region 65