Created
May 19, 2021 19:14
-
-
Save petar-dambovaliev/e7d4867e2483b3aab427232915b9c3e6 to your computer and use it in GitHub Desktop.
matchit::foo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
matchit::foo: | |
push rbp | |
mov rbp, rsp | |
push r15 | |
push r14 | |
push r13 | |
push r12 | |
push rbx | |
sub rsp, 360 | |
mov rax, qword, ptr, [rip, +, L___unnamed_27] | |
mov qword, ptr, [rbp, -, 272], 0 | |
mov qword, ptr, [rbp, -, 280], 0 | |
mov qword, ptr, [rbp, -, 256], 0 | |
mov qword, ptr, [rbp, -, 248], 0 | |
mov rcx, qword, ptr, [rip, +, L___unnamed_28] | |
mov qword, ptr, [rbp, -, 232], 0 | |
mov qword, ptr, [rbp, -, 224], 0 | |
mov qword, ptr, [rbp, -, 288], rax | |
mov word, ptr, [rbp, -, 212], 768 | |
mov qword, ptr, [rbp, -, 264], rax | |
mov qword, ptr, [rbp, -, 240], rcx | |
mov byte, ptr, [rbp, -, 210], 0 | |
mov dword, ptr, [rbp, -, 216], 0 | |
mov qword, ptr, [rbp, -, 208], 0 | |
lea rax, [rip, +, l___unnamed_11] | |
mov qword, ptr, [rbp, -, 200], rax | |
mov qword, ptr, [rbp, -, 192], 0 | |
mov qword, ptr, [rbp, -, 184], rax | |
mov qword, ptr, [rbp, -, 176], 0 | |
mov qword, ptr, [rbp, -, 168], rax | |
mov qword, ptr, [rbp, -, 160], 0 | |
mov qword, ptr, [rbp, -, 152], rax | |
mov qword, ptr, [rbp, -, 144], 0 | |
mov qword, ptr, [rbp, -, 136], rax | |
mov qword, ptr, [rbp, -, 128], 0 | |
mov qword, ptr, [rbp, -, 120], rax | |
mov qword, ptr, [rbp, -, 112], 0 | |
mov qword, ptr, [rbp, -, 104], 0 | |
mov r15d, 12 | |
lea r9, [rip, +, l___unnamed_29] | |
lea r12, [rbp, -, 288] | |
xor r13d, r13d | |
jmp LBB31_3 | |
LBB31_1: | |
add r12, 48 | |
add r9, rbx | |
xor edi, edi | |
LBB31_2: | |
mov rbx, qword, ptr, [r12] | |
lea r14, [rdi, +, 4*rdi] | |
shl r14, 4 | |
lea r12, [rbx, +, r14] | |
mov r13, qword, ptr, [rbx, +, r14, +, 16] | |
cmp r15, r13 | |
jbe LBB31_44 | |
LBB31_3: | |
mov rdi, qword, ptr, [r12] | |
mov qword, ptr, [rbp, -, 48], r9 | |
mov rsi, r9 | |
mov rdx, r13 | |
call _memcmp | |
test eax, eax | |
jne LBB31_73 | |
test r13, r13 | |
mov r9, qword, ptr, [rbp, -, 48] | |
je LBB31_7 | |
cmp r15, r13 | |
je LBB31_7 | |
cmp byte, ptr, [r9, +, r13], -65 | |
jle LBB31_71 | |
LBB31_7: | |
add r9, r13 | |
mov r14, r15 | |
sub r14, r13 | |
cmp byte, ptr, [r12, +, 76], 0 | |
je LBB31_27 | |
cmp qword, ptr, [r12, +, 64], 0 | |
je LBB31_63 | |
mov r12, qword, ptr, [r12, +, 48] | |
movzx eax, byte, ptr, [r12, +, 77] | |
cmp rax, 1 | |
jne LBB31_48 | |
mov rbx, r14 | |
cmp r15, r13 | |
je LBB31_15 | |
xor ebx, ebx | |
LBB31_12: | |
cmp byte, ptr, [r9, +, rbx], 47 | |
je LBB31_15 | |
inc rbx | |
cmp r14, rbx | |
jne LBB31_12 | |
mov rbx, r14 | |
LBB31_15: | |
mov qword, ptr, [rbp, -, 48], r9 | |
mov rdx, qword, ptr, [r12, +, 16] | |
test rdx, rdx | |
je LBB31_68 | |
mov rsi, qword, ptr, [r12] | |
inc rsi | |
dec rdx | |
lea rdi, [rbp, -, 72] | |
call core::str::converts::from_utf8 | |
cmp dword, ptr, [rbp, -, 72], 1 | |
je LBB31_69 | |
mov rsi, qword, ptr, [rbp, -, 64] | |
mov rdx, qword, ptr, [rbp, -, 56] | |
test rbx, rbx | |
sete al | |
cmp r14, rbx | |
sete r13b | |
or r13b, al | |
mov rcx, qword, ptr, [rbp, -, 48] | |
jne LBB31_21 | |
cmp r14, rbx | |
jbe LBB31_66 | |
cmp byte, ptr, [rcx, +, rbx], -65 | |
jle LBB31_66 | |
LBB31_21: | |
lea rdi, [rbp, -, 208] | |
mov r8, rbx | |
call matchit::params::Params::push | |
mov r15, r14 | |
sub r15, rbx | |
jbe LBB31_54 | |
cmp qword, ptr, [r12, +, 64], 0 | |
je LBB31_70 | |
test r13b, r13b | |
mov r9, qword, ptr, [rbp, -, 48] | |
jne LBB31_1 | |
cmp byte, ptr, [r9, +, rbx], -65 | |
jg LBB31_1 | |
jmp LBB31_26 | |
LBB31_27: | |
test r14, r14 | |
je LBB31_64 | |
mov al, byte, ptr, [r9] | |
mov rcx, qword, ptr, [r12, +, 40] | |
test rcx, rcx | |
je LBB31_32 | |
mov rdx, qword, ptr, [r12, +, 24] | |
xor edi, edi | |
LBB31_30: | |
cmp byte, ptr, [rdx, +, rdi], al | |
je LBB31_42 | |
inc rdi | |
cmp rcx, rdi | |
jne LBB31_30 | |
jmp LBB31_32 | |
LBB31_42: | |
mov rsi, qword, ptr, [r12, +, 64] | |
cmp rsi, rdi | |
jbe LBB31_65 | |
add r12, 48 | |
mov r15, r14 | |
jmp LBB31_2 | |
LBB31_44: | |
mov qword, ptr, [rbp, -, 48], r9 | |
jne LBB31_73 | |
mov rsi, qword, ptr, [r12] | |
mov rdi, r9 | |
mov rdx, r15 | |
call _memcmp | |
test eax, eax | |
jne LBB31_72 | |
cmp byte, ptr, [rbx, +, r14, +, 78], 1 | |
jne LBB31_81 | |
lea r12, [rbx, +, r14, +, 79] | |
jmp LBB31_56 | |
LBB31_48: | |
cmp eax, 2 | |
jne LBB31_67 | |
mov rdx, qword, ptr, [r12, +, 16] | |
cmp rdx, 1 | |
jbe LBB31_89 | |
mov rbx, r9 | |
mov rsi, qword, ptr, [r12] | |
add rsi, 2 | |
add rdx, -2 | |
lea rdi, [rbp, -, 72] | |
call core::str::converts::from_utf8 | |
cmp dword, ptr, [rbp, -, 72], 1 | |
je LBB31_90 | |
mov rcx, rbx | |
mov rsi, qword, ptr, [rbp, -, 64] | |
mov rdx, qword, ptr, [rbp, -, 56] | |
lea rdi, [rbp, -, 208] | |
mov r8, r14 | |
call matchit::params::Params::push | |
cmp byte, ptr, [r12, +, 78], 1 | |
je LBB31_55 | |
jmp LBB31_35 | |
LBB31_54: | |
cmp byte, ptr, [r12, +, 78], 1 | |
jne LBB31_91 | |
LBB31_55: | |
add r12, 79 | |
LBB31_56: | |
lea rax, [rbp, -, 400] | |
lea rsi, [rbp, -, 208] | |
mov ecx, 14 | |
mov rdi, rax | |
rep movsq, es:[rdi], [rsi] | |
lea rdi, [rbp, -, 200] | |
mov ecx, 14 | |
mov rsi, rax | |
rep movsq, es:[rdi], [rsi] | |
mov qword, ptr, [rbp, -, 208], r12 | |
mov bl, byte, ptr, [r12] | |
lea rdi, [rbp, -, 288] | |
call core::ptr::drop_in_place<matchit::tree::Node<bool>> | |
cmp qword, ptr, [rbp, -, 200], 0 | |
je LBB31_62 | |
mov rsi, qword, ptr, [rbp, -, 184] | |
test rsi, rsi | |
je LBB31_62 | |
mov rdi, qword, ptr, [rbp, -, 192] | |
test rdi, rdi | |
je LBB31_62 | |
shl rsi, 5 | |
je LBB31_62 | |
mov edx, 8 | |
call ___rust_dealloc | |
LBB31_62: | |
mov eax, ebx | |
add rsp, 360 | |
pop rbx | |
pop r12 | |
pop r13 | |
pop r14 | |
pop r15 | |
pop rbp | |
ret | |
LBB31_63: | |
lea rdx, [rip, +, l___unnamed_30] | |
xor edi, edi | |
xor esi, esi | |
call core::panicking::panic_bounds_check | |
jmp LBB31_107 | |
LBB31_64: | |
lea rdx, [rip, +, l___unnamed_31] | |
xor edi, edi | |
xor esi, esi | |
call core::panicking::panic_bounds_check | |
jmp LBB31_107 | |
LBB31_65: | |
lea rdx, [rip, +, l___unnamed_32] | |
call core::panicking::panic_bounds_check | |
jmp LBB31_107 | |
LBB31_32: | |
cmp r14, 1 | |
jne LBB31_35 | |
cmp al, 47 | |
jne LBB31_35 | |
LBB31_34: | |
mov dl, 1 | |
cmp byte, ptr, [r12, +, 78], 0 | |
jne LBB31_36 | |
LBB31_35: | |
xor edx, edx | |
LBB31_36: | |
cmp qword, ptr, [rbp, -, 208], 0 | |
je LBB31_41 | |
mov rsi, qword, ptr, [rbp, -, 192] | |
test rsi, rsi | |
je LBB31_41 | |
mov rdi, qword, ptr, [rbp, -, 200] | |
test rdi, rdi | |
je LBB31_41 | |
shl rsi, 5 | |
je LBB31_41 | |
mov ebx, edx | |
mov edx, 8 | |
call ___rust_dealloc | |
mov edx, ebx | |
LBB31_41: | |
mov byte, ptr, [rbp, -, 208], dl | |
lea rdi, [rip, +, l___unnamed_33] | |
lea rcx, [rip, +, l___unnamed_34] | |
lea r8, [rip, +, l___unnamed_35] | |
lea rdx, [rbp, -, 208] | |
mov esi, 43 | |
call core::result::unwrap_failed | |
jmp LBB31_107 | |
LBB31_66: | |
lea r8, [rip, +, l___unnamed_36] | |
mov rdi, rcx | |
mov rsi, r14 | |
xor edx, edx | |
mov rcx, rbx | |
call core::str::slice_error_fail | |
jmp LBB31_107 | |
LBB31_67: | |
lea rdi, [rip, +, l___unnamed_37] | |
lea rdx, [rip, +, l___unnamed_38] | |
mov esi, 40 | |
call core::panicking::panic | |
jmp LBB31_107 | |
LBB31_68: | |
lea rdx, [rip, +, l___unnamed_39] | |
mov edi, 1 | |
xor esi, esi | |
call core::slice::index::slice_start_index_len_fail | |
jmp LBB31_107 | |
LBB31_69: | |
lea rcx, [rbp, -, 64] | |
mov rax, qword, ptr, [rcx] | |
mov rcx, qword, ptr, [rcx, +, 8] | |
mov qword, ptr, [rbp, -, 80], rcx | |
mov qword, ptr, [rbp, -, 88], rax | |
lea rdi, [rip, +, l___unnamed_33] | |
lea rcx, [rip, +, l___unnamed_40] | |
lea r8, [rip, +, l___unnamed_41] | |
lea rdx, [rbp, -, 88] | |
mov esi, 43 | |
call core::result::unwrap_failed | |
jmp LBB31_107 | |
LBB31_70: | |
inc rbx | |
cmp r14, rbx | |
sete dl | |
jmp LBB31_36 | |
LBB31_71: | |
lea r8, [rip, +, l___unnamed_42] | |
mov rdi, r9 | |
mov rsi, r15 | |
mov rdx, r13 | |
mov rcx, r15 | |
call core::str::slice_error_fail | |
jmp LBB31_107 | |
LBB31_26: | |
lea r8, [rip, +, l___unnamed_43] | |
mov rdi, r9 | |
mov rsi, r14 | |
mov rdx, rbx | |
mov rcx, r14 | |
call core::str::slice_error_fail | |
jmp LBB31_107 | |
LBB31_72: | |
mov r13, r15 | |
LBB31_73: | |
cmp r15, 1 | |
jne LBB31_75 | |
mov dl, 1 | |
mov rax, qword, ptr, [rbp, -, 48] | |
cmp byte, ptr, [rax], 47 | |
je LBB31_36 | |
LBB31_75: | |
lea rax, [r15, +, 1] | |
cmp r13, rax | |
jne LBB31_35 | |
cmp r15, r13 | |
jae LBB31_104 | |
dec r13 | |
cmp r15, r13 | |
jne LBB31_35 | |
mov rsi, qword, ptr, [r12] | |
cmp byte, ptr, [rsi, +, r15], 47 | |
jne LBB31_35 | |
mov rdi, qword, ptr, [rbp, -, 48] | |
mov rdx, r15 | |
call _memcmp | |
test eax, eax | |
je LBB31_34 | |
jmp LBB31_35 | |
LBB31_81: | |
cmp r15, 1 | |
jne LBB31_85 | |
mov rax, qword, ptr, [rbp, -, 48] | |
cmp byte, ptr, [rax], 47 | |
jne LBB31_85 | |
cmp byte, ptr, [rbx, +, r14, +, 76], 0 | |
je LBB31_85 | |
mov dl, 1 | |
cmp byte, ptr, [rbx, +, r14, +, 77], 0 | |
jne LBB31_36 | |
LBB31_85: | |
mov rcx, qword, ptr, [rbx, +, r14, +, 40] | |
test rcx, rcx | |
je LBB31_35 | |
mov rdx, qword, ptr, [rbx, +, r14, +, 24] | |
mov eax, 78 | |
xor edi, edi | |
LBB31_87: | |
cmp byte, ptr, [rdx, +, rdi], 47 | |
je LBB31_96 | |
inc rdi | |
add rax, 80 | |
cmp rcx, rdi | |
jne LBB31_87 | |
jmp LBB31_35 | |
LBB31_89: | |
lea rax, [rip, +, l___unnamed_44] | |
mov edi, 2 | |
mov rsi, rdx | |
mov rdx, rax | |
call core::slice::index::slice_start_index_len_fail | |
jmp LBB31_107 | |
LBB31_90: | |
mov rax, qword, ptr, [rbp, -, 64] | |
mov rcx, qword, ptr, [rbp, -, 56] | |
mov qword, ptr, [rbp, -, 80], rcx | |
mov qword, ptr, [rbp, -, 88], rax | |
lea rdi, [rip, +, l___unnamed_33] | |
lea rcx, [rip, +, l___unnamed_40] | |
lea r8, [rip, +, l___unnamed_45] | |
lea rdx, [rbp, -, 88] | |
mov esi, 43 | |
call core::result::unwrap_failed | |
jmp LBB31_107 | |
LBB31_91: | |
cmp qword, ptr, [r12, +, 64], 1 | |
jne LBB31_35 | |
mov rax, qword, ptr, [r12, +, 48] | |
mov rcx, qword, ptr, [rax, +, 16] | |
test rcx, rcx | |
je LBB31_102 | |
cmp rcx, 1 | |
jne LBB31_35 | |
mov rcx, qword, ptr, [rax] | |
cmp byte, ptr, [rcx], 47 | |
jne LBB31_35 | |
mov dl, 1 | |
cmp byte, ptr, [rax, +, 78], 0 | |
je LBB31_35 | |
jmp LBB31_36 | |
LBB31_96: | |
mov rsi, qword, ptr, [rbx, +, r14, +, 64] | |
cmp rsi, rdi | |
jbe LBB31_105 | |
mov rcx, qword, ptr, [rbx, +, r14, +, 48] | |
cmp qword, ptr, [rcx, +, rax, -, 62], 1 | |
jne LBB31_99 | |
mov dl, 1 | |
cmp byte, ptr, [rcx, +, rax], 0 | |
jne LBB31_36 | |
LBB31_99: | |
cmp byte, ptr, [rcx, +, rax, -, 1], 2 | |
jne LBB31_35 | |
cmp qword, ptr, [rcx, +, rax, -, 14], 0 | |
je LBB31_106 | |
mov rax, qword, ptr, [rcx, +, rax, -, 30] | |
mov dl, 1 | |
cmp byte, ptr, [rax, +, 78], 0 | |
je LBB31_35 | |
jmp LBB31_36 | |
LBB31_102: | |
cmp qword, ptr, [rax, +, 40], 1 | |
jne LBB31_35 | |
mov rax, qword, ptr, [rax, +, 24] | |
mov dl, 1 | |
cmp byte, ptr, [rax], 47 | |
jne LBB31_35 | |
jmp LBB31_36 | |
LBB31_104: | |
lea rdx, [rip, +, l___unnamed_46] | |
mov rdi, r15 | |
mov rsi, r13 | |
call core::panicking::panic_bounds_check | |
jmp LBB31_107 | |
LBB31_105: | |
lea rdx, [rip, +, l___unnamed_47] | |
call core::panicking::panic_bounds_check | |
jmp LBB31_107 | |
LBB31_106: | |
lea rdx, [rip, +, l___unnamed_48] | |
xor edi, edi | |
xor esi, esi | |
call core::panicking::panic_bounds_check | |
LBB31_107: | |
ud2 | |
LBB31_108: | |
mov rbx, rax | |
lea rdi, [rbp, -, 208] | |
call core::ptr::drop_in_place<matchit::tree::Match<&bool>> | |
mov rdi, rbx | |
call __Unwind_Resume | |
LBB31_109: | |
jmp LBB31_112 | |
LBB31_110: | |
mov rbx, rax | |
jmp LBB31_113 | |
LBB31_111: | |
LBB31_112: | |
mov rbx, rax | |
lea rdi, [rbp, -, 208] | |
call core::ptr::drop_in_place<matchit::params::Params> | |
LBB31_113: | |
lea rdi, [rbp, -, 288] | |
call core::ptr::drop_in_place<matchit::tree::Node<bool>> | |
mov rdi, rbx | |
call __Unwind_Resume |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment