On 02/22/2010 06:17 AM, Borislav Petkov wrote: > > +config ARCH_HWEIGHT_CFLAGS > + string > + default "-fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" if X86_64 > + [...] > + > +#ifdef CONFIG_64BIT > +/* popcnt %rdi, %rax */ > +#define POPCNT ".byte 0xf3\n\t.byte 0x48\n\t.byte 0x0f\n\t.byte 0xb8\n\t.byte 0xc7" > +#define REG_IN "D" > +#define REG_OUT "a" > +#else Just a note: this still means rdi is clobbered on x86-64, which is probably fine, but needs to be recorded as such. Since gcc doesn't support clobbers for registers used as operands (sigh), you have to create a dummy output and assign it a "=D" constraint. I don't know if gcc would handle -fcall-saved-rdi here... and if so, how reliably. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html