| { | 
 |   "asm": [ | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26729.0 " | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "" | 
 |     }, | 
 |     { | 
 |       "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": ";       COMDAT pdata" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": ";       COMDAT xdata" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Function compile flags: /Odtp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": ";       COMDAT ?value@safetls@@QEAAHXZ" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "this$ = 8" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "?value@safetls@@QEAAHXZ PROC                            ; safetls::value, COMDAT" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; File c:\\users\\quist\\appdata\\local\\temp\\compiler-explorer-compiler118927-25960-1r4bdyh.ql7u\\example.cpp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 9" | 
 |     }, | 
 |     { | 
 |       "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": "; Function compile flags: /Odtp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": ";       COMDAT ?func@@YAHXZ" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "?func@@YAHXZ PROC                                 ; func, COMDAT" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; File c:\\users\\quist\\appdata\\local\\temp\\compiler-explorer-compiler118927-25960-1r4bdyh.ql7u\\example.cpp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 16" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "$LN3:" | 
 |     }, | 
 |     { | 
 |       "source": { | 
 |         "file": null, | 
 |         "line": 16 | 
 |       }, | 
 |       "text": "        sub     rsp, 40                             ; 00000028H" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 17" | 
 |     }, | 
 |     { | 
 |       "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": null, | 
 |       "text": "; Line 18" | 
 |     }, | 
 |     { | 
 |       "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": "; Function compile flags: /Odtp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": ";       COMDAT ?func2@@YAHXZ" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "?func2@@YAHXZ PROC                                  ; func2, COMDAT" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; File c:\\users\\quist\\appdata\\local\\temp\\compiler-explorer-compiler118927-25960-1r4bdyh.ql7u\\example.cpp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 22" | 
 |     }, | 
 |     { | 
 |       "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": null, | 
 |       "text": "; Line 23" | 
 |     }, | 
 |     { | 
 |       "source": { | 
 |         "file": null, | 
 |         "line": 23 | 
 |       }, | 
 |       "text": "        ret     0" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "?func2@@YAHXZ ENDP                                  ; func2" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Function compile flags: /Odtp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "tv64 = 32" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "main    PROC" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; File c:\\users\\quist\\appdata\\local\\temp\\compiler-explorer-compiler118927-25960-1r4bdyh.ql7u\\example.cpp" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 26" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "$LN3:" | 
 |     }, | 
 |     { | 
 |       "source": { | 
 |         "file": null, | 
 |         "line": 26 | 
 |       }, | 
 |       "text": "        sub     rsp, 56                             ; 00000038H" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "; Line 27" | 
 |     }, | 
 |     { | 
 |       "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": null, | 
 |       "text": "; Line 28" | 
 |     }, | 
 |     { | 
 |       "source": { | 
 |         "file": null, | 
 |         "line": 28 | 
 |       }, | 
 |       "text": "        add     rsp, 56                             ; 00000038H" | 
 |     }, | 
 |     { | 
 |       "source": { | 
 |         "file": null, | 
 |         "line": 28 | 
 |       }, | 
 |       "text": "        ret     0" | 
 |     }, | 
 |     { | 
 |       "source": null, | 
 |       "text": "main    ENDP" | 
 |     } | 
 |   ] | 
 | } |