http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49016

--- Comment #3 from Lee Merrill <merrill_707_1 at yahoo dot com> 2011-05-16 
22:51:33 UTC ---
A disassembly snippet to show the problem:

0000000000000000 <fcPostWrite>:
   0:   55                      push   %rbp
   1:   48 89 e5                mov    %rsp,%rbp
# Note that these statements reference memory below the
#   current stack pointer. So any interrupt which occurs
#   here will corrupt these variables.
   4:   48 89 7d e8             mov    %rdi,-0x18(%rbp)
   8:   89 75 e4                mov    %esi,-0x1c(%rbp)
   b:   8b 45 e4                mov    -0x1c(%rbp),%eax
   e:   89 45 fc                mov    %eax,-0x4(%rbp)
  11:   48 8b 45 e8             mov    -0x18(%rbp),%rax
  15:   48 89 45 f0             mov    %rax,-0x10(%rbp)
  19:   48 8b 55 f0             mov    -0x10(%rbp),%rdx
  1d:   8b 45 fc                mov    -0x4(%rbp),%eax
  20:   89 02                   mov    %eax,(%rdx)
  22:   c9                      leaveq
  23:   c3                      retq

Reply via email to