115 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t; split-file %s %t3# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/test.s -o %t/test.o4# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/qux.s -o %t/qux.o5# RUN: %lld -dylib %t/test.o %t/qux.o -o %t/test6# RUN: llvm-objdump --macho --section="__TEXT,__literals" --section="__DATA,ptrs" --syms %t/test | FileCheck %s7# RUN: llvm-readobj --section-headers %t/test | FileCheck %s --check-prefix=HEADER8 9# RUN: %lld -dylib -no_deduplicate %t/test.o %t/qux.o -o %t/test10# RUN: llvm-objdump --macho --section="__TEXT,__literals" --section="__DATA,ptrs" --syms %t/test | FileCheck %s11# RUN: llvm-readobj --section-headers %t/test | FileCheck %s --check-prefix=HEADER12 13# CHECK: Contents of (__TEXT,__literals) section14# CHECK-NEXT: [[#%.16x,DEADBEEF16:]] ef be ad de ef be ad de ef be ad de ef be ad de15# CHECK-NEXT: [[#%.16x,FEEDFACE16:]] ce fa ed fe ce fa ed fe ce fa ed fe ce fa ed fe16# CHECK-NEXT: [[#%.16x,DEADBEEF8:]] ef be ad de ef be ad de ce fa ed fe ce fa ed fe17# CHECK-NEXT: [[#%.16x,DEADBEEF4:]] ef be ad de ce fa ed fe18# CHECK-NEXT: Contents of (__DATA,ptrs) section19# CHECK-NEXT: 0000000000001000 0x[[#%x,DEADBEEF16]]20# CHECK-NEXT: 0000000000001008 0x[[#%x,DEADBEEF16]]21# CHECK-NEXT: 0000000000001010 0x[[#%x,FEEDFACE16]]22# CHECK-NEXT: 0000000000001018 0x[[#%x,DEADBEEF16]]23# CHECK-NEXT: 0000000000001020 0x[[#%x,DEADBEEF8]]24# CHECK-NEXT: 0000000000001028 0x[[#%x,DEADBEEF8]]25# CHECK-NEXT: 0000000000001030 0x[[#%x,DEADBEEF8 + 8]]26# CHECK-NEXT: 0000000000001038 0x[[#%x,DEADBEEF8]]27# CHECK-NEXT: 0000000000001040 0x[[#%x,DEADBEEF4]]28# CHECK-NEXT: 0000000000001048 0x[[#%x,DEADBEEF4]]29# CHECK-NEXT: 0000000000001050 0x[[#%x,DEADBEEF4 + 4]]30# CHECK-NEXT: 0000000000001058 0x[[#%x,DEADBEEF4]]31 32## Make sure the symbol addresses are correct too.33# CHECK: SYMBOL TABLE:34# CHECK-DAG: [[#DEADBEEF16]] g O __TEXT,__literals _qux1635# CHECK-DAG: [[#DEADBEEF8]] g O __TEXT,__literals _qux836# CHECK-DAG: [[#DEADBEEF4]] g O __TEXT,__literals _qux437 38## Make sure we set the right alignment and flags.39# HEADER: Name: __literals40# HEADER-NEXT: Segment: __TEXT41# HEADER-NEXT: Address:42# HEADER-NEXT: Size:43# HEADER-NEXT: Offset:44# HEADER-NEXT: Alignment: 445# HEADER-NEXT: RelocationOffset:46# HEADER-NEXT: RelocationCount: 047# HEADER-NEXT: Type: Regular48# HEADER-NEXT: Attributes [ (0x0)49# HEADER-NEXT: ]50# HEADER-NEXT: Reserved1: 0x051# HEADER-NEXT: Reserved2: 0x052# HEADER-NEXT: Reserved3: 0x053 54#--- test.s55.literal456.p2align 257L._foo4:58 .long 0xdeadbeef59L._bar4:60 .long 0xdeadbeef61L._baz4:62 .long 0xfeedface63 64.literal865L._foo8:66 .quad 0xdeadbeefdeadbeef67L._bar8:68 .quad 0xdeadbeefdeadbeef69L._baz8:70 .quad 0xfeedfacefeedface71 72.literal1673L._foo16:74 .quad 0xdeadbeefdeadbeef75 .quad 0xdeadbeefdeadbeef76L._bar16:77 .quad 0xdeadbeefdeadbeef78 .quad 0xdeadbeefdeadbeef79L._baz16:80 .quad 0xfeedfacefeedface81 .quad 0xfeedfacefeedface82 83.section __DATA,ptrs,literal_pointers84.quad L._foo1685.quad L._bar1686.quad L._baz1687.quad _qux1688 89.quad L._foo890.quad L._bar891.quad L._baz892.quad _qux893 94.quad L._foo495.quad L._bar496.quad L._baz497.quad _qux498 99#--- qux.s100.globl _qux4, _qux8, _qux16101 102.literal4103.p2align 2104_qux4:105 .long 0xdeadbeef106 107.literal8108_qux8:109 .quad 0xdeadbeefdeadbeef110 111.literal16112_qux16:113 .quad 0xdeadbeefdeadbeef114 .quad 0xdeadbeefdeadbeef115