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

Reply via email to