1# REQUIRES: ppc 2# RUN: llvm-mc --triple=powerpc64le %s --filetype=obj -o %t1.o 3# RUN: llvm-mc --triple=powerpc64 %s --filetype=obj -o %t2.o 4# RUN: ld.lld --shared --fatal-warnings %t1.o -o /dev/null 5# RUN: ld.lld --shared --fatal-warnings %t2.o -o /dev/null 6 7## User code can call __tls_get_addr by specifying the tls_index parameter. 8## We need to allow R_PPC64_REL24/R_PPC64_REL24_NOTOC referencing __tls_get_addr 9## without a pairing R_PPC64_TLSGD/R_PPC64_TLSLD. 10 11GeneralDynamic: 12 addis 3, 2, x@got@tlsgd@ha 13 addi 3, 3, x@got@tlsgd@l 14 bl __tls_get_addr 15 blr 16 17GeneralDynamic_NOTOC: 18 addis 3, 2, x@got@tlsgd@ha 19 addi 3, 3, x@got@tlsgd@l 20 bl __tls_get_addr@notoc 21 blr 22 23LocalDynamic: 24 addis 3, 2, x@got@tlsld@ha 25 addi 3, 3, x@got@tlsld@l 26 bl __tls_get_addr 27 blr 28 29LocalDynamic_NOTOC: 30 addis 3, 2, x@got@tlsld@ha 31 addi 3, 3, x@got@tlsld@l 32 bl __tls_get_addr@notoc 33 blr 34 35CallOnly: 36 bl __tls_get_addr 37 blr 38