__asm(R"(
.file "sort2.cpp"
.intel_syntax noprefix
.text
.section .text._ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_,"axG",@progbits,_ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_,comdat
.p2align 4,,15
.weak _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
.type _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_, @function
_ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_:
.LFB920:
.cfi_startproc
lea rax, -1[rdx]
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rdx
push rbx
.cfi_def_cfa_offset 24
.cfi_offset 3, -24
mov rbx, rax
and ebp, 1
shr rbx, 63
add rbx, rax
sar rbx
cmp rsi, rbx
jge .L2
mov r10, rsi
jmp .L3
.p2align 4,,10
.p2align 3
.L20:
sub r8, 1
lea r9, [rdi+r8*4]
mov eax, DWORD PTR [r9]
mov DWORD PTR [rdi+r10*4], eax
cmp rbx, r8
jle .L5
.L6:
mov r10, r8
.L3:
lea rax, 1[r10]
lea r8, [rax+rax]
sal rax, 3
lea r9, [rdi+rax]
mov r11d, DWORD PTR [r9]
cmp DWORD PTR -4[rdi+rax], r11d
ja .L20
mov DWORD PTR [rdi+r10*4], r11d
cmp rbx, r8
jg .L6
.L5:
test rbp, rbp
je .L12
.L7:
lea rax, -1[r8]
mov rdx, rax
shr rdx, 63
add rdx, rax
sar rdx
cmp r8, rsi
jle .L9
mov r10d, DWORD PTR [rdi+rdx*4]
cmp ecx, r10d
ja .L10
jmp .L9
.p2align 4,,10
.p2align 3
.L11:
mov r10d, DWORD PTR [rdi+rax*4]
mov r8, rdx
mov rdx, rax
cmp ecx, r10d
jbe .L9
.L10:
mov DWORD PTR [rdi+r8*4], r10d
lea r8, -1[rdx]
lea r9, [rdi+rdx*4]
mov rax, r8
shr rax, 63
add rax, r8
sar rax
cmp rsi, rdx
jl .L11
.L9:
mov DWORD PTR [r9], ecx
pop rbx
.cfi_remember_state
.cfi_def_cfa_offset 16
pop rbp
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L13:
.cfi_restore_state
mov r8, rsi
.p2align 4,,10
.p2align 3
.L12:
lea rax, -2[rdx]
mov rdx, rax
shr rdx, 63
add rdx, rax
sar rdx
cmp rdx, r8
je .L8
lea r9, [rdi+r8*4]
jmp .L7
.p2align 4,,10
.p2align 3
.L8:
lea rax, 2[r8+r8]
mov edx, DWORD PTR -4[rdi+rax*4]
mov DWORD PTR [rdi+r8*4], edx
lea r8, -1[rax]
lea r9, [rdi+r8*4]
jmp .L7
.p2align 4,,10
.p2align 3
.L2:
test rbp, rbp
je .L13
lea r9, [rdi+rsi*4]
jmp .L9
.cfi_endproc
.LFE920:
.size _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_, .-_ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
.text
.p2align 4,,15
.type _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16, @function
_ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16:
.LFB944:
.cfi_startproc
mov rax, rsi
sub rax, rdi
cmp rax, 64
jle .L49
push r14
.cfi_def_cfa_offset 16
.cfi_offset 14, -16
mov r14, rdx
push r13
.cfi_def_cfa_offset 24
.cfi_offset 13, -24
mov r13, rdi
push r12
.cfi_def_cfa_offset 32
.cfi_offset 12, -32
push rbp
.cfi_def_cfa_offset 40
.cfi_offset 6, -40
lea rbp, 4[rdi]
push rbx
.cfi_def_cfa_offset 48
.cfi_offset 3, -48
test rdx, rdx
je .L54
.L25:
sar rax, 3
mov ecx, DWORD PTR 4[r13]
sub r14, 1
mov edi, DWORD PTR -4[rsi]
lea r8, 0[r13+rax*4]
mov edx, DWORD PTR 0[r13]
mov eax, DWORD PTR [r8]
cmp ecx, eax
jnb .L28
cmp eax, edi
jb .L34
cmp ecx, edi
jb .L52
.L53:
mov DWORD PTR 0[r13], ecx
mov DWORD PTR 4[r13], edx
mov edx, DWORD PTR -4[rsi]
.L30:
mov rbx, rbp
mov rax, rsi
.p2align 4,,10
.p2align 3
.L33:
mov edi, DWORD PTR [rbx]
mov r12, rbx
cmp edi, ecx
jb .L35
sub rax, 4
cmp ecx, edx
jnb .L36
.p2align 4,,10
.p2align 3
.L37:
sub rax, 4
mov edx, DWORD PTR [rax]
cmp edx, ecx
ja .L37
.L36:
cmp rbx, rax
jnb .L55
mov DWORD PTR [rbx], edx
mov edx, DWORD PTR -4[rax]
mov DWORD PTR [rax], edi
mov ecx, DWORD PTR 0[r13]
.L35:
add rbx, 4
jmp .L33
.p2align 4,,10
.p2align 3
.L28:
cmp ecx, edi
jb .L53
cmp eax, edi
jnb .L34
.L52:
mov DWORD PTR 0[r13], edi
mov DWORD PTR -4[rsi], edx
mov ecx, DWORD PTR 0[r13]
jmp .L30
.p2align 4,,10
.p2align 3
.L55:
mov rdx, r14
mov rdi, rbx
call _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16
mov rax, rbx
sub rax, r13
cmp rax, 64
jle .L47
mov rsi, rbx
test r14, r14
jne .L25
.L23:
sar rax, 2
lea rbp, -2[rax]
mov rbx, rax
sar rbp
jmp .L27
.p2align 4,,10
.p2align 3
.L56:
sub rbp, 1
.L27:
sub rsp, 8
.cfi_def_cfa_offset 56
mov ecx, DWORD PTR 0[r13+rbp*4]
mov rsi, rbp
mov rdx, rbx
push 0
.cfi_def_cfa_offset 64
mov rdi, r13
call _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
pop rcx
.cfi_def_cfa_offset 56
pop rsi
.cfi_def_cfa_offset 48
test rbp, rbp
jne .L56
.p2align 4,,10
.p2align 3
.L26:
mov eax, DWORD PTR 0[r13]
sub r12, 4
sub rsp, 8
.cfi_def_cfa_offset 56
mov ecx, DWORD PTR [r12]
mov rbx, r12
xor esi, esi
mov rdi, r13
mov DWORD PTR [r12], eax
sub rbx, r13
push 0
.cfi_def_cfa_offset 64
mov rdx, rbx
sar rdx, 2
call _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
pop rax
.cfi_def_cfa_offset 56
pop rdx
.cfi_def_cfa_offset 48
cmp rbx, 4
jg .L26
.L47:
pop rbx
.cfi_remember_state
.cfi_def_cfa_offset 40
pop rbp
.cfi_def_cfa_offset 32
pop r12
.cfi_def_cfa_offset 24
pop r13
.cfi_def_cfa_offset 16
pop r14
.cfi_def_cfa_offset 8
ret
.L34:
.cfi_restore_state
mov DWORD PTR 0[r13], eax
mov DWORD PTR [r8], edx
mov ecx, DWORD PTR 0[r13]
mov edx, DWORD PTR -4[rsi]
jmp .L30
.L49:
.cfi_def_cfa_offset 8
.cfi_restore 3
.cfi_restore 6
.cfi_restore 12
.cfi_restore 13
.cfi_restore 14
ret
.L54:
.cfi_def_cfa_offset 48
.cfi_offset 3, -48
.cfi_offset 6, -40
.cfi_offset 12, -32
.cfi_offset 13, -24
.cfi_offset 14, -16
mov r12, rsi
jmp .L23
.cfi_endproc
.LFE944:
.size _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16, .-_ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16
.p2align 4,,15
.globl _Z4sortPji
.type _Z4sortPji, @function
_Z4sortPji:
.LFB897:
.cfi_startproc
push r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
push r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
push r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
movsx r13, esi
push r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
sal r13, 2
push rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
lea r12, [rdi+r13]
push rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
sub rsp, 8
.cfi_def_cfa_offset 64
cmp r12, rdi
je .L83
mov rdx, r13
mov rbp, rdi
mov rsi, r12
sar rdx, 2
lea r14, 4[rbp]
bsr rdx, rdx
mov rbx, r14
add rdx, rdx
call _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16
cmp r13, 64
jle .L59
lea r15, 64[rbp]
jmp .L60
.p2align 4,,10
.p2align 3
.L87:
cmp rbx, rbp
je .L63
mov rdx, rbx
mov rdi, r14
mov rsi, rbp
sub rdx, rbp
call memmove@PLT
.L63:
add rbx, 4
mov DWORD PTR 0[rbp], r13d
cmp r15, rbx
je .L86
.L60:
mov r13d, DWORD PTR [rbx]
cmp r13d, DWORD PTR 0[rbp]
jb .L87
mov edx, DWORD PTR -4[rbx]
lea rax, -4[rbx]
cmp r13d, edx
jb .L66
jmp .L88
.p2align 4,,10
.p2align 3
.L77:
mov rax, rcx
.L66:
mov DWORD PTR 4[rax], edx
mov edx, DWORD PTR -4[rax]
lea rcx, -4[rax]
cmp r13d, edx
jb .L77
.L65:
add rbx, 4
mov DWORD PTR [rax], r13d
cmp r15, rbx
jne .L60
.L86:
cmp r12, rbx
je .L83
.p2align 4,,10
.p2align 3
.L61:
mov esi, DWORD PTR [rbx]
mov edx, DWORD PTR -4[rbx]
lea rax, -4[rbx]
cmp esi, edx
jb .L69
jmp .L89
.p2align 4,,10
.p2align 3
.L79:
mov rax, rcx
.L69:
mov DWORD PTR 4[rax], edx
mov edx, DWORD PTR -4[rax]
lea rcx, -4[rax]
cmp esi, edx
jb .L79
mov DWORD PTR [rax], esi
add rbx, 4
.L92:
cmp r12, rbx
jne .L61
.L83:
add rsp, 8
.cfi_remember_state
.cfi_def_cfa_offset 56
pop rbx
.cfi_def_cfa_offset 48
pop rbp
.cfi_def_cfa_offset 40
pop r12
.cfi_def_cfa_offset 32
pop r13
.cfi_def_cfa_offset 24
pop r14
.cfi_def_cfa_offset 16
pop r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L59:
.cfi_restore_state
cmp r12, r14
je .L83
mov r13d, DWORD PTR [rbx]
cmp r13d, DWORD PTR 0[rbp]
jnb .L70
.p2align 4,,10
.p2align 3
.L90:
cmp rbx, rbp
je .L71
mov rdx, rbx
mov rdi, r14
mov rsi, rbp
sub rdx, rbp
call memmove@PLT
.L71:
mov DWORD PTR 0[rbp], r13d
.L72:
add rbx, 4
cmp r12, rbx
je .L83
mov r13d, DWORD PTR [rbx]
cmp r13d, DWORD PTR 0[rbp]
jb .L90
.L70:
mov edx, DWORD PTR -4[rbx]
lea rax, -4[rbx]
cmp r13d, edx
jb .L74
jmp .L91
.p2align 4,,10
.p2align 3
.L81:
mov rax, rcx
.L74:
mov DWORD PTR 4[rax], edx
mov edx, DWORD PTR -4[rax]
lea rcx, -4[rax]
cmp r13d, edx
jb .L81
.L73:
mov DWORD PTR [rax], r13d
jmp .L72
.p2align 4,,10
.p2align 3
.L89:
mov rax, rbx
add rbx, 4
mov DWORD PTR [rax], esi
jmp .L92
.L88:
mov rax, rbx
jmp .L65
.L91:
mov rax, rbx
jmp .L73
.cfi_endproc
.LFE897:
.size _Z4sortPji, .-_Z4sortPji
.ident "GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0"
.section .note.GNU-stack,"",@progbits
)");
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 450.19 us | 48 KB | Accepted | Score: 100 | 显示更多 |