.text .globl fc1 .type fc1,@function fc1: pushq %rbp movq %rsp, %rbp nop;nop;nop;nop /* IE against global var. */ movq %fs:0, %rcx nop;nop addq sG3@gottpoff(%rip), %rcx nop;nop;nop;nop /* IE against global var. */ movq %fs:0, %rcx nop;nop addq sG4@gottpoff(%rip), %rcx nop;nop;nop;nop /* GD, gd first. */ .byte 0x66 leaq sG1@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop leaq sG1@tlsdesc(%rip), %rax call *sG1@tlscall(%rax) nop;nop;nop;nop /* GD, desc first. */ leaq sG2@tlsdesc(%rip), %rax call *sG2@tlscall(%rax) nop;nop;nop;nop .byte 0x66 leaq sG2@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop /* GD -> IE, gd first, after IE use. */ .byte 0x66 leaq sG3@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop leaq sG3@tlsdesc(%rip), %rax call *sG3@tlscall(%rax) nop;nop;nop;nop /* GD -> IE, desc first, after IE use. */ leaq sG4@tlsdesc(%rip), %rax call *sG4@tlscall(%rax) nop;nop;nop;nop .byte 0x66 leaq sG4@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop /* GD -> IE, gd first, before IE use. */ .byte 0x66 leaq sG5@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop leaq sG5@tlsdesc(%rip), %rax call *sG5@tlscall(%rax) nop;nop;nop;nop /* GD -> IE, desc first, before IE use. */ leaq sG6@tlsdesc(%rip), %rax call *sG6@tlscall(%rax) nop;nop;nop;nop .byte 0x66 leaq sG6@tlsgd(%rip), %rdi .word 0x6666 rex64 call __tls_get_addr@plt nop;nop;nop;nop /* IE against global var. */ movq %fs:0, %rcx nop;nop addq sG5@gottpoff(%rip), %rcx nop;nop;nop;nop /* IE against global var. */ movq %fs:0, %rcx nop;nop addq sG6@gottpoff(%rip), %rcx nop;nop;nop;nop leave ret