On Mon, May 20, 2019 at 6:12 PM tedheadster <tedheads...@gmail.com> wrote: > > 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"?
Ah, yes. This is what I meant to say. The patch clears %ebx and %ecx. Uros. > Otherwise I like your proposal, I just have to fully understand the changed > inline assembly and test it on actual hardware. > > - Matthew >