[Nouveau] [Bug 71116] [any/all(?) cards below nv50(?)] libdrm built with gcc4.8 causes crashes/lockups during normal operation, and resume from disk/memory

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Nov 7 12:57:53 CET 2013


https://bugs.freedesktop.org/show_bug.cgi?id=71116

--- Comment #22 from Maarten Lankhorst <bugs at mblankhorst.nl> ---
Oops, so gcc is broken here after all, look at this..

0000000000003860 <nouveau_pushbuf_reloc>:
    3860:       53                      push   %rbx
    3861:       48 8b 5f 30             mov    0x30(%rdi),%rbx
    3865:       48 8d 43 04             lea    0x4(%rbx),%rax
    3869:       48 89 47 30             mov    %rax,0x30(%rdi)
    386d:       e8 3e ea ff ff          callq  22b0 <pushbuf_krel>
    3872:       89 03                   mov    %eax,(%rbx)
    3874:       5b                      pop    %rbx
    3875:       c3                      retq   

Source:

void
nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo,
              uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor)
{
    *push->cur++ = pushbuf_krel(push, bo, data, flags, vor, tor);
}

gcc-4.8 evaluates it as:

void
nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo,
              uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor)
{
    push->cur++;
    *push->cur[-1] = pushbuf_krel(push, bo, data, flags, vor, tor);
}

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20131107/6374f133/attachment.html>


More information about the Nouveau mailing list