lkml.org 
[lkml]   [2005]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [patch 1/13] Qsort
    Date
    On 22 Jan 2005, at 22:00, vlobanov wrote:

    > Hi,
    >
    > I was just reading over the patch, and had a quick question/comment
    > upon
    > the SWAP macro defined below. I think it's possible to do a tiny bit
    > better (better, of course, being subjective), as follows:
    >
    > #define SWAP(a, b, size) \
    > do { \
    > register size_t __size = (size); \
    > register char * __a = (a), * __b = (b); \
    > do { \
    > *__a ^= *__b; \
    > *__b ^= *__a; \
    > *__a ^= *__b; \
    > __a++; \
    > __b++; \
    > } while ((--__size) > 0); \
    > } while (0)
    >
    > What do you think? :)

    AFAIK, XOR is quite expensive on IA32 when compared to simple MOV
    operatings. Also, since the original patch uses 3 MOVs to perform the
    swapping, and your version uses 3 XOR operations, I don't see any
    gains.

    Am I missing something?

    -
    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: 2005-03-22 14:09    [W:0.028 / U:209.188 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site