Your code is functionally equivalent to the immediate values patch; neither uses a direct branch which would be more efficient. "Avi Kivity" <avi@xxxxxxxxxx> 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.