https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108552
--- Comment #13 from Uroš Bizjak <ubizjak at gmail dot com> ---
-fverbose-asm annotated assembly:
prep_compound_page:
pushl %ebp #
movl %esp, %ebp #,
pushl %edi #
movl %eax, %edi # tmp356, page
pushl %esi #
pushl %ebx #
subl $20, %esp #,
cmpl $31, %edx #, order
movl %edx, -28(%ebp) # order, %sfp
ja .L1483 #,
.L1464:
movzbl -28(%ebp), %ecx # %sfp, tmp365
movl $1, %ebx #, tmp182
sall %cl, %ebx # tmp365, nr_pages
cmpl $-1, (%edi) #, MEM[(const struct page *)page_12(D)].flags
je .L1486 #,
addl $1, __gcov0.prep_compound_page+16 #,
__gcov0.prep_compound_page[2]
adcl $0, __gcov0.prep_compound_page+20 #,
__gcov0.prep_compound_page[2]
#APP
# 68 "./arch/x86/include/asm/bitops.h" 1
btsl $16,(%edi) #, MEM[(volatile long int *)_19]
# 0 "" 2
#NO_APP
addl $1, __gcov0.prep_compound_page+48 #,
__gcov0.prep_compound_page[6]
adcl $0, __gcov0.prep_compound_page+52 #,
__gcov0.prep_compound_page[6]
cmpl $1, %ebx #, nr_pages
jle .L1470 #,
leal 1(%edi), %eax #, _159
movl __gcov0.prep_compound_page+60, %edx #
__gcov0.prep_compound_page[7], ivtmp.1714
movl %eax, -24(%ebp) # _159, %sfp
movl __gcov0.prep_compound_page+56, %eax #
__gcov0.prep_compound_page[7], ivtmp.1714
leal 40(%edi), %ecx #, ivtmp.1720
movl %edi, -32(%ebp) # page, %sfp
addl $1, %eax #, ivtmp.1714
movl %eax, -20(%ebp) # ivtmp.1714, %sfp
adcl $0, %edx #, ivtmp.1714
movl __gcov0.prep_compound_page+56, %eax #
__gcov0.prep_compound_page[7], tmp228
movl %edx, -16(%ebp) # ivtmp.1714, %sfp
movl __gcov0.prep_compound_page+60, %edx #
__gcov0.prep_compound_page[7],
subl $2, %ebx #, tmp226
xorl %esi, %esi #
addl $2, %eax #, tmp228
adcl $0, %edx #,
addl %eax, %ebx # tmp228, tmp227
movl -20(%ebp), %eax # %sfp, ivtmp.1714
adcl %edx, %esi #,
movl -16(%ebp), %edx # %sfp, ivtmp.1714
movl %esi, %edi # _45, _45
movl %ebx, %esi # _45, _45
.p2align 4
.p2align 3
.L1469:
movl %eax, __gcov0.prep_compound_page+56 # ivtmp.1714,
__gcov0.prep_compound_page[7]
movl -24(%ebp), %ebx # %sfp, _159
addl $1, %eax #, ivtmp.1714
movl %edx, __gcov0.prep_compound_page+60 # ivtmp.1714,
__gcov0.prep_compound_page[7]
adcl $0, %edx #, ivtmp.1714
addl $40, %ecx #, ivtmp.1720
movl $1024, -28(%ecx) #, MEM <struct address_space *> [(union
*)p_15 + 12B]
movl %ebx, -36(%ecx) # _159, MEM[(volatile long unsigned int *)p_15
+ 4B]
movl %edi, %ebx # _45, tmp230
xorl %edx, %ebx # ivtmp.1714, tmp230
movl %ebx, -20(%ebp) # tmp230, %sfp
movl %esi, %ebx # _45, tmp231
xorl %eax, %ebx # ivtmp.1714, tmp231
orl -20(%ebp), %ebx # %sfp, tmp358
jne .L1469 #,
movl -32(%ebp), %edi # %sfp, page
.L1470:
movb $1, 48(%edi) #, MEM[(struct page *)page_12(D) +
40B].D.13727.D.13705.compound_dtor
...