found 452431 4.7.0-8
reassign 452431 src:gcc-4.7
stop
Hello,
I can still reproduce it with gcc-4.7 (the first part, not the
jl/jle), so reassigning.
Cheers.
$ cat test.cpp
#define PTS_MASK ((1LL << 33)-1)
#define PTS_WRAP (1LL << 33)
#define PTS_WRAP2 (1LL << 32)
long long ptsdiff_mod2_33(long long a, long long b) {
long long d = (b + PTS_WRAP - a) & PTS_MASK;
return (d >= PTS_WRAP2) ? d - PTS_WRAP : d;
}
$ g++ -S -m32 test.cpp
$ cat test.s
.file "test.cpp"
.text
.globl _Z15ptsdiff_mod2_33xx
.type _Z15ptsdiff_mod2_33xx, @function
_Z15ptsdiff_mod2_33xx:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $32, %esp
movl 8(%ebp), %eax
movl %eax, -24(%ebp)
movl 12(%ebp), %eax
movl %eax, -20(%ebp)
movl 16(%ebp), %eax
movl %eax, -32(%ebp)
movl 20(%ebp), %eax
movl %eax, -28(%ebp)
movl -32(%ebp), %eax
movl -28(%ebp), %edx
addl $0, %eax
adcl $2, %edx
subl -24(%ebp), %eax
sbbl -20(%ebp), %edx
movl %eax, %ecx
andb $255, %ch
movl %ecx, -8(%ebp)
movl %edx, %eax
andl $1, %eax
movl %eax, -4(%ebp)
cmpl $0, -4(%ebp)
jle .L2
movl -8(%ebp), %eax
movl -4(%ebp), %edx
addl $0, %eax
adcl $-2, %edx
jmp .L3
.L2:
movl -8(%ebp), %eax
movl -4(%ebp), %edx
.L3:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE0:
.size _Z15ptsdiff_mod2_33xx, .-_Z15ptsdiff_mod2_33xx
.ident "GCC: (Debian 4.7.0-8) 4.7.0"
.section .note.GNU-stack,"",@progbits
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]