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 received this bug notification because you are a member of Ubuntu-X, which is subscribed to libdrm in Ubuntu. https://bugs.launchpad.net/bugs/1247607 Title: Libdrm compiled with gcc 4.8 makes card hang on resume from s2disk To manage notifications about this bug go to: https://bugs.launchpad.net/gcc/+bug/1247607/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~ubuntu-x-swat Post to : ubuntu-x-swat@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-x-swat More help : https://help.launchpad.net/ListHelp