blob: 04f5dba55311fe5a21f23ac3af7dbeec67007767 [file] [log] [blame] [raw]
{
"asm": [
{
"source": null,
"text": "_TLS SEGMENT"
},
{
"source": null,
"text": "?h@@3HA DD 012345H ; h"
},
{
"source": null,
"text": " ORG $+4"
},
{
"source": null,
"text": "?g@@3Usafetls@@A DD 098765H ; g"
},
{
"source": null,
"text": " ORG $+8"
},
{
"source": null,
"text": "_TLS ENDS"
},
{
"source": null,
"text": ""
},
{
"source": null,
"text": "this$ = 8"
},
{
"source": null,
"text": "?value@safetls@@QEAAHXZ PROC ; safetls::value, COMDAT"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov QWORD PTR [rsp+8], rcx"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov rax, QWORD PTR this$[rsp]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov rcx, QWORD PTR this$[rsp]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov ecx, DWORD PTR [rcx+4]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov eax, DWORD PTR [rax]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " sub eax, ecx"
},
{
"source": {
"file": null,
"line": 9
},
"text": " mov rcx, QWORD PTR this$[rsp]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " add eax, DWORD PTR [rcx+8]"
},
{
"source": {
"file": null,
"line": 9
},
"text": " ret 0"
},
{
"source": null,
"text": "?value@safetls@@QEAAHXZ ENDP ; safetls::value"
},
{
"source": null,
"text": ""
},
{
"source": null,
"text": "?func@@YAHXZ PROC ; func, COMDAT"
},
{
"source": null,
"text": "$LN3:"
},
{
"source": {
"file": null,
"line": 16
},
"text": " sub rsp, 40 ; 00000028H"
},
{
"source": {
"file": null,
"line": 17
},
"text": " mov eax, OFFSET FLAT:?g@@3Usafetls@@A ; g"
},
{
"source": {
"file": null,
"line": 17
},
"text": " mov eax, eax"
},
{
"source": {
"file": null,
"line": 17
},
"text": " mov ecx, DWORD PTR _tls_index"
},
{
"source": {
"file": null,
"line": 17
},
"text": " mov rdx, QWORD PTR gs:88"
},
{
"source": {
"file": null,
"line": 17
},
"text": " add rax, QWORD PTR [rdx+rcx*8]"
},
{
"source": {
"file": null,
"line": 17
},
"text": " mov rcx, rax"
},
{
"source": {
"file": null,
"line": 17
},
"text": " call ?value@safetls@@QEAAHXZ ; safetls::value"
},
{
"source": {
"file": null,
"line": 18
},
"text": " add rsp, 40 ; 00000028H"
},
{
"source": {
"file": null,
"line": 18
},
"text": " ret 0"
},
{
"source": null,
"text": "?func@@YAHXZ ENDP ; func"
},
{
"source": null,
"text": ""
},
{
"source": null,
"text": "?func2@@YAHXZ PROC ; func2, COMDAT"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov eax, OFFSET FLAT:?h@@3HA ; h"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov eax, eax"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov ecx, DWORD PTR _tls_index"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov rdx, QWORD PTR gs:88"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov rcx, QWORD PTR [rdx+rcx*8]"
},
{
"source": {
"file": null,
"line": 22
},
"text": " mov eax, DWORD PTR [rax+rcx]"
},
{
"source": {
"file": null,
"line": 23
},
"text": " ret 0"
},
{
"source": null,
"text": "?func2@@YAHXZ ENDP ; func2"
},
{
"source": null,
"text": ""
},
{
"source": null,
"text": "tv64 = 32"
},
{
"source": null,
"text": "main PROC"
},
{
"source": null,
"text": "$LN3:"
},
{
"source": {
"file": null,
"line": 26
},
"text": " sub rsp, 56 ; 00000038H"
},
{
"source": {
"file": null,
"line": 27
},
"text": " call ?func@@YAHXZ ; func"
},
{
"source": {
"file": null,
"line": 27
},
"text": " mov DWORD PTR tv64[rsp], eax"
},
{
"source": {
"file": null,
"line": 27
},
"text": " call ?func2@@YAHXZ ; func2"
},
{
"source": {
"file": null,
"line": 27
},
"text": " mov ecx, DWORD PTR tv64[rsp]"
},
{
"source": {
"file": null,
"line": 27
},
"text": " add ecx, eax"
},
{
"source": {
"file": null,
"line": 27
},
"text": " mov eax, ecx"
},
{
"source": {
"file": null,
"line": 28
},
"text": " add rsp, 56 ; 00000038H"
},
{
"source": {
"file": null,
"line": 28
},
"text": " ret 0"
},
{
"source": null,
"text": "main ENDP"
}
]
}