WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] linux/x86: convert 'cpu' (and a few other)variab

To: "Ian Jackson" <Ian.Jackson@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] linux/x86: convert 'cpu' (and a few other)variables to unsigned
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Fri, 18 Jan 2008 16:27:49 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 18 Jan 2008 08:27:43 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <18320.53497.157752.151108@xxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4790DC8F.76E4.0078.0@xxxxxxxxxx> <18320.53497.157752.151108@xxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> 18.01.08 17:16 >>>
>Jan Beulich writes ("[Xen-devel] [PATCH] linux/x86: convert 'cpu' (and a few 
>other) variables to unsigned"):
>> .. producing better code for x86-64.
>> 
>> As usual, written and tested on 2.6.24-rc7 and made apply to the 2.6.18
>> tree without further testing.
>
>In what way does this produce better code for x86-64 ?

When signed int is used as array index or in pointer arithmetic, the
compiler has to insert an explicit, unconditional sign extension
operation, whereas in many cases zero extension is implicit by
preceding operations or can be done with a 32-bit move (which
doesn't require a REX prefix and thus results in [statisitically] 
half a byte shorter instructions).

>Normally it's IMO best practice to avoid `unsigned' other than for
>bitfields, clock arithmetic, and the like, because the behaviour of
>unsigned in the presence of subtraction and comparision is often
>surprising.

I would disagree here, but it's certainly a personal thing what's
considered surprising.

Regardless of this personal aspect, the x86 Linux maintainers are
actively doing the same thing (or are respectively asking for it to
be done).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel