| { |
| "asm": [ |
| { |
| "text": "; Listing generated by Microsoft (R) Optimizing Compiler Version 19.15.26504.0 ", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": " TITLE C:\\Source\\compiler-explorer\\test\\cases\\vc-regex-example.cpp", |
| "source": null |
| }, |
| { |
| "text": " .686P", |
| "source": null |
| }, |
| { |
| "text": " .XMM", |
| "source": null |
| }, |
| { |
| "text": " include listing.inc", |
| "source": null |
| }, |
| { |
| "text": " .model flat", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "INCLUDELIB LIBCMT", |
| "source": null |
| }, |
| { |
| "text": "INCLUDELIB OLDNAMES", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "CONST SEGMENT", |
| "source": null |
| }, |
| { |
| "text": "$SG39290 DB 'Some people, when confronted with a problem, think \"I k'", |
| "source": null |
| }, |
| { |
| "text": " DB 'now, I''ll use regular expressions.\" Now they have two proble'", |
| "source": null |
| }, |
| { |
| "text": " DB 'ms.', 00H", |
| "source": null |
| }, |
| { |
| "text": "$SG39291 DB 'REGULAR EXPRESSIONS', 00H", |
| "source": null |
| }, |
| { |
| "text": "CONST ENDS", |
| "source": null |
| }, |
| { |
| "text": "PUBLIC ?regexTest@@YAXXZ ; regexTest", |
| "source": null |
| }, |
| { |
| "text": "xdata$x SEGMENT", |
| "source": null |
| }, |
| { |
| "text": "__unwindtable$?regexTest@@YAXXZ DD 0ffffffffH", |
| "source": null |
| }, |
| { |
| "text": " DD FLAT:__unwindfunclet$?regexTest@@YAXXZ$0", |
| "source": null |
| }, |
| { |
| "text": "__ehfuncinfo$?regexTest@@YAXXZ DD 019930522H", |
| "source": null |
| }, |
| { |
| "text": " DD 01H", |
| "source": null |
| }, |
| { |
| "text": " DD FLAT:__unwindtable$?regexTest@@YAXXZ", |
| "source": null |
| }, |
| { |
| "text": " DD 2 DUP(00H)", |
| "source": null |
| }, |
| { |
| "text": " DD 2 DUP(00H)", |
| "source": null |
| }, |
| { |
| "text": " DD 00H", |
| "source": null |
| }, |
| { |
| "text": " DD 01H", |
| "source": null |
| }, |
| { |
| "text": "xdata$x ENDS", |
| "source": null |
| }, |
| { |
| "text": "", |
| "source": null |
| }, |
| { |
| "text": "; Function compile flags: /Odtp", |
| "source": null |
| }, |
| { |
| "text": "_TEXT SEGMENT", |
| "source": null |
| }, |
| { |
| "text": "_self_regex$ = -60 ; size = 20", |
| "source": null |
| }, |
| { |
| "text": "_s$ = -40 ; size = 24", |
| "source": null |
| }, |
| { |
| "text": "__$ArrayPad$ = -16 ; size = 4", |
| "source": null |
| }, |
| { |
| "text": "__$EHRec$ = -12 ; size = 12", |
| "source": null |
| }, |
| { |
| "text": "?regexTest@@YAXXZ PROC ; regexTest", |
| "source": null |
| }, |
| { |
| "text": "; File c:\\source\\compiler-explorer\\test\\cases\\vc-regex-example.cpp", |
| "source": null |
| }, |
| { |
| "text": "; Line 7", |
| "source": null |
| }, |
| { |
| "text": " push ebp", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " mov ebp, esp", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " push -1", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " push __ehhandler$?regexTest@@YAXXZ", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " mov eax, DWORD PTR fs:0", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " push eax", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " sub esp, 48 ; 00000030H", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " mov eax, DWORD PTR ___security_cookie", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " xor eax, ebp", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR __$ArrayPad$[ebp], eax", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " push eax", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " lea eax, DWORD PTR __$EHRec$[ebp]", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR fs:0, eax", |
| "source": { |
| "file": null, |
| "line": 7 |
| } |
| }, |
| { |
| "text": "; Line 8", |
| "source": null |
| }, |
| { |
| "text": " push OFFSET $SG39290", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " lea ecx, DWORD PTR _s$[ebp]", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@QBD@Z ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR __$EHRec$[ebp+8], 0", |
| "source": { |
| "file": null, |
| "line": 8 |
| } |
| }, |
| { |
| "text": "; Line 11", |
| "source": null |
| }, |
| { |
| "text": " push 256 ; 00000100H", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " push 1", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " call ??Uregex_constants@std@@YA?AW4syntax_option_type@01@W4201@0@Z ; std::regex_constants::operator|", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " add esp, 8", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " push eax", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " push OFFSET $SG39291", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " lea ecx, DWORD PTR _self_regex$[ebp]", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": " call ??0?$basic_regex@DV?$regex_traits@D@std@@@std@@QAE@PBDW4syntax_option_type@regex_constants@1@@Z ; std::basic_regex<char,std::regex_traits<char> >::basic_regex<char,std::regex_traits<char> >", |
| "source": { |
| "file": null, |
| "line": 11 |
| } |
| }, |
| { |
| "text": "; Line 13", |
| "source": null |
| }, |
| { |
| "text": " lea ecx, DWORD PTR _self_regex$[ebp]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " call ??1?$basic_regex@DV?$regex_traits@D@std@@@std@@QAE@XZ ; std::basic_regex<char,std::regex_traits<char> >::~basic_regex<char,std::regex_traits<char> >", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR __$EHRec$[ebp+8], -1", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " lea ecx, DWORD PTR _s$[ebp]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR __$EHRec$[ebp]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov DWORD PTR fs:0, ecx", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " pop ecx", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR __$ArrayPad$[ebp]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " xor ecx, ebp", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " call @__security_check_cookie@4", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov esp, ebp", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " pop ebp", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " ret 0", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": "_TEXT ENDS", |
| "source": null |
| }, |
| { |
| "text": "text$x SEGMENT", |
| "source": null |
| }, |
| { |
| "text": "__unwindfunclet$?regexTest@@YAXXZ$0:", |
| "source": null |
| }, |
| { |
| "text": " lea ecx, DWORD PTR _s$[ebp]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " jmp ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ; std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": "__ehhandler$?regexTest@@YAXXZ:", |
| "source": null |
| }, |
| { |
| "text": " mov edx, DWORD PTR [esp+8]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " lea eax, DWORD PTR [edx+12]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR [edx-52]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " xor ecx, eax", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " call @__security_check_cookie@4", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov ecx, DWORD PTR [edx-4]", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " xor ecx, eax", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " call @__security_check_cookie@4", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " mov eax, OFFSET __ehfuncinfo$?regexTest@@YAXXZ", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": " jmp ___CxxFrameHandler3", |
| "source": { |
| "file": null, |
| "line": 13 |
| } |
| }, |
| { |
| "text": "text$x ENDS", |
| "source": null |
| }, |
| { |
| "text": "?regexTest@@YAXXZ ENDP ; regexTest", |
| "source": null |
| }, |
| { |
| "text": "END", |
| "source": null |
| } |
| ] |
| } |