86 lines · plain
1# REQUIRES: x862 3# RUN: rm -rf %t; split-file %s %t4 5# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/foo.s -o %t/foo.o6# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/bar.s -o %t/bar.o7# RUN: %lld -lSystem %t/foo.o %t/bar.o -o %t/main.exe8# RUN: llvm-otool -l %t/main.exe > %t/objdump9# RUN: llvm-otool -Gv %t/main.exe >> %t/objdump10# RUN: FileCheck %s < %t/objdump11 12# CHECK-LABEL: sectname __text13# CHECK-NEXT: segname __TEXT14# CHECK-NEXT: addr15# CHECK-NEXT: size16# CHECK-NEXT: offset [[#%,TEXT:]]17 18# CHECK-LABEL: cmd LC_DATA_IN_CODE19# CHECK-NEXT: cmdsize 1620# CHECK-NEXT: dataoff21# CHECK-NEXT: datasize 2422 23# CHECK-LABEL: Data in code table (3 entries)24# CHECK-NEXT: offset length kind25# CHECK-NEXT: [[#%x,TEXT + 28]] 24 JUMP_TABLE3226# CHECK-NEXT: [[#%x,TEXT + 68]] 8 JUMP_TABLE3227# CHECK-NEXT: [[#%x,TEXT + 84]] 12 JUMP_TABLE3228 29# RUN: %lld -lSystem %t/foo.o %t/bar.o -no_data_in_code_info -o %t/main.exe30# RUN: llvm-otool -l %t/main.exe | FileCheck --check-prefix=OMIT %s31 32# OMIT-NOT: LC_DATA_IN_CODE33 34# RUN: %lld -lSystem %t/foo.o %t/bar.o -no_data_in_code_info -data_in_code_info -o %t/main.exe35# RUN: llvm-otool -l %t/main.exe > %t/objdump36# RUN: llvm-otool -Gv %t/main.exe >> %t/objdump37# RUN: FileCheck %s < %t/objdump38 39#--- foo.s40.text41.section __TEXT,__StaticInit,regular,pure_instructions42.p2align 4, 0x9043_some_init_function:44retq45.p2align 2, 0x9046.data_region jt3247.long 048.long 049.end_data_region50 51.section __TEXT,__text,regular,pure_instructions52.globl _main53.p2align 4, 0x9054_main:55pushq %rbp56movq %rsp, %rbp57subq $16, %rsp58movl $0, -4(%rbp)59movb $0, %al60callq _bar61addq $16, %rsp62popq %rbp63retq64.p2align 2, 0x9065.data_region jt3266.long 067.long 068.long 069.long 070.long 071.long 072.end_data_region73 74#--- bar.s75.text76.globl _bar77.p2align 478_bar:79retq80.p2align 2, 0x9081.data_region jt3282.long 083.long 084.long 085.end_data_region86