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).

Reply via email to