1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/MC/AArch64/directive-variant_pcs.s
Cullen Rhodes 5dfa2f5625 [AArch64] Implement .variant_pcs directive
A dynamic linker with lazy binding support may need to handle variant
PCS function symbols specially, so an ELF symbol table marking
STO_AARCH64_VARIANT_PCS [1] was added to address this.

Function symbols that follow the vector PCS are marked via the
.variant_pcs assembler directive, which takes a single parameter
specifying the symbol name and sets the STO_AARCH64_VARIANT_PCS st_other
flag in the object file.

[1] https://github.com/ARM-software/abi-aa/blob/master/aaelf64/aaelf64.rst#st-other-values

Reviewed By: sdesmalen

Differential Revision: https://reviews.llvm.org/D89138
2020-10-13 10:06:27 +00:00

12 lines
342 B
ArmAsm

// RUN: llvm-mc -triple aarch64-elf -filetype asm -o - %s | FileCheck %s
// RUN: llvm-mc -triple aarch64-elf -filetype obj -o - %s \
// RUN: | llvm-readobj --symbols - | FileCheck %s --check-prefix=CHECK-ST_OTHER
.text
.global foo
.variant_pcs foo
// CHECK: .variant_pcs foo
// CHECK-ST_OTHER: Name: foo
// CHECK-ST_OTHER: Other [ (0x80)