On 07/04/2013 11:07 AM, dw wrote: > Hey Andrew, thanks for the response. > > > main: > > .LFB1: > > leaq -32(%rsp), %rdi > > movl $32, %ecx > > xorl %eax, %eax > > #APP > > # 2 "z.c" 1 > > rep stosb > > # 0 "" 2 > > # 2 "z.c" 1 > > rep stosb > > # 0 "" 2 > > #NO_APP > > xorl %eax, %eax > > ret > > Interesting. So, you are getting the duplicate zeroing of eax, but not > the duplicate loading of rdi. That's certainly an improvement. > > I'm using 4.8.0. You? If this is something that was improved in 4.8.1, > perhaps it's time for me to upgrade. Ah, I'm on 4.7. So this might be a regression: we should check. > Any special compile switches other than -Os? No. > > By the way, your asm is wrong: stosb modifies its registers, and you > > must tell GCC that. > > I'll assume this was intended to be humorous. Absolutely not. This is critical. Andrew.