Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261168AbVAWCEb (ORCPT ); Sat, 22 Jan 2005 21:04:31 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261185AbVAWCEb (ORCPT ); Sat, 22 Jan 2005 21:04:31 -0500 Received: from smtpout.mac.com ([17.250.248.88]:4849 "EHLO smtpout.mac.com") by vger.kernel.org with ESMTP id S261168AbVAWCE3 (ORCPT ); Sat, 22 Jan 2005 21:04:29 -0500 In-Reply-To: References: <20050122203326.402087000@blunzn.suse.de> <20050122203618.962749000@blunzn.suse.de> Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit Cc: Trond Myklebust , linux-kernel@vger.kernel.org, Buck Huppmann , Neil Brown , Andreas Gruenbacher , "Andries E. Brouwer" , Andrew Morton , Olaf Kirch From: Felipe Alfaro Solana Subject: Re: [patch 1/13] Qsort Date: Sun, 23 Jan 2005 03:03:32 +0100 To: vlobanov X-Mailer: Apple Mail (2.619) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1079 Lines: 36 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/