On Sun, Oct 20, 2024 at 04:11:25PM -0700, Josh Poimboeuf wrote: > #define FORCE_CANONICAL > \ > ALTERNATIVE_2 > \ > "shl $(64 - 48), %rdx", > \ > "shl $(64 - 57), %rdx", X86_FEATURE_LA57, > \ ^^^^ these should be rax > "", ALT_NOT(X86_FEATURE_LAM) > > #ifdef CONFIG_X86_5LEVEL > #define LOAD_TASK_SIZE_MINUS_N(n) \ > ALTERNATIVE __stringify(mov $((1 << 47) - 4096 - (n)),%rdx), \ > __stringify(mov $((1 << 56) - 4096 - (n)),%rdx), > X86_FEATURE_LA57 > #else > #define LOAD_TASK_SIZE_MINUS_N(n) \ > mov $(TASK_SIZE_MAX - (n)),%_ASM_DX > #endif > > .macro check_range size > .if IS_ENABLED(CONFIG_X86_64) > FORCE_CANONICAL > /* If above TASK_SIZE_MAX, convert to all 1's */ > LOAD_TASK_SIZE_MINUS_N(size-1) > cmp %rax, %rdx > sbb %rdx, %rdx > or %rdx, %rax
-- Josh