On Thu, Jan 04, 2018 at 09:56:47AM -0800, Tim Chen wrote: > .macro ENABLE_IBRS > - ALTERNATIVE "jmp 10f", "", X86_FEATURE_SPEC_CTRL > + testl $SPEC_CTRL_IBRS_INUSE, spec_ctrl_ibrs > + jz .Lskip_\@ > + > PUSH_MSR_REGS > WRMSR_ASM $MSR_IA32_SPEC_CTRL, $SPEC_CTRL_FEATURE_ENABLE_IBRS > POP_MSR_REGS > -10: > + > + jmp .Ldone_\@ > +.Lskip_\@: > + /* > + * prevent speculation beyond here as we could want to > + * stop speculation by enabling IBRS > + */ > + lfence > +.Ldone_\@: > .endm
Yeah no. We have jump labels for this stuff. There is no reason what so ever to do dynamic tests for a variable that _never_ changes.