Skip to content

Instantly share code, notes, and snippets.

@coolreader18
Created October 7, 2020 04:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coolreader18/c67e4ddfb46db37900e7f7ccd77d98aa to your computer and use it in GitHub Desktop.
Save coolreader18/c67e4ddfb46db37900e7f7ccd77d98aa to your computer and use it in GitHub Desktop.
rustpython_vm::frame::ExecutingFrame::run:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 216
mov r14, rdx
mov r15, rsi
mov qword, ptr, [rsp], rdi
mov qword, ptr, [rsp, +, 8], rsi
jmp .LBB3241_1
.LBB3241_13:
cmp dword, ptr, [rsp, +, 120], 2
jne .LBB3241_14
.LBB3241_1:
mov rsi, qword, ptr, [r15]
mov rax, qword, ptr, [rsi, +, 8]
mov rcx, qword, ptr, [rax, +, 16]
mov rdx, rcx
cmp rcx, 8
ja .LBB3241_3
mov edx, 8
.LBB3241_3:
mov rdi, rdx
neg rdi
add rdx, 15
and rdx, rdi
add rdx, qword, ptr, [rsi]
lea rdi, [rcx, +, 39]
neg rcx
and rdi, rcx
add rdi, rdx
call qword, ptr, [rax, +, 24]
mov rbp, rax
mov rdi, rax
call qword, ptr, [rdx, +, 24]
movabs rcx, -7858531083242178456
cmp rax, rcx
je .LBB3241_5
xor ebp, ebp
.LBB3241_5:
mov rax, qword, ptr, [r15, +, 24]
mov rdi, qword, ptr, [rax]
mov rsi, qword, ptr, [rbp, +, 96]
cmp rsi, rdi
jbe .LBB3241_52
mov rax, qword, ptr, [rbp, +, 80]
shl rdi, 4
movups xmm0, xmmword, ptr, [rax, +, rdi]
movaps xmmword, ptr, [rsp, +, 192], xmm0
mov rdi, r14
call qword, ptr, [rip, +, _ZN13rustpython_vm6stdlib6signal13check_signals17h183d27e8c5cfddb2E@GOTPCREL]
test rax, rax
je .LBB3241_7
mov qword, ptr, [rsp, +, 120], rax
mov qword, ptr, [rsp, +, 128], rdx
mov qword, ptr, [rsp, +, 112], 1
jmp .LBB3241_16
.LBB3241_7:
mov rsi, qword, ptr, [r15]
mov rax, qword, ptr, [rsi, +, 8]
mov rcx, qword, ptr, [rax, +, 16]
mov rdx, rcx
cmp rcx, 8
ja .LBB3241_9
mov edx, 8
.LBB3241_9:
mov rdi, rdx
neg rdi
add rdx, 15
and rdx, rdi
add rdx, qword, ptr, [rsi]
lea rdi, [rcx, +, 39]
neg rcx
and rdi, rcx
add rdi, rdx
call qword, ptr, [rax, +, 24]
mov rbp, rax
mov rdi, rax
call qword, ptr, [rdx, +, 24]
movabs rcx, -7858531083242178456
cmp rax, rcx
je .LBB3241_11
xor ebp, ebp
.LBB3241_11:
mov rax, qword, ptr, [r15, +, 24]
mov edi, 1
lock xadd, qword, ptr, [rax], rdi
mov rsi, qword, ptr, [rbp, +, 16]
cmp rsi, rdi
jbe .LBB3241_53
mov rax, qword, ptr, [rbp]
shl rdi, 6
lea rsi, [rax, +, rdi]
movzx eax, byte, ptr, [rax, +, rdi]
lea rdi, [rsp, +, 112]
mov rdx, r15
mov rcx, r14
lea rbp, [rip, +, .Lswitch.table._ZN13rustpython_vm5frame14ExecutingFrame3run17h890ffadb7c8de8edE]
call qword, ptr, [rbp, +, 8*rax]
cmp dword, ptr, [rsp, +, 112], 1
jne .LBB3241_13
.LBB3241_16:
mov rax, qword, ptr, [rsp, +, 120]
mov rcx, qword, ptr, [rsp, +, 128]
mov qword, ptr, [rsp, +, 16], rax
mov qword, ptr, [rsp, +, 24], rcx
mov rdx, qword, ptr, [rcx, +, 16]
cmp rdx, 8
mov esi, 8
cmova rsi, rdx
mov rdi, rsi
neg rdi
add rsi, 15
and rsi, rdi
add rsi, rax
lea rdi, [rdx, +, 39]
neg rdx
and rdi, rdx
add rdi, rsi
call qword, ptr, [rcx, +, 24]
mov r12, rax
mov rdi, rax
call qword, ptr, [rdx, +, 24]
movabs rcx, 5575715528315283589
cmp rax, rcx
je .LBB3241_20
xor r12d, r12d
.LBB3241_20:
mov rax, qword, ptr, [r12]
test al, 8
jne .LBB3241_23
mov rcx, rax
add rcx, 16
jb .LBB3241_23
lock cmpxchg, qword, ptr, [r12], rcx
je .LBB3241_24
.LBB3241_23:
mov qword, ptr, [rsp, +, 32], 0
mov rdi, r12
xor esi, esi
lea rdx, [rsp, +, 32]
call qword, ptr, [rip, +, _ZN11parking_lot10raw_rwlock9RawRwLock16lock_shared_slow17h48e81e29c313decdE@GOTPCREL]
.LBB3241_24:
mov r15, qword, ptr, [r12, +, 8]
test r15, r15
je .LBB3241_25
mov r13, qword, ptr, [r12, +, 16]
lock add, qword, ptr, [r15], 1
jg .LBB3241_27
jmp .LBB3241_54
.LBB3241_25:
xor r15d, r15d
.LBB3241_27:
mov rax, -16
lock xadd, qword, ptr, [r12], rax
and rax, -14
cmp rax, 18
jne .LBB3241_29
mov rdi, r12
call qword, ptr, [rip, +, _ZN11parking_lot10raw_rwlock9RawRwLock18unlock_shared_slow17h279bb5688054ec33E@GOTPCREL]
.LBB3241_29:
mov qword, ptr, [rsp, +, 88], r15
mov qword, ptr, [rsp, +, 96], r13
mov rcx, qword, ptr, [rsp, +, 8]
mov rax, qword, ptr, [rcx, +, 16]
mov rbp, qword, ptr, [rax]
mov rbx, qword, ptr, [rax, +, 8]
lock add, qword, ptr, [rbp], 1
jle .LBB3241_54
mov qword, ptr, [rsp, +, 32], rbp
mov qword, ptr, [rsp, +, 40], rbx
mov rax, qword, ptr, [rcx, +, 24]
mov r12, qword, ptr, [rax]
lea rdi, [rsp, +, 192]
call qword, ptr, [rip, +, _ZN19rustpython_bytecode8bytecode8Location3row17h1b6618a58cccc1fbE@GOTPCREL]
mov qword, ptr, [rsp, +, 144], r15
mov qword, ptr, [rsp, +, 152], r13
mov qword, ptr, [rsp, +, 160], rbp
mov qword, ptr, [rsp, +, 168], rbx
mov qword, ptr, [rsp, +, 176], r12
mov qword, ptr, [rsp, +, 184], rax
mov r12, qword, ptr, [rsp, +, 16]
mov rbx, qword, ptr, [rsp, +, 24]
mov rax, qword, ptr, [rbx, +, 16]
cmp rax, 8
mov ecx, 8
cmova rcx, rax
mov rdx, rcx
neg rdx
add rcx, 15
and rcx, rdx
add rcx, r12
lea rdi, [rax, +, 39]
neg rax
and rdi, rax
add rdi, rcx
call qword, ptr, [rbx, +, 24]
mov rbp, rax
mov rdi, rax
call qword, ptr, [rdx, +, 24]
movabs rcx, 5575715528315283589
cmp rax, rcx
mov r15, qword, ptr, [rsp, +, 8]
je .LBB3241_35
xor ebp, ebp
.LBB3241_35:
movups xmm0, xmmword, ptr, [rsp, +, 144]
movups xmm1, xmmword, ptr, [rsp, +, 160]
movups xmm2, xmmword, ptr, [rsp, +, 176]
movaps xmmword, ptr, [rsp, +, 64], xmm2
movaps xmmword, ptr, [rsp, +, 48], xmm1
movaps xmmword, ptr, [rsp, +, 32], xmm0
mov rax, qword, ptr, [r14, +, 32]
mov rsi, qword, ptr, [rax, +, 1120]
mov rdx, qword, ptr, [rax, +, 1128]
lock add, qword, ptr, [rsi], 1
jle .LBB3241_54
mov rcx, r14
lea rdi, [rsp, +, 32]
call rustpython_vm::pyobject::PyValue::into_ref_with_type_unchecked
mov rdi, rbp
mov rsi, rax
call qword, ptr, [rip, +, _ZN13rustpython_vm10exceptions15PyBaseException13set_traceback17h96882aef8922a862E@GOTPCREL]
mov qword, ptr, [rsp, +, 96], r12
mov qword, ptr, [rsp, +, 104], rbx
mov qword, ptr, [rsp, +, 88], 1
lea rdi, [rsp, +, 32]
mov rsi, r15
mov rdx, r14
lea rcx, [rsp, +, 88]
call rustpython_vm::frame::ExecutingFrame::unwind_blocks
cmp dword, ptr, [rsp, +, 32], 1
je .LBB3241_55
cmp dword, ptr, [rsp, +, 40], 2
je .LBB3241_1
lea rdx, [rsp, +, 40]
mov rax, qword, ptr, [rdx, +, 16]
mov rcx, qword, ptr, [rsp]
mov qword, ptr, [rcx, +, 24], rax
movups xmm0, xmmword, ptr, [rdx]
movups xmmword, ptr, [rcx, +, 8], xmm0
xor eax, eax
jmp .LBB3241_42
.LBB3241_55:
movups xmm0, xmmword, ptr, [rsp, +, 40]
mov rcx, qword, ptr, [rsp]
movups xmmword, ptr, [rcx, +, 8], xmm0
mov eax, 1
.LBB3241_42:
mov qword, ptr, [rcx], rax
.LBB3241_43:
add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
.LBB3241_14:
lea rdx, [rsp, +, 120]
mov rax, qword, ptr, [rdx, +, 16]
mov rcx, qword, ptr, [rsp]
mov qword, ptr, [rcx, +, 24], rax
movups xmm0, xmmword, ptr, [rdx]
movups xmmword, ptr, [rcx, +, 8], xmm0
mov qword, ptr, [rcx], 0
jmp .LBB3241_43
.LBB3241_54:
ud2
ud2
.LBB3241_52:
lea rdx, [rip, +, .L__unnamed_815]
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17hbdc398d43c7789beE@GOTPCREL]
ud2
.LBB3241_53:
lea rdx, [rip, +, .L__unnamed_816]
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17hbdc398d43c7789beE@GOTPCREL]
ud2
.LBB3241_49:
mov rbx, rax
lea rdi, [rsp, +, 32]
call core::ptr::drop_in_place
lea rdi, [rsp, +, 88]
call core::ptr::drop_in_place
jmp .LBB3241_46
.LBB3241_48:
mov rbx, rax
jmp .LBB3241_47
.LBB3241_44:
jmp .LBB3241_45
.LBB3241_50:
mov rbx, rax
lea rdi, [rsp, +, 144]
call core::ptr::drop_in_place
jmp .LBB3241_46
.LBB3241_51:
.LBB3241_45:
mov rbx, rax
.LBB3241_46:
lea rdi, [rsp, +, 16]
call core::ptr::drop_in_place
.LBB3241_47:
mov rdi, rbx
call _Unwind_Resume
ud2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment