lkml.org 
[lkml]   [2007]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 0/24] make atomic_read() behave consistently across all architectures
    On Thu, Aug 16, 2007 at 08:50:30PM -0700, Linus Torvalds wrote:
    > Just try it yourself:
    >
    > volatile int i;
    > int j;
    >
    > int testme(void)
    > {
    > return i <= 1;
    > }
    >
    > int testme2(void)
    > {
    > return j <= 1;
    > }
    >
    > and compile with all the optimizations you can.
    >
    > I get:
    >
    > testme:
    > movl i(%rip), %eax
    > subl $1, %eax
    > setle %al
    > movzbl %al, %eax
    > ret
    >
    > vs
    >
    > testme2:
    > xorl %eax, %eax
    > cmpl $1, j(%rip)
    > setle %al
    > ret
    >
    > (now, whether that "xorl + setle" is better than "setle + movzbl", I don't
    > really know - maybe it is. But that's not thepoint. The point is the
    > difference between
    >
    > movl i(%rip), %eax
    > subl $1, %eax
    >
    > and
    >
    > cmpl $1, j(%rip)

    gcc bugzilla bug #33102, for whatever that ends up being worth. ;-)

    Thanx, Paul
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-18 02:01    [W:4.121 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site