.text .p2align 4,,15 .globl get_gd .type get_gd, @function get_gd: subq $8, %rsp #ifdef __LP64__ .byte 0x66 #endif leaq gd@tlsgd(%rip), %rdi .byte 0x66 rex64 call *__tls_get_addr@GOTPCREL(%rip) addq $8, %rsp ret .size get_gd, .-get_gd .text .p2align 4,,15 .globl set_gd .type set_gd, @function set_gd: pushq %rbx movl %edi, %ebx #ifdef __LP64__ .byte 0x66 #endif leaq gd@tlsgd(%rip), %rdi .value 0x6666 rex64 call __tls_get_addr@PLT movl %ebx, (%rax) popq %rbx ret .size set_gd, .-set_gd .text .p2align 4,,15 .globl test_gd .type test_gd, @function test_gd: pushq %rbx movl %edi, %ebx #ifdef __LP64__ .byte 0x66 #endif leaq gd@tlsgd(%rip), %rdi .byte 0x66 rex64 call *__tls_get_addr@GOTPCREL(%rip) cmpl %ebx, (%rax) popq %rbx sete %al movzbl %al, %eax ret .size test_gd, .-test_gd .section .note.GNU-stack,"",@progbits