Re: gcc-4.8+ and R10000+

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Disassembling a statically-built copy of the "sln" binary generated by
> glibc's compile phase, there are slight differences in how gcc-4.7 and
> gcc-4.8 are compiling the __lll_lock_wait_private function.  The key
> differences in the output asm are
> this:

[...]

> gcc-4.8:
>    x+4   <START>
>          ...
>    x+24  bne     v1,v0,<x+56>
>          ...
>    x+32  0x7c03e83b /* rdhwr */
>    x+36  li      a2,2
>    x+40  lw      a1,-29832(v1)
>    x+44  move    a3,zero
>    x+48  li      v0,4238
>    x+52  syscall
> *  x+56  ll      v0,0(s0)
> *  x+60  li      at,2
> *  x+64  sc      at,0

Note how the sc address is no longer 0(s0). Since the address does
not match the address used in the ll instruction, sc will always
fail on the R10k.

Miod



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux