https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80881
--- Comment #26 from LIU Hao <lh_mouse at 126 dot com> --- Comment on attachment 59290 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59290 Newer patch for TLS support, incomplete > + "mov{l}\t{_tls_index(%%rip), %k0|%k0, DWORD PTR > [rip+_tls_index]}\;mov{q}\t{%%gs:88, %1|%1, QWORD PTR > gs:[88]}\;mov{q}\t{(%1,%0,8), %0|%0, QWORD PTR [%1+%0*8]}" For i686 this would be (untested): ``` "mov{l}\t{_tls_index, %k0|%k0, DWORD PTR [_tls_index]}\;mov{l}\t{%%fs:44, %1|%1, DWORD PTR fs:[44]}\;mov{l}\t{(%1,%0,4), %0|%0, DWORD PTR [%1+%0*4]}" ``` i.e. pointer size is 4 (instead of 8), TLS segment is FS (instead of GS), and addresses of global symbols are absolute (instead of being RIP-relative).