| Issue |
109138
|
| Summary |
TLS segment offset calculation different for target i386 and i386-unknown-linux
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
prabhjotsingh3
|
Hi,
The tls offsets calculation logic seems to be different for target i386 and i386-unknonwn-linux for local-exec model.
Example code :-
```
#include <stdio.h>
__thread int myvar;
int main(void)
{
myvar = 0;
return 0;
}
```
For target i386 :-
Command - `clang -ftls-model=local-exec --target=i386 -v thread.c`
```
080484a0 <main>:
80484a3: 50 push %eax
80484a4: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
80484ab: 65 a1 00 00 00 00 mov %gs:0x0,%eax
80484b1: c7 80 fc ff ff ff 00 movl $0x0,-0x4(%eax)
80484b8: 00 00 00
80484bb: 31 c0 xor %eax,%eax
80484bd: 83 c4 04 add $0x4,%esp
80484c0: 5d pop %ebp
80484c1: c3 ret
```
For target i386-unknown-linux :-
Command - `clang -ftls-model=local-exec --target=i386-unknown-linux -v thread.c`
```
000011a0 <main>:
11a0: 55 push %ebp
11a1: 89 e5 mov %esp,%ebp
11a3: 50 push %eax
11a4: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
11ab: 65 c7 05 fc ff ff ff movl $0x0,%gs:0xfffffffc
11b2: 00 00 00 00
11b6: 31 c0 xor %eax,%eax
11b8: 83 c4 04 add $0x4,%esp
11bb: 5d pop %ebp
11bc: c3 ret
11bd: 66 90 xchg %ax,%ax
11bf: 90 nop
```
Would be grateful if anyway could please let me know the reason for this and is there anyway to control this via clang arguments?
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs