[Bug c++/60747] the tree-vrp compilation flag produce wrong assembly
techsgin at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Apr 3 14:46:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60747
--- Comment #3 from tech <techsgin at gmail dot com> ---
Created attachment 32534
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32534&action=edit
Assembly of O2 WITH tree-vrp
Assembly of O2 WITH tree-vrp
.file "main.cpp"
.text
.p2align 4,,15
.globl _Z7hash_itPKci
.type _Z7hash_itPKci, @function
_Z7hash_itPKci:
.LFB26:
.cfi_startproc
.cfi_personality 0x3,__gxx_personality_v0
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movl %esi, %ebp
pushq %rbx
.cfi_def_cfa_offset 24
.cfi_offset 3, -24
movq %rdi, %rbx
subq $8, %rsp
.cfi_def_cfa_offset 32
call strlen
cmpl $0, %eax
movl %eax, %edx
jle .L2
leaq 1(%rbx), %rcx
leal -1(%rax), %esi
leaq (%rcx,%rsi), %rsi
jmp .L3
.p2align 4,,10
.p2align 3
.L11:
addq $1, %rcx
.L3:
movsbl (%rbx), %ebx
imull $777, %edx, %edx
addl %ebx, %edx
cmpq %rsi, %rcx
movq %rcx, %rbx
jne .L11
.L9:
movl %edx, %eax
sarl $31, %edx
addq $8, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 24
idivl %ebp
popq %rbx
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
movl %edx, %eax
ret
.L2:
.cfi_restore_state
jge .L12
negl %edx
addq $8, %rsp
.cfi_remember_state
.cfi_def_cfa_offset 24
movl %edx, %eax
sarl $31, %edx
idivl %ebp
popq %rbx
.cfi_def_cfa_offset 16
popq %rbp
.cfi_def_cfa_offset 8
movl %edx, %eax
ret
.L12:
.cfi_restore_state
movl %eax, %edx
jmp .L9
.cfi_endproc
.LFE26:
.size _Z7hash_itPKci, .-_Z7hash_itPKci
More information about the Gcc-bugs
mailing list