On Mon, May 20, 2019 at 11:52 AM Uros Bizjak <ubiz...@gmail.com> wrote:
> How about the attached patch that enables zeroing only for 32bit > processors, and only for cpuid leaf 1? Usually, __get_cpuid is used > with a constant leaf argument, so we benefit from constant propagation > into inline function. Also, according to the confusing documentation, > it looks to me that zeroing %ecx and %edx regs should be enough. Uros, you said "zeroing %ecx and %edx regs should be enough". That confuses me. The older documentation says that for %eax = 1 it is guaranteed to return a value in %eax and %edx, with %ebx and %ecx being 'Intel reserved. Do not use'. Did you instead mean "zeroing %EBX and %ECX regs should be enough"? Otherwise I like your proposal, I just have to fully understand the changed inline assembly and test it on actual hardware. - Matthew