1 | .text
|
---|
2 | .p2align 4,,15
|
---|
3 | .globl get_gd
|
---|
4 | .type get_gd, @function
|
---|
5 | get_gd:
|
---|
6 | pushl %ebx
|
---|
7 | call __x86.get_pc_thunk.bx
|
---|
8 | addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
---|
9 | subl $8, %esp
|
---|
10 | leal gd@tlsgd(,%ebx,1), %eax
|
---|
11 | call ___tls_get_addr@PLT
|
---|
12 | addl $8, %esp
|
---|
13 | popl %ebx
|
---|
14 | ret
|
---|
15 | .size get_gd, .-get_gd
|
---|
16 | .p2align 4,,15
|
---|
17 | .globl set_gd
|
---|
18 | .type set_gd, @function
|
---|
19 | set_gd:
|
---|
20 | pushl %ebx
|
---|
21 | call __x86.get_pc_thunk.bx
|
---|
22 | addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
---|
23 | subl $8, %esp
|
---|
24 | leal gd@tlsgd(%ebx), %eax
|
---|
25 | call ___tls_get_addr@PLT
|
---|
26 | nop
|
---|
27 | movl 16(%esp), %edx
|
---|
28 | movl %edx, (%eax)
|
---|
29 | addl $8, %esp
|
---|
30 | popl %ebx
|
---|
31 | ret
|
---|
32 | .size set_gd, .-set_gd
|
---|
33 | .text
|
---|
34 | .p2align 4,,15
|
---|
35 | .globl test_gd
|
---|
36 | .type test_gd, @function
|
---|
37 | test_gd:
|
---|
38 | call __x86.get_pc_thunk.cx
|
---|
39 | addl $_GLOBAL_OFFSET_TABLE_, %ecx
|
---|
40 | subl $12, %esp
|
---|
41 | leal gd@tlsgd(%ecx), %eax
|
---|
42 | call *___tls_get_addr@GOT(%ecx)
|
---|
43 | movl 16(%esp), %ecx
|
---|
44 | cmpl %ecx, (%eax)
|
---|
45 | sete %al
|
---|
46 | addl $12, %esp
|
---|
47 | movzbl %al, %eax
|
---|
48 | ret
|
---|
49 | .size test_gd, .-test_gd
|
---|
50 | .section .text.unlikely
|
---|
51 | .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
|
---|
52 | .globl __x86.get_pc_thunk.bx
|
---|
53 | .hidden __x86.get_pc_thunk.bx
|
---|
54 | .type __x86.get_pc_thunk.bx, @function
|
---|
55 | __x86.get_pc_thunk.bx:
|
---|
56 | movl (%esp), %ebx
|
---|
57 | ret
|
---|
58 | .section .text.__x86.get_pc_thunk.cx,"axG",@progbits,__x86.get_pc_thunk.cx,comdat
|
---|
59 | .globl __x86.get_pc_thunk.cx
|
---|
60 | .hidden __x86.get_pc_thunk.cx
|
---|
61 | .type __x86.get_pc_thunk.cx, @function
|
---|
62 | __x86.get_pc_thunk.cx:
|
---|
63 | movl (%esp), %ecx
|
---|
64 | ret
|
---|
65 | .section .note.GNU-stack,"",@progbits
|
---|