[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 05 May 2010 05:10:04 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Avi Kivity <avi@...hat.com>
CC: Suresh Siddha <suresh.b.siddha@...el.com>,
Brian Gerst <brgerst@...il.com>,
"Cui, Dexuan" <dexuan.cui@...el.com>,
Sheng Yang <sheng@...ux.intel.com>,
Ingo Molnar <mingo@...e.hu>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"kvm@...r.kernel.org" <kvm@...r.kernel.org>
Subject: Re: [PATCH 1/2] x86: eliminate TS_XSAVE
Your code is functionally equivalent to the immediate values patch; neither uses a direct branch which would be more efficient.
"Avi Kivity" <avi@...hat.com> wrote:
>On 05/04/2010 09:24 PM, H. Peter Anvin wrote:
>>
>> I would like to request one change, however. I would like to see the
>> alternatives code to be:
>>
>> movb $0,reg
>> movb $1,reg
>>
>> ... instead of using xor (which has to be padded with NOPs, which is of
>> course pointless since the slot is a fixed size.)
>
>Right.
>
>> I would suggest using
>> a byte-sized variable instead of a dword-size variable to save a few
>> bytes, too.
>>
>
>I used a bool, and the code already compiles to a byte mov. Though it
>could be argued that a word instruction is better since it avoids a
>false dependency, and allows a preceding instruction that modifies %reg
>to be executed after the mov instruction.
>
>> Once the jump label framework is integrated and has matured, I think we
>> should consider using it to save the mov/test/jump.
>>
>
>IIRC that has an implied unlikely() which isn't suitable here?
>
>Perhaps the immediate values patches.
>
>--
>error compiling committee.c: too many arguments to function
>
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
Powered by blists - more mailing lists