forked from OSchip/llvm-project
53 lines
1.0 KiB
ArmAsm
53 lines
1.0 KiB
ArmAsm
|
# REQUIRES: x86
|
||
|
# RUN: llvm-mc %s -filetype=obj -triple=x86_64-windows-msvc -o %t.obj
|
||
|
# RUN: lld-link %t.obj -export:foo -export:bar -dll -noentry -out:%t.dll -verbose 2>&1 | FileCheck %s
|
||
|
# RUN: llvm-readobj --sections %t.dll | FileCheck %s --check-prefix=TEXT
|
||
|
|
||
|
# The order of the pdata and xdata sections here shouldn't matter. We should
|
||
|
# still replace bar with foo.
|
||
|
|
||
|
# CHECK: ICF needed {{.*}} iterations
|
||
|
# CHECK: Selected foo
|
||
|
# CHECK: Removed bar
|
||
|
|
||
|
# We should only have five bytes of text.
|
||
|
# TEXT: Name: .text
|
||
|
# TEXT-NEXT: Size: 0x5
|
||
|
|
||
|
.section .text,"xr",discard,foo
|
||
|
.globl foo
|
||
|
foo:
|
||
|
pushq %rbx
|
||
|
pushq %rdi
|
||
|
popq %rdi
|
||
|
popq %rbx
|
||
|
retq
|
||
|
|
||
|
|
||
|
.section .pdata,"r",associative,foo
|
||
|
.long foo
|
||
|
.long 5
|
||
|
.long foo_xdata@IMGREL
|
||
|
|
||
|
.section .xdata,"r",associative,foo
|
||
|
foo_xdata:
|
||
|
.long 42
|
||
|
|
||
|
.section .text,"xr",discard,bar
|
||
|
.globl bar
|
||
|
bar:
|
||
|
pushq %rbx
|
||
|
pushq %rdi
|
||
|
popq %rdi
|
||
|
popq %rbx
|
||
|
retq
|
||
|
|
||
|
.section .xdata,"r",associative,bar
|
||
|
bar_xdata:
|
||
|
.long 42
|
||
|
|
||
|
.section .pdata,"r",associative,bar
|
||
|
.long bar
|
||
|
.long 5
|
||
|
.long bar_xdata@IMGREL
|