mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 12:56:08 +00:00

Supports TLS local-dynamic on AIX, generates below sequence of code: ``` .tc foo[TC],foo[TL]@ld # Variable offset, ld relocation specifier .tc mh[TC],mh[TC]@ml # Module handle for the caller lwz 3,mh[TC]\(2\) $$ For 64-bit: ld 3,mh[TC]\(2\) bla .__tls_get_mod # Modifies r0,r3,r4,r5,r11,lr,cr0 #r3 = &TLS for module lwz 4,foo[TC]\(2\) $$ For 64-bit: ld 4,foo[TC]\(2\) add 5,3,4 # Compute &foo .rename mh[TC], "\_$TLSML" # Symbol for the module handle must have the name "_$TLSML" ``` --------- Co-authored-by: tingwang <tingwang@tingwangs-MBP.lan> Co-authored-by: tingwang <tingwang@tingwangs-MacBook-Pro.local>
12 lines
591 B
C
12 lines
591 B
C
// RUN: %clang_cc1 -triple powerpc64-unknown-aix -target-cpu pwr8 -verify -fsyntax-only %s
|
|
// RUN: %clang_cc1 -triple powerpc-unknown-aix -target-cpu pwr8 -verify -fsyntax-only %s
|
|
|
|
#if !__has_attribute(tls_model)
|
|
#error "Should support tls_model attribute"
|
|
#endif
|
|
|
|
static __thread int y __attribute((tls_model("global-dynamic"))); // no-warning
|
|
static __thread int y __attribute((tls_model("local-dynamic"))); // expected-no-diagnostics
|
|
static __thread int y __attribute((tls_model("initial-exec"))); // no-warning
|
|
static __thread int y __attribute((tls_model("local-exec"))); // no-warning
|