Closed aniketor closed 10 months ago
Can you use GDB to get a disassembly of the area around the EIP where SIGILL was thrown, and post it to this bug?
My guess is it's probably the AVX or FMA ISA. Sometimes when running in containers AVX is disabled by the system administrators - especially on shared hosting environments because of miners.
@dennisjenkins75 Here's the dump.
Program received signal SIGILL, Illegal instruction.
0x0000564433c1274f in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) ()
(gdb) disassemble 0x0000564433c1274f
Dump of assembler code for function _ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE:
0x0000564433c12540 <+0>: endbr64
0x0000564433c12544 <+4>: push %rbp
0x0000564433c12545 <+5>: mov %rsp,%rbp
0x0000564433c12548 <+8>: push %r15
0x0000564433c1254a <+10>: mov %rdx,%r15
0x0000564433c1254d <+13>: push %r14
0x0000564433c1254f <+15>: mov %rcx,%r14
0x0000564433c12552 <+18>: push %r13
0x0000564433c12554 <+20>: mov %rsi,%r13
0x0000564433c12557 <+23>: push %r12
0x0000564433c12559 <+25>: push %rbx
0x0000564433c1255a <+26>: mov %rdi,%rbx
0x0000564433c1255d <+29>: and $0xffffffffffffffe0,%rsp
0x0000564433c12561 <+33>: sub $0xc0,%rsp
0x0000564433c12568 <+40>: mov %fs:0x28,%rax
0x0000564433c12571 <+49>: mov %rax,0xb8(%rsp)
0x0000564433c12579 <+57>: mov %r8d,%eax
0x0000564433c1257c <+60>: and $0x3f0,%eax
0x0000564433c12581 <+65>: jne 0x564433c128c8 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+904>
0x0000564433c12587 <+71>: or $0x10,%r8d
0x0000564433c1258b <+75>: mov %r8d,(%rbx)
0x0000564433c1258e <+78>: lea 0x30(%rsp),%r12
0x0000564433c12593 <+83>: lea 0x8(%rbx),%rax
0x0000564433c12597 <+87>: mov %r14,%rsi
0x0000564433c1259a <+90>: mov %r12,%rdi
0x0000564433c1259d <+93>: mov %rax,0x18(%rsp)
0x0000564433c125a2 <+98>: call 0x564433bf2d70 <_ZNSt6localeC1ERKS_@plt>
0x0000564433c125a7 <+103>: mov (%rbx),%ecx
0x0000564433c125a9 <+105>: mov 0x18(%rsp),%rdi
0x0000564433c125ae <+110>: mov %r12,%r8
0x0000564433c125b1 <+113>: mov %r15,%rdx
0x0000564433c125b4 <+116>: mov %r13,%rsi
0x0000564433c125b7 <+119>: call 0x564433c02120 <_ZNSt8__detail8_ScannerIcEC2EPKcS3_NSt15regex_constants18syntax_option_typeESt6locale>
0x0000564433c125bc <+124>: mov %r12,%rdi
0x0000564433c125bf <+127>: call 0x564433bf3120 <_ZNSt6localeD1Ev@plt>
0x0000564433c125c4 <+132>: movq $0x0,0x100(%rbx)
0x0000564433c125cf <+143>: mov $0x68,%edi
0x0000564433c125d4 <+148>: call 0x564433bf2ee0 <_Znwm@plt>
0x0000564433c125d9 <+153>: mov %rax,%rdx
0x0000564433c125dc <+156>: lea 0x3370d(%rip),%rax # 0x564433c45cf0 <_ZTVSt23_Sp_counted_ptr_inplaceINSt8__detail4_NFAINSt7__cxx1112regex_traitsIcEEEESaIvELN9__gnu_cxx12_Lock_policyE2EE+16>
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c125e3 <+163>: mov %rax,(%rdx)
0x0000564433c125e6 <+166>: mov (%rbx),%eax
0x0000564433c125e8 <+168>: movabs $0x100000001,%rcx
0x0000564433c125f2 <+178>: mov %rcx,0x8(%rdx)
0x0000564433c125f6 <+182>: movq $0x0,0x10(%rdx)
0x0000564433c125fe <+190>: movq $0x0,0x18(%rdx)
0x0000564433c12606 <+198>: movq $0x0,0x20(%rdx)
0x0000564433c1260e <+206>: mov %eax,0x28(%rdx)
0x0000564433c12611 <+209>: movq $0x0,0x30(%rdx)
0x0000564433c12619 <+217>: movq $0x0,0x38(%rdx)
0x0000564433c12621 <+225>: movb $0x0,0x40(%rdx)
0x0000564433c12625 <+229>: movq $0x0,0x48(%rdx)
0x0000564433c1262d <+237>: movq $0x0,0x50(%rdx)
0x0000564433c12635 <+245>: movq $0x0,0x58(%rdx)
0x0000564433c1263d <+253>: lea 0x60(%rdx),%r15
0x0000564433c12641 <+257>: lea 0x28(%rsp),%r13
0x0000564433c12646 <+262>: mov %r15,%rdi
0x0000564433c12649 <+265>: mov %rdx,0x10(%rsp)
0x0000564433c1264e <+270>: call 0x564433bf33b0 <_ZNSt6localeC1Ev@plt>
0x0000564433c12653 <+275>: mov %r14,%rsi
0x0000564433c12656 <+278>: mov %r13,%rdi
0x0000564433c12659 <+281>: call 0x564433bf2d70 <_ZNSt6localeC1ERKS_@plt>
0x0000564433c1265e <+286>: mov %r15,%rsi
0x0000564433c12661 <+289>: mov %r12,%rdi
0x0000564433c12664 <+292>: call 0x564433bf2d70 <_ZNSt6localeC1ERKS_@plt>
0x0000564433c12669 <+297>: mov %r13,%rsi
0x0000564433c1266c <+300>: mov %r15,%rdi
0x0000564433c1266f <+303>: call 0x564433bf2f40 <_ZNSt6localeaSERKS_@plt>
0x0000564433c12674 <+308>: mov %r12,%rsi
0x0000564433c12677 <+311>: mov %r13,%rdi
0x0000564433c1267a <+314>: call 0x564433bf2f40 <_ZNSt6localeaSERKS_@plt>
0x0000564433c1267f <+319>: mov %r12,%rdi
0x0000564433c12682 <+322>: call 0x564433bf3120 <_ZNSt6localeD1Ev@plt>
0x0000564433c12687 <+327>: mov %r13,%rsi
0x0000564433c1268a <+330>: mov %r12,%rdi
0x0000564433c1268d <+333>: call 0x564433bf2d70 <_ZNSt6localeC1ERKS_@plt>
0x0000564433c12692 <+338>: mov %r12,%rdi
0x0000564433c12695 <+341>: call 0x564433bf3120 <_ZNSt6localeD1Ev@plt>
0x0000564433c1269a <+346>: mov %r13,%rdi
0x0000564433c1269d <+349>: call 0x564433bf3120 <_ZNSt6localeD1Ev@plt>
0x0000564433c126a2 <+354>: mov 0x10(%rsp),%rdx
0x0000564433c126a7 <+359>: lea 0x110(%rbx),%rax
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c126ae <+366>: mov %rdx,0x108(%rbx)
0x0000564433c126b5 <+373>: mov %rax,0x8(%rsp)
0x0000564433c126ba <+378>: add $0x10,%rdx
0x0000564433c126be <+382>: lea 0x120(%rbx),%rax
0x0000564433c126c5 <+389>: mov %rdx,0x100(%rbx)
0x0000564433c126cc <+396>: mov %rax,0x110(%rbx)
0x0000564433c126d3 <+403>: movq $0x0,0x118(%rbx)
0x0000564433c126de <+414>: movb $0x0,0x120(%rbx)
0x0000564433c126e5 <+421>: movq $0x0,0x130(%rbx)
0x0000564433c126f0 <+432>: movq $0x8,0x138(%rbx)
0x0000564433c126fb <+443>: vpxor %xmm0,%xmm0,%xmm0
0x0000564433c126ff <+447>: vmovdqu %ymm0,0x140(%rbx)
0x0000564433c12707 <+455>: vmovdqu %ymm0,0x160(%rbx)
0x0000564433c1270f <+463>: mov $0x40,%edi
0x0000564433c12714 <+468>: vzeroupper
0x0000564433c12717 <+471>: call 0x564433bf2ee0 <_Znwm@plt>
0x0000564433c1271c <+476>: mov 0x138(%rbx),%rdx
0x0000564433c12723 <+483>: mov %rax,0x130(%rbx)
0x0000564433c1272a <+490>: lea -0x4(,%rdx,4),%rdx
0x0000564433c12732 <+498>: and $0xfffffffffffffff8,%rdx
0x0000564433c12736 <+502>: mov $0x1f8,%edi
0x0000564433c1273b <+507>: lea (%rax,%rdx,1),%r13
0x0000564433c1273f <+511>: call 0x564433bf2ee0 <_Znwm@plt>
0x0000564433c12744 <+516>: lea 0x1f8(%rax),%rcx
0x0000564433c1274b <+523>: mov %rax,0x0(%r13)
=> 0x0000564433c1274f <+527>: vpbroadcastq %rax,%xmm0
0x0000564433c12755 <+533>: mov 0x100(%rbx),%rax
0x0000564433c1275c <+540>: vmovq %rcx,%xmm1
0x0000564433c12761 <+545>: add $0x50,%rax
0x0000564433c12765 <+549>: vpinsrq $0x1,%r13,%xmm1,%xmm1
0x0000564433c1276b <+555>: mov %rax,0x180(%rbx)
0x0000564433c12772 <+562>: vinserti128 $0x1,%xmm1,%ymm0,%ymm0
0x0000564433c12778 <+568>: vmovdqu %ymm0,0x140(%rbx)
0x0000564433c12780 <+576>: vmovdqu %ymm0,0x160(%rbx)
0x0000564433c12788 <+584>: mov %r14,%rdi
0x0000564433c1278b <+587>: lea 0xd0(%rbx),%r15
0x0000564433c12792 <+594>: vzeroupper
0x0000564433c12795 <+597>: call 0x564433bf2c30 <_ZSt9use_facetISt5ctypeIcEERKT_RKSt6locale@plt>
0x0000564433c1279a <+602>: mov 0x100(%rbx),%r13
0x0000564433c127a1 <+609>: mov %rax,0x188(%rbx)
0x0000564433c127a8 <+616>: mov 0x28(%r13),%r14
0x0000564433c127ac <+620>: mov 0x20(%r13),%rax
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c127b0 <+624>: mov 0x8(%r13),%rsi
0x0000564433c127b4 <+628>: mov %rax,0x10(%rsp)
0x0000564433c127b9 <+633>: lea 0x1(%r14),%rax
0x0000564433c127bd <+637>: mov %rax,0x28(%r13)
0x0000564433c127c1 <+641>: mov %r14,0x30(%rsp)
0x0000564433c127c6 <+646>: cmp 0x10(%r13),%rsi
0x0000564433c127ca <+650>: je 0x564433c129a0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1120>
0x0000564433c127d0 <+656>: mov %r14,(%rsi)
0x0000564433c127d3 <+659>: add $0x8,%rsi
0x0000564433c127d7 <+663>: mov %rsi,0x8(%r13)
0x0000564433c127db <+667>: mov %r14,0x60(%rsp)
0x0000564433c127e0 <+672>: movl $0x8,0x50(%rsp)
0x0000564433c127e8 <+680>: movq $0xffffffffffffffff,0x58(%rsp)
0x0000564433c127f1 <+689>: vmovdqa 0x70(%rsp),%xmm2
0x0000564433c127f7 <+695>: vmovdqu 0x50(%rsp),%ymm0
0x0000564433c127fd <+701>: vmovdqa %xmm2,0xa0(%rsp)
0x0000564433c12806 <+710>: vmovdqa %ymm0,0x80(%rsp)
0x0000564433c1280f <+719>: mov 0x40(%r13),%rsi
0x0000564433c12813 <+723>: cmp 0x48(%r13),%rsi
0x0000564433c12817 <+727>: je 0x564433c12980 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1088>
0x0000564433c1281d <+733>: vmovdqu %ymm0,(%rsi)
0x0000564433c12821 <+737>: vmovdqa 0xa0(%rsp),%xmm3
0x0000564433c1282a <+746>: vmovdqu %xmm3,0x20(%rsi)
0x0000564433c1282f <+751>: mov 0x40(%r13),%rax
0x0000564433c12833 <+755>: add $0x30,%rax
0x0000564433c12837 <+759>: mov %rax,0x40(%r13)
0x0000564433c1283b <+763>: vzeroupper
0x0000564433c1283e <+766>: sub 0x38(%r13),%rax
0x0000564433c12842 <+770>: mov %rax,%r15
0x0000564433c12845 <+773>: mov %rax,%r14
0x0000564433c12848 <+776>: sar $0x4,%r15
0x0000564433c1284c <+780>: movabs $0xaaaaaaaaaaaaaaab,%rax
0x0000564433c12856 <+790>: imul %rax,%r15
0x0000564433c1285a <+794>: cmp $0x493e00,%r14
0x0000564433c12861 <+801>: ja 0x564433c12d44 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+2052>
0x0000564433c12867 <+807>: dec %r15
0x0000564433c1286a <+810>: cmpl $0xb,0x80(%rsp)
0x0000564433c12872 <+818>: je 0x564433c12928 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1000>
0x0000564433c12878 <+824>: cmpl $0xb,0x50(%rsp)
0x0000564433c1287d <+829>: je 0x564433c12956 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1046>
0x0000564433c12883 <+835>: mov 0x10(%rsp),%rax
0x0000564433c12888 <+840>: mov %rbx,%rdi
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c1288b <+843>: lea (%rax,%rax,2),%rax
0x0000564433c1288f <+847>: shl $0x4,%rax
0x0000564433c12893 <+851>: add 0x38(%r13),%rax
0x0000564433c12897 <+855>: mov %r15,0x8(%rax)
0x0000564433c1289b <+859>: lea 0xd0(%rbx),%r15
0x0000564433c128a2 <+866>: call 0x564433c121d0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEE14_M_disjunctionEv>
0x0000564433c128a7 <+871>: cmpl $0x1b,0x98(%rbx)
0x0000564433c128ae <+878>: lea 0xd0(%rbx),%r15
0x0000564433c128b5 <+885>: je 0x564433c129c0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1152>
0x0000564433c128bb <+891>: mov $0x5,%edi
0x0000564433c128c0 <+896>: call 0x564433bf2b70 <_ZSt19__throw_regex_errorNSt15regex_constants10error_typeE@plt>
0x0000564433c128c5 <+901>: nopl (%rax)
0x0000564433c128c8 <+904>: cmp $0x80,%eax
0x0000564433c128cd <+909>: je 0x564433c1258b <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+75>
0x0000564433c128d3 <+915>: jbe 0x564433c12900 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+960>
0x0000564433c128d5 <+917>: sub $0x100,%eax
0x0000564433c128da <+922>: test $0xfffffef0,%eax
0x0000564433c128df <+927>: je 0x564433c1258b <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+75>
0x0000564433c128e5 <+933>: lea 0x227a6(%rip),%rsi # 0x564433c35092
0x0000564433c128ec <+940>: mov $0xe,%edi
0x0000564433c128f1 <+945>: call 0x564433bf4bed <_ZSt19__throw_regex_errorNSt15regex_constants10error_typeEPKc>
0x0000564433c128f6 <+950>: cs nopw 0x0(%rax,%rax,1)
0x0000564433c12900 <+960>: sub $0x10,%eax
0x0000564433c12903 <+963>: cmp $0x30,%eax
0x0000564433c12906 <+966>: ja 0x564433c128e5 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+933>
0x0000564433c12908 <+968>: movabs $0x1000000010001,%rdx
0x0000564433c12912 <+978>: bt %rax,%rdx
0x0000564433c12916 <+982>: setb %al
0x0000564433c12919 <+985>: test %al,%al
0x0000564433c1291b <+987>: je 0x564433c128e5 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+933>
0x0000564433c1291d <+989>: jmp 0x564433c1258b <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+75>
0x0000564433c12922 <+994>: nopw 0x0(%rax,%rax,1)
0x0000564433c12928 <+1000>: mov 0xa0(%rsp),%rax
0x0000564433c12930 <+1008>: test %rax,%rax
0x0000564433c12933 <+1011>: je 0x564433c12878 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+824>
0x0000564433c12939 <+1017>: lea 0x90(%rsp),%rdi
0x0000564433c12941 <+1025>: mov $0x3,%edx
0x0000564433c12946 <+1030>: mov %rdi,%rsi
0x0000564433c12949 <+1033>: call *%rax
0x0000564433c1294b <+1035>: cmpl $0xb,0x50(%rsp)
0x0000564433c12950 <+1040>: jne 0x564433c12883 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+835>
0x0000564433c12956 <+1046>: mov 0x70(%rsp),%rax
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c1295b <+1051>: test %rax,%rax
0x0000564433c1295e <+1054>: je 0x564433c12883 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+835>
0x0000564433c12964 <+1060>: lea 0x60(%rsp),%rdi
0x0000564433c12969 <+1065>: mov $0x3,%edx
0x0000564433c1296e <+1070>: mov %rdi,%rsi
0x0000564433c12971 <+1073>: call *%rax
0x0000564433c12973 <+1075>: jmp 0x564433c12883 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+835>
0x0000564433c12978 <+1080>: nopl 0x0(%rax,%rax,1)
0x0000564433c12980 <+1088>: lea 0x80(%rsp),%r14
0x0000564433c12988 <+1096>: lea 0x38(%r13),%rdi
0x0000564433c1298c <+1100>: mov %r14,%rdx
0x0000564433c1298f <+1103>: vzeroupper
0x0000564433c12992 <+1106>: call 0x564433c02380 <_ZNSt6vectorINSt8__detail6_StateIcEESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_>
0x0000564433c12997 <+1111>: mov 0x40(%r13),%rax
0x0000564433c1299b <+1115>: jmp 0x564433c1283e <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+766>
0x0000564433c129a0 <+1120>: mov %r12,%rdx
0x0000564433c129a3 <+1123>: mov %r13,%rdi
0x0000564433c129a6 <+1126>: lea 0xd0(%rbx),%r15
0x0000564433c129ad <+1133>: call 0x564433c01b30 <_ZNSt6vectorImSaImEE17_M_realloc_insertIJRKmEEEvN9__gnu_cxx17__normal_iteratorIPmS1_EEDpOT_>
0x0000564433c129b2 <+1138>: jmp 0x564433c127db <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+667>
0x0000564433c129b7 <+1143>: nopw 0x0(%rax,%rax,1)
0x0000564433c129c0 <+1152>: mov 0x8(%rsp),%rdi
0x0000564433c129c5 <+1157>: mov %r15,%rsi
0x0000564433c129c8 <+1160>: call 0x564433bf2ce0 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_@plt>
0x0000564433c129cd <+1165>: mov 0x18(%rsp),%rdi
0x0000564433c129d2 <+1170>: call 0x564433c020c0 <_ZNSt8__detail8_ScannerIcE10_M_advanceEv>
0x0000564433c129d7 <+1175>: mov %rbx,%rsi
0x0000564433c129da <+1178>: mov %r12,%rdi
0x0000564433c129dd <+1181>: call 0x564433c00ea0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEE6_M_popEv>
0x0000564433c129e2 <+1186>: mov 0x38(%r13),%rax
0x0000564433c129e6 <+1190>: mov 0x38(%rsp),%rdx
0x0000564433c129eb <+1195>: mov 0x100(%rbx),%r12
0x0000564433c129f2 <+1202>: mov %rdx,-0x28(%rax,%r14,1)
0x0000564433c129f7 <+1207>: movq $0xffffffffffffffff,0x58(%rsp)
0x0000564433c12a00 <+1216>: movl $0x9,0x50(%rsp)
0x0000564433c12a08 <+1224>: mov 0x40(%rsp),%rax
0x0000564433c12a0d <+1229>: mov %rax,0x18(%rsp)
0x0000564433c12a12 <+1234>: mov 0x8(%r12),%rax
0x0000564433c12a17 <+1239>: mov -0x8(%rax),%rdx
0x0000564433c12a1b <+1243>: sub $0x8,%rax
0x0000564433c12a1f <+1247>: mov %rdx,0x60(%rsp)
0x0000564433c12a24 <+1252>: mov %rax,0x8(%r12)
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12a29 <+1257>: vmovdqu 0x50(%rsp),%ymm0
0x0000564433c12a2f <+1263>: vmovdqa 0x70(%rsp),%xmm4
0x0000564433c12a35 <+1269>: vmovdqa %ymm0,0x80(%rsp)
0x0000564433c12a3e <+1278>: vmovdqa %xmm4,0xa0(%rsp)
0x0000564433c12a47 <+1287>: mov 0x40(%r12),%rsi
0x0000564433c12a4c <+1292>: cmp 0x48(%r12),%rsi
0x0000564433c12a51 <+1297>: je 0x564433c12b9b <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1627>
0x0000564433c12a57 <+1303>: vmovdqu %ymm0,(%rsi)
0x0000564433c12a5b <+1307>: vmovdqa 0xa0(%rsp),%xmm5
0x0000564433c12a64 <+1316>: lea 0x80(%rsp),%r14
0x0000564433c12a6c <+1324>: vmovdqu %xmm5,0x20(%rsi)
0x0000564433c12a71 <+1329>: mov 0x40(%r12),%rax
0x0000564433c12a76 <+1334>: add $0x30,%rax
0x0000564433c12a7a <+1338>: mov %rax,0x40(%r12)
0x0000564433c12a7f <+1343>: vzeroupper
0x0000564433c12a82 <+1346>: sub 0x38(%r12),%rax
0x0000564433c12a87 <+1351>: mov %rax,%rcx
0x0000564433c12a8a <+1354>: mov %rax,%r12
0x0000564433c12a8d <+1357>: sar $0x4,%rcx
0x0000564433c12a91 <+1361>: movabs $0xaaaaaaaaaaaaaaab,%rax
0x0000564433c12a9b <+1371>: imul %rax,%rcx
0x0000564433c12a9f <+1375>: cmp $0x493e00,%r12
0x0000564433c12aa6 <+1382>: ja 0x564433c12d1e <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+2014>
0x0000564433c12aac <+1388>: dec %rcx
0x0000564433c12aaf <+1391>: cmpl $0xb,0x80(%rsp)
0x0000564433c12ab7 <+1399>: je 0x564433c12c1f <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1759>
0x0000564433c12abd <+1405>: cmpl $0xb,0x50(%rsp)
0x0000564433c12ac2 <+1410>: je 0x564433c12bf3 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1715>
0x0000564433c12ac8 <+1416>: mov 0x18(%rsp),%rax
0x0000564433c12acd <+1421>: mov 0x100(%rbx),%rdi
0x0000564433c12ad4 <+1428>: lea (%rax,%rax,2),%rax
0x0000564433c12ad8 <+1432>: shl $0x4,%rax
0x0000564433c12adc <+1436>: add 0x38(%r13),%rax
0x0000564433c12ae0 <+1440>: mov %rcx,0x8(%rax)
0x0000564433c12ae4 <+1444>: movl $0xc,0x80(%rsp)
0x0000564433c12aef <+1455>: movq $0xffffffffffffffff,0x88(%rsp)
0x0000564433c12afb <+1467>: mov %r14,%rsi
0x0000564433c12afe <+1470>: call 0x564433c02690 <_ZNSt8__detail4_NFAINSt7__cxx1112regex_traitsIcEEE15_M_insert_stateENS_6_StateIcEE>
0x0000564433c12b03 <+1475>: mov %r14,%rdi
0x0000564433c12b06 <+1478>: mov %rax,%r15
0x0000564433c12b09 <+1481>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12b0e <+1486>: mov 0x100(%rbx),%rsi
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12b15 <+1493>: mov 0x38(%r13),%rax
0x0000564433c12b19 <+1497>: mov 0x40(%rsi),%rdi
0x0000564433c12b1d <+1501>: mov 0x38(%rsi),%rdx
0x0000564433c12b21 <+1505>: mov %r15,-0x28(%rax,%r12,1)
0x0000564433c12b26 <+1510>: cmp %rdi,%rdx
0x0000564433c12b29 <+1513>: je 0x564433c12b75 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1589>
0x0000564433c12b2b <+1515>: nopl 0x0(%rax,%rax,1)
0x0000564433c12b30 <+1520>: mov 0x8(%rdx),%rax
0x0000564433c12b34 <+1524>: test %rax,%rax
0x0000564433c12b37 <+1527>: js 0x564433c12b5d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1565>
0x0000564433c12b39 <+1529>: mov 0x38(%rsi),%rcx
0x0000564433c12b3d <+1533>: jmp 0x564433c12b4d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1549>
0x0000564433c12b3f <+1535>: nop
0x0000564433c12b40 <+1536>: mov 0x8(%rax),%rax
0x0000564433c12b44 <+1540>: mov %rax,0x8(%rdx)
0x0000564433c12b48 <+1544>: test %rax,%rax
0x0000564433c12b4b <+1547>: js 0x564433c12b5d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1565>
0x0000564433c12b4d <+1549>: lea (%rax,%rax,2),%rax
0x0000564433c12b51 <+1553>: shl $0x4,%rax
0x0000564433c12b55 <+1557>: add %rcx,%rax
0x0000564433c12b58 <+1560>: cmpl $0xa,(%rax)
0x0000564433c12b5b <+1563>: je 0x564433c12b40 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1536>
0x0000564433c12b5d <+1565>: mov (%rdx),%eax
0x0000564433c12b5f <+1567>: lea -0x1(%rax),%ecx
0x0000564433c12b62 <+1570>: cmp $0x1,%ecx
0x0000564433c12b65 <+1573>: jbe 0x564433c12bc0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1664>
0x0000564433c12b67 <+1575>: cmp $0x7,%eax
0x0000564433c12b6a <+1578>: je 0x564433c12bc0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1664>
0x0000564433c12b6c <+1580>: add $0x30,%rdx
0x0000564433c12b70 <+1584>: cmp %rdx,%rdi
0x0000564433c12b73 <+1587>: jne 0x564433c12b30 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1520>
0x0000564433c12b75 <+1589>: mov 0xb8(%rsp),%rax
0x0000564433c12b7d <+1597>: sub %fs:0x28,%rax
0x0000564433c12b86 <+1606>: jne 0x564433c12c51 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1809>
0x0000564433c12b8c <+1612>: lea -0x28(%rbp),%rsp
0x0000564433c12b90 <+1616>: pop %rbx
0x0000564433c12b91 <+1617>: pop %r12
0x0000564433c12b93 <+1619>: pop %r13
0x0000564433c12b95 <+1621>: pop %r14
0x0000564433c12b97 <+1623>: pop %r15
0x0000564433c12b99 <+1625>: pop %rbp
0x0000564433c12b9a <+1626>: ret
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12b9b <+1627>: lea 0x80(%rsp),%r14
0x0000564433c12ba3 <+1635>: lea 0x38(%r12),%rdi
0x0000564433c12ba8 <+1640>: mov %r14,%rdx
0x0000564433c12bab <+1643>: vzeroupper
0x0000564433c12bae <+1646>: call 0x564433c02380 <_ZNSt6vectorINSt8__detail6_StateIcEESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_>
0x0000564433c12bb3 <+1651>: mov 0x40(%r12),%rax
0x0000564433c12bb8 <+1656>: jmp 0x564433c12a82 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1346>
0x0000564433c12bbd <+1661>: nopl (%rax)
0x0000564433c12bc0 <+1664>: mov 0x10(%rdx),%rax
0x0000564433c12bc4 <+1668>: test %rax,%rax
0x0000564433c12bc7 <+1671>: jns 0x564433c12bdd <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1693>
0x0000564433c12bc9 <+1673>: jmp 0x564433c12b6c <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1580>
0x0000564433c12bcb <+1675>: nopl 0x0(%rax,%rax,1)
0x0000564433c12bd0 <+1680>: mov 0x8(%rax),%rax
0x0000564433c12bd4 <+1684>: mov %rax,0x10(%rdx)
0x0000564433c12bd8 <+1688>: test %rax,%rax
0x0000564433c12bdb <+1691>: js 0x564433c12b6c <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1580>
0x0000564433c12bdd <+1693>: lea (%rax,%rax,2),%rax
0x0000564433c12be1 <+1697>: shl $0x4,%rax
0x0000564433c12be5 <+1701>: add 0x38(%rsi),%rax
0x0000564433c12be9 <+1705>: cmpl $0xa,(%rax)
0x0000564433c12bec <+1708>: je 0x564433c12bd0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1680>
0x0000564433c12bee <+1710>: jmp 0x564433c12b6c <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1580>
0x0000564433c12bf3 <+1715>: mov 0x70(%rsp),%rax
0x0000564433c12bf8 <+1720>: test %rax,%rax
0x0000564433c12bfb <+1723>: je 0x564433c12ac8 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1416>
0x0000564433c12c01 <+1729>: lea 0x60(%rsp),%rdi
0x0000564433c12c06 <+1734>: mov $0x3,%edx
0x0000564433c12c0b <+1739>: mov %rdi,%rsi
0x0000564433c12c0e <+1742>: mov %rcx,0x10(%rsp)
0x0000564433c12c13 <+1747>: call *%rax
0x0000564433c12c15 <+1749>: mov 0x10(%rsp),%rcx
0x0000564433c12c1a <+1754>: jmp 0x564433c12ac8 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1416>
0x0000564433c12c1f <+1759>: mov 0xa0(%rsp),%rax
0x0000564433c12c27 <+1767>: test %rax,%rax
0x0000564433c12c2a <+1770>: je 0x564433c12abd <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1405>
0x0000564433c12c30 <+1776>: lea 0x90(%rsp),%rdi
0x0000564433c12c38 <+1784>: mov $0x3,%edx
0x0000564433c12c3d <+1789>: mov %rdi,%rsi
0x0000564433c12c40 <+1792>: mov %rcx,0x10(%rsp)
0x0000564433c12c45 <+1797>: call *%rax
0x0000564433c12c47 <+1799>: mov 0x10(%rsp),%rcx
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12c4c <+1804>: jmp 0x564433c12abd <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1405>
0x0000564433c12c51 <+1809>: call 0x564433bf2f70 <__stack_chk_fail@plt>
0x0000564433c12c56 <+1814>: endbr64
0x0000564433c12c5a <+1818>: mov %rax,%r12
0x0000564433c12c5d <+1821>: jmp 0x564433c12c68 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1832>
0x0000564433c12c5f <+1823>: endbr64
0x0000564433c12c63 <+1827>: mov %rax,%r12
0x0000564433c12c66 <+1830>: jmp 0x564433c12cb4 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1908>
0x0000564433c12c68 <+1832>: mov %r14,%rdi
0x0000564433c12c6b <+1835>: vzeroupper
0x0000564433c12c6e <+1838>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12c73 <+1843>: lea 0x50(%rsp),%rdi
0x0000564433c12c78 <+1848>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12c7d <+1853>: cmpq $0x0,0x130(%rbx)
0x0000564433c12c85 <+1861>: je 0x564433c12cd0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1936>
0x0000564433c12c87 <+1863>: mov 0x178(%rbx),%rax
0x0000564433c12c8e <+1870>: mov 0x158(%rbx),%r14
0x0000564433c12c95 <+1877>: lea 0x8(%rax),%r13
0x0000564433c12c99 <+1881>: vzeroupper
0x0000564433c12c9c <+1884>: cmp %r13,%r14
0x0000564433c12c9f <+1887>: jae 0x564433c12d01 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1985>
0x0000564433c12ca1 <+1889>: mov (%r14),%rdi
0x0000564433c12ca4 <+1892>: mov $0x1f8,%esi
0x0000564433c12ca9 <+1897>: call 0x564433bf2ef0 <_ZdlPvm@plt>
0x0000564433c12cae <+1902>: add $0x8,%r14
0x0000564433c12cb2 <+1906>: jmp 0x564433c12c9c <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1884>
0x0000564433c12cb4 <+1908>: mov %r14,%rdi
0x0000564433c12cb7 <+1911>: vzeroupper
0x0000564433c12cba <+1914>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12cbf <+1919>: jmp 0x564433c12c7d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1853>
0x0000564433c12cc1 <+1921>: vzeroupper
0x0000564433c12cc4 <+1924>: lea 0xd0(%rbx),%r15
0x0000564433c12ccb <+1931>: call 0x564433bf3230 <__cxa_end_catch@plt>
0x0000564433c12cd0 <+1936>: mov 0x8(%rsp),%rdi
0x0000564433c12cd5 <+1941>: vzeroupper
0x0000564433c12cd8 <+1944>: call 0x564433bf3020 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@plt>
0x0000564433c12cdd <+1949>: mov 0x108(%rbx),%rdi
0x0000564433c12ce4 <+1956>: test %rdi,%rdi
0x0000564433c12ce7 <+1959>: je 0x564433c12cee <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1966>
0x0000564433c12ce9 <+1961>: call 0x564433bf8a30 <_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv>
0x0000564433c12cee <+1966>: mov %r15,%rdi
0x0000564433c12cf1 <+1969>: vzeroupper
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12cf4 <+1972>: call 0x564433bf3020 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@plt>
0x0000564433c12cf9 <+1977>: mov %r12,%rdi
0x0000564433c12cfc <+1980>: call 0x564433bf32c0 <_Unwind_Resume@plt>
0x0000564433c12d01 <+1985>: mov 0x138(%rbx),%rax
0x0000564433c12d08 <+1992>: mov 0x130(%rbx),%rdi
0x0000564433c12d0f <+1999>: lea 0x0(,%rax,8),%rsi
0x0000564433c12d17 <+2007>: call 0x564433bf2ef0 <_ZdlPvm@plt>
0x0000564433c12d1c <+2012>: jmp 0x564433c12cd0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1936>
0x0000564433c12d1e <+2014>: lea 0x21fab(%rip),%rsi # 0x564433c34cd0
0x0000564433c12d25 <+2021>: mov $0x9,%edi
0x0000564433c12d2a <+2026>: call 0x564433bf4bed <_ZSt19__throw_regex_errorNSt15regex_constants10error_typeEPKc>
0x0000564433c12d2f <+2031>: endbr64
0x0000564433c12d33 <+2035>: mov %rax,%r12
0x0000564433c12d36 <+2038>: jmp 0x564433c12c7d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1853>
0x0000564433c12d3b <+2043>: endbr64
0x0000564433c12d3f <+2047>: mov %rax,%rbx
0x0000564433c12d42 <+2050>: jmp 0x564433c12d5d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+2077>
0x0000564433c12d44 <+2052>: lea 0x21f85(%rip),%rsi # 0x564433c34cd0
0x0000564433c12d4b <+2059>: mov $0x9,%edi
0x0000564433c12d50 <+2064>: lea 0x80(%rsp),%r14
0x0000564433c12d58 <+2072>: call 0x564433bf4bed <_ZSt19__throw_regex_errorNSt15regex_constants10error_typeEPKc>
0x0000564433c12d5d <+2077>: mov %r12,%rdi
0x0000564433c12d60 <+2080>: vzeroupper
0x0000564433c12d63 <+2083>: call 0x564433bf3120 <_ZNSt6localeD1Ev@plt>
0x0000564433c12d68 <+2088>: mov %rbx,%rdi
0x0000564433c12d6b <+2091>: call 0x564433bf32c0 <_Unwind_Resume@plt>
0x0000564433c12d70 <+2096>: endbr64
0x0000564433c12d74 <+2100>: mov %rax,%r12
0x0000564433c12d77 <+2103>: jmp 0x564433c12d82 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+2114>
0x0000564433c12d79 <+2105>: endbr64
0x0000564433c12d7d <+2109>: mov %rax,%rdi
0x0000564433c12d80 <+2112>: jmp 0x564433c12da3 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+2147>
0x0000564433c12d82 <+2114>: mov %r14,%rdi
0x0000564433c12d85 <+2117>: vzeroupper
0x0000564433c12d88 <+2120>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12d8d <+2125>: lea 0x50(%rsp),%rdi
0x0000564433c12d92 <+2130>: call 0x564433c01060 <_ZNSt8__detail6_StateIcED2Ev>
0x0000564433c12d97 <+2135>: lea 0xd0(%rbx),%r15
0x0000564433c12d9e <+2142>: jmp 0x564433c12c7d <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1853>
0x0000564433c12da3 <+2147>: vzeroupper
0x0000564433c12da6 <+2150>: call 0x564433bf2c10 <__cxa_begin_catch@plt>
0x0000564433c12dab <+2155>: call 0x564433bf3160 <__cxa_rethrow@plt>
--Type <RET> for more, q to quit, c to continue without paging--
0x0000564433c12db0 <+2160>: endbr64
0x0000564433c12db4 <+2164>: mov %rax,%r12
0x0000564433c12db7 <+2167>: lea 0xd0(%rbx),%r15
0x0000564433c12dbe <+2174>: jmp 0x564433c12cd0 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1936>
0x0000564433c12dc3 <+2179>: endbr64
0x0000564433c12dc7 <+2183>: mov %rax,%r12
0x0000564433c12dca <+2186>: lea 0xd0(%rbx),%r15
0x0000564433c12dd1 <+2193>: jmp 0x564433c12cee <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1966>
0x0000564433c12dd6 <+2198>: endbr64
0x0000564433c12dda <+2202>: mov %rax,%r12
0x0000564433c12ddd <+2205>: vzeroupper
0x0000564433c12de0 <+2208>: call 0x564433bf3230 <__cxa_end_catch@plt>
0x0000564433c12de5 <+2213>: mov %r12,%rdi
0x0000564433c12de8 <+2216>: call 0x564433bf2c10 <__cxa_begin_catch@plt>
0x0000564433c12ded <+2221>: mov 0x138(%rbx),%rax
0x0000564433c12df4 <+2228>: mov 0x130(%rbx),%rdi
0x0000564433c12dfb <+2235>: lea 0x0(,%rax,8),%rsi
0x0000564433c12e03 <+2243>: call 0x564433bf2ef0 <_ZdlPvm@plt>
0x0000564433c12e08 <+2248>: xor %eax,%eax
0x0000564433c12e0a <+2250>: mov %rax,0x130(%rbx)
0x0000564433c12e11 <+2257>: mov %rax,0x138(%rbx)
0x0000564433c12e18 <+2264>: call 0x564433bf3160 <__cxa_rethrow@plt>
0x0000564433c12e1d <+2269>: endbr64
0x0000564433c12e21 <+2273>: mov %rax,%r12
0x0000564433c12e24 <+2276>: jmp 0x564433c12cc1 <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+1921>
End of assembler dump.
Here's the one that crashed the program. An AVX2 instruction.
(gdb) display/i $pc
1: x/i $pc
=> 0x564433c1274f <_ZNSt8__detail9_CompilerINSt7__cxx1112regex_traitsIcEEEC2EPKcS6_RKSt6localeNSt15regex_constants18syntax_option_typeE+527>: vpbroadcastq %rax,%xmm0
Next time, please only post a dozen or so opcodes before and after the crash site, not pages of the entire method. :)
Program received signal SIGILL, Illegal instruction.
0x0000564433c1274f in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) ()
(gdb) disassemble 0x0000564433c1274f
0x0000564433c12744 <+516>: lea 0x1f8(%rax),%rcx
0x0000564433c1274b <+523>: mov %rax,0x0(%r13)
=> 0x0000564433c1274f <+527>: vpbroadcastq %rax,%xmm0
0x0000564433c12755 <+533>: mov 0x100(%rbx),%rax
0x0000564433c1275c <+540>: vmovq %rcx,%xmm1
0x0000564433c12761 <+545>: add $0x50,%rax
What is the contents of your cat /proc/cpuinfo
(filter for just one core, or use lscpu
)?
vpbroadcastq is AVX2 instruction. My guess is you don't have AVX2 support on the target. Interested to see what @dennisjenkins75 asked for.
Sorry about the mess @dennisjenkins75 . Below is my CPU info (for 1 core).
processor : 15
vendor_id : GenuineIntel
cpu family : 6
model : 186
model name : 13th Gen Intel(R) Core(TM) i5-1340P
stepping : 2
microcode : 0x410e
cpu MHz : 2200.000
cache size : 12288 KB
physical id : 0
siblings : 16
core id : 23
cpu cores : 12
apicid : 46
initial apicid : 46
fpu : yes
fpu_exception : yes
cpuid level : 32
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabilities
vmx flags : vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid ple shadow_vmcs ept_mode_based_exec tsc_scaling usr_wait_pause
bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs eibrs_pbrsb
bogomips : 4377.60
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
@kiplingw Yes. It's an AVX2 instruction. However the cpuinfo
as well as lscpu
claims to have AVX2 support.
Additional experiment I performed by trying to disable both avx512 and avx2. Compiled using -mno-avx512f -mno-avx
CFLAGS. Meson build logs confirmed that the flags were applied. Still getting SIGILL on target machine.
ref: https://stackoverflow.com/questions/60815316/disabling-all-avx512-extensions
I confirmed that the target machine (Intel 13th Gen) does not support avx512f.
#include <stdio.h>
int main(){
__builtin_cpu_init ();
if (__builtin_cpu_supports ("avx512f"))
printf("Supports avx512f");
return 0;
}
avx2
is supported while avx512f
is not.
As per https://docs.oracle.com/cd/E37838_01/html/E61064/gsesq.html vpbroadcastq
seems to be an AVX512VL
instruction. Not sure how it is related. Can we currently disable avx512
in Pistache? Or is there any way to do it?
Very few CPUs support AVX512. It's also controversial. Pistache doesn't require it. But your compiler optimization settings might be trying to use it because it can increase performance, such as certain copy or initialization operations.
I was able to get it working. I removed -ftree-vectorize
gcc arg along with -march=native
. Then I added -mno-avx512f
arg while building Pistache. Basically I disabled avx512 and turned off native optimisation flags as well. By default it uses -march=x86-64
I think.
So I compiled an application which used Pistache on an Intel 11th gen core i7 processor and used it on Intel 13th gen core processor. I'm getting an Illegal instruction error. I have built Pistache from source.
Intel 13th has removed avx512 support at launch. Not sure if it has anything to do with it. Is there anything I can do? Additionally I used
-march=x86-64
in CLFAGS instead ofnative
but still hitting the same error. Environment details: