Messages in this thread | | | From | "H. Peter Anvin (Intel)" <> | Subject | [PATCH v2 0/2] x86/asm: avoid register pressure from static_cpu_has() | Date | Thu, 9 Sep 2021 15:08:16 -0700 |
| |
gcc will sometimes manifest the address of boot_cpu_data in a register as part of constant propagation. When multiple static_cpu_has() are used this may foul the mainline code with a register load which will only be used on the fallback path, which is unused after initialization.
Explicitly force gcc to use immediate (rip-relative) addressing for the fallback path, thus removing any possible register use from static_cpu_has().
However, currently there is no convenient way to make gcc generate a %rip-relative immediate reference without splitting code into i386 and x86-64 versions, so add a new macro to <asm/asm.h> for this purpose.
Changes in v2: -------------- * Add new macro to <asm/asm.h> * *Actually* generate the %rip-relative addressing mode.
| |