__asm(R"(
.file "sort2.cpp"
.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
leaq -1(%rdx), %rax
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rdx, %rbp
pushq %rbx
.cfi_def_cfa_offset 24
.cfi_offset 3, -24
movq %rax, %rbx
andl $1, %ebp
shrq $63, %rbx
addq %rax, %rbx
sarq %rbx
cmpq %rbx, %rsi
jge .L2
movq %rsi, %r10
jmp .L3
.p2align 4,,10
.p2align 3
.L20:
subq $1, %r8
leaq (%rdi,%r8,4), %r9
movl (%r9), %eax
movl %eax, (%rdi,%r10,4)
cmpq %r8, %rbx
jle .L5
.L6:
movq %r8, %r10
.L3:
leaq 1(%r10), %rax
leaq (%rax,%rax), %r8
salq $3, %rax
leaq (%rdi,%rax), %r9
movl (%r9), %r11d
cmpl %r11d, -4(%rdi,%rax)
ja .L20
movl %r11d, (%rdi,%r10,4)
cmpq %r8, %rbx
jg .L6
.L5:
testq %rbp, %rbp
je .L12
.L7:
leaq -1(%r8), %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rax, %rdx
sarq %rdx
cmpq %rsi, %r8
jle .L9
movl (%rdi,%rdx,4), %r10d
cmpl %r10d, %ecx
ja .L10
jmp .L9
.p2align 4,,10
.p2align 3
.L11:
movl (%rdi,%rax,4), %r10d
movq %rdx, %r8
movq %rax, %rdx
cmpl %r10d, %ecx
jbe .L9
.L10:
movl %r10d, (%rdi,%r8,4)
leaq -1(%rdx), %r8
leaq (%rdi,%rdx,4), %r9
movq %r8, %rax
shrq $63, %rax
addq %r8, %rax
sarq %rax
cmpq %rdx, %rsi
jl .L11
.L9:
movl %ecx, (%r9)
popq %rbx
.cfi_remember_state
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L13:
.cfi_restore_state
movq %rsi, %r8
.p2align 4,,10
.p2align 3
.L12:
leaq -2(%rdx), %rax
movq %rax, %rdx
shrq $63, %rdx
addq %rax, %rdx
sarq %rdx
cmpq %r8, %rdx
je .L8
leaq (%rdi,%r8,4), %r9
jmp .L7
.p2align 4,,10
.p2align 3
.L8:
leaq 2(%r8,%r8), %rax
movl -4(%rdi,%rax,4), %edx
movl %edx, (%rdi,%r8,4)
leaq -1(%rax), %r8
leaq (%rdi,%r8,4), %r9
jmp .L7
.p2align 4,,10
.p2align 3
.L2:
testq %rbp, %rbp
je .L13
leaq (%rdi,%rsi,4), %r9
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
movq %rsi, %rax
subq %rdi, %rax
cmpq $64, %rax
jle .L49
pushq %r14
.cfi_def_cfa_offset 16
.cfi_offset 14, -16
movq %rdx, %r14
pushq %r13
.cfi_def_cfa_offset 24
.cfi_offset 13, -24
movq %rdi, %r13
pushq %r12
.cfi_def_cfa_offset 32
.cfi_offset 12, -32
pushq %rbp
.cfi_def_cfa_offset 40
.cfi_offset 6, -40
leaq 4(%rdi), %rbp
pushq %rbx
.cfi_def_cfa_offset 48
.cfi_offset 3, -48
testq %rdx, %rdx
je .L54
.L25:
sarq $3, %rax
movl 4(%r13), %ecx
subq $1, %r14
movl -4(%rsi), %edi
leaq 0(%r13,%rax,4), %r8
movl 0(%r13), %edx
movl (%r8), %eax
cmpl %eax, %ecx
jnb .L28
cmpl %edi, %eax
jb .L34
cmpl %edi, %ecx
jb .L52
.L53:
movl %ecx, 0(%r13)
movl %edx, 4(%r13)
movl -4(%rsi), %edx
.L30:
movq %rbp, %rbx
movq %rsi, %rax
.p2align 4,,10
.p2align 3
.L33:
movl (%rbx), %edi
movq %rbx, %r12
cmpl %ecx, %edi
jb .L35
subq $4, %rax
cmpl %edx, %ecx
jnb .L36
.p2align 4,,10
.p2align 3
.L37:
subq $4, %rax
movl (%rax), %edx
cmpl %ecx, %edx
ja .L37
.L36:
cmpq %rax, %rbx
jnb .L55
movl %edx, (%rbx)
movl -4(%rax), %edx
movl %edi, (%rax)
movl 0(%r13), %ecx
.L35:
addq $4, %rbx
jmp .L33
.p2align 4,,10
.p2align 3
.L28:
cmpl %edi, %ecx
jb .L53
cmpl %edi, %eax
jnb .L34
.L52:
movl %edi, 0(%r13)
movl %edx, -4(%rsi)
movl 0(%r13), %ecx
jmp .L30
.p2align 4,,10
.p2align 3
.L55:
movq %r14, %rdx
movq %rbx, %rdi
call _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16
movq %rbx, %rax
subq %r13, %rax
cmpq $64, %rax
jle .L47
movq %rbx, %rsi
testq %r14, %r14
jne .L25
.L23:
sarq $2, %rax
leaq -2(%rax), %rbp
movq %rax, %rbx
sarq %rbp
jmp .L27
.p2align 4,,10
.p2align 3
.L56:
subq $1, %rbp
.L27:
subq $8, %rsp
.cfi_def_cfa_offset 56
movl 0(%r13,%rbp,4), %ecx
movq %rbp, %rsi
movq %rbx, %rdx
pushq $0
.cfi_def_cfa_offset 64
movq %r13, %rdi
call _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
popq %rcx
.cfi_def_cfa_offset 56
popq %rsi
.cfi_def_cfa_offset 48
testq %rbp, %rbp
jne .L56
.p2align 4,,10
.p2align 3
.L26:
movl 0(%r13), %eax
subq $4, %r12
subq $8, %rsp
.cfi_def_cfa_offset 56
movl (%r12), %ecx
movq %r12, %rbx
xorl %esi, %esi
movq %r13, %rdi
movl %eax, (%r12)
subq %r13, %rbx
pushq $0
.cfi_def_cfa_offset 64
movq %rbx, %rdx
sarq $2, %rdx
call _ZSt13__adjust_heapIPjljN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_
popq %rax
.cfi_def_cfa_offset 56
popq %rdx
.cfi_def_cfa_offset 48
cmpq $4, %rbx
jg .L26
.L47:
popq %rbx
.cfi_remember_state
.cfi_def_cfa_offset 40
popq %rbp
.cfi_def_cfa_offset 32
popq %r12
.cfi_def_cfa_offset 24
popq %r13
.cfi_def_cfa_offset 16
popq %r14
.cfi_def_cfa_offset 8
ret
.L34:
.cfi_restore_state
movl %eax, 0(%r13)
movl %edx, (%r8)
movl 0(%r13), %ecx
movl -4(%rsi), %edx
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
movq %rsi, %r12
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
pushq %r15
.cfi_def_cfa_offset 16
.cfi_offset 15, -16
pushq %r14
.cfi_def_cfa_offset 24
.cfi_offset 14, -24
pushq %r13
.cfi_def_cfa_offset 32
.cfi_offset 13, -32
movslq %esi, %r13
pushq %r12
.cfi_def_cfa_offset 40
.cfi_offset 12, -40
salq $2, %r13
pushq %rbp
.cfi_def_cfa_offset 48
.cfi_offset 6, -48
leaq (%rdi,%r13), %r12
pushq %rbx
.cfi_def_cfa_offset 56
.cfi_offset 3, -56
subq $8, %rsp
.cfi_def_cfa_offset 64
cmpq %rdi, %r12
je .L83
movq %r13, %rdx
movq %rdi, %rbp
movq %r12, %rsi
sarq $2, %rdx
leaq 4(%rbp), %r14
bsrq %rdx, %rdx
movq %r14, %rbx
addq %rdx, %rdx
call _ZSt16__introsort_loopIPjlN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_.isra.16
cmpq $64, %r13
jle .L59
leaq 64(%rbp), %r15
jmp .L60
.p2align 4,,10
.p2align 3
.L87:
cmpq %rbp, %rbx
je .L63
movq %rbx, %rdx
movq %r14, %rdi
movq %rbp, %rsi
subq %rbp, %rdx
call memmove@PLT
.L63:
addq $4, %rbx
movl %r13d, 0(%rbp)
cmpq %rbx, %r15
je .L86
.L60:
movl (%rbx), %r13d
cmpl 0(%rbp), %r13d
jb .L87
movl -4(%rbx), %edx
leaq -4(%rbx), %rax
cmpl %edx, %r13d
jb .L66
jmp .L88
.p2align 4,,10
.p2align 3
.L77:
movq %rcx, %rax
.L66:
movl %edx, 4(%rax)
movl -4(%rax), %edx
leaq -4(%rax), %rcx
cmpl %edx, %r13d
jb .L77
.L65:
addq $4, %rbx
movl %r13d, (%rax)
cmpq %rbx, %r15
jne .L60
.L86:
cmpq %rbx, %r12
je .L83
.p2align 4,,10
.p2align 3
.L61:
movl (%rbx), %esi
movl -4(%rbx), %edx
leaq -4(%rbx), %rax
cmpl %edx, %esi
jb .L69
jmp .L89
.p2align 4,,10
.p2align 3
.L79:
movq %rcx, %rax
.L69:
movl %edx, 4(%rax)
movl -4(%rax), %edx
leaq -4(%rax), %rcx
cmpl %edx, %esi
jb .L79
movl %esi, (%rax)
addq $4, %rbx
.L92:
cmpq %rbx, %r12
jne .L61
.L83:
addq $8, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 56
popq %rbx
.cfi_def_cfa_offset 48
popq %rbp
.cfi_def_cfa_offset 40
popq %r12
.cfi_def_cfa_offset 32
popq %r13
.cfi_def_cfa_offset 24
popq %r14
.cfi_def_cfa_offset 16
popq %r15
.cfi_def_cfa_offset 8
ret
.p2align 4,,10
.p2align 3
.L59:
.cfi_restore_state
cmpq %r14, %r12
je .L83
movl (%rbx), %r13d
cmpl 0(%rbp), %r13d
jnb .L70
.p2align 4,,10
.p2align 3
.L90:
cmpq %rbp, %rbx
je .L71
movq %rbx, %rdx
movq %r14, %rdi
movq %rbp, %rsi
subq %rbp, %rdx
call memmove@PLT
.L71:
movl %r13d, 0(%rbp)
.L72:
addq $4, %rbx
cmpq %rbx, %r12
je .L83
movl (%rbx), %r13d
cmpl 0(%rbp), %r13d
jb .L90
.L70:
movl -4(%rbx), %edx
leaq -4(%rbx), %rax
cmpl %edx, %r13d
jb .L74
jmp .L91
.p2align 4,,10
.p2align 3
.L81:
movq %rcx, %rax
.L74:
movl %edx, 4(%rax)
movl -4(%rax), %edx
leaq -4(%rax), %rcx
cmpl %edx, %r13d
jb .L81
.L73:
movl %r13d, (%rax)
jmp .L72
.p2align 4,,10
.p2align 3
.L89:
movq %rbx, %rax
addq $4, %rbx
movl %esi, (%rax)
jmp .L92
.L88:
movq %rbx, %rax
jmp .L65
.L91:
movq %rbx, %rax
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 | 453.35 us | 48 KB | Accepted | Score: 100 | 显示更多 |