Re: [PATCH v2] x86/mm/kaslr: Use _ASM_MUL macro for multiplication

From: H. Peter Anvin
Date: Sat Apr 29 2017 - 17:33:20 EST


On 04/26/17 14:29, Greg Hackmann wrote:
> On 04/26/2017 02:24 PM, hpa@xxxxxxxxx wrote:
>>>> This really feels like a "fix your compiler" issue.
>>>
>>> We already use the other forms, what's so bad about adding mul too?
>>> And if this lets us build under clang, all the better.
>>>
>>> -Kees
>>
>> It's not bad per se, but if this doesn't eventually gets fixed in
>> clang we'll have no end of this crap.
>>
>
> AIUI the "problem" is that clang is spilling mix_const into memory
> rather than assigning it to a register. This is perfectly legal since
> mix_const has a constraint of "rm". But mul needs a suffix when the
> input is a memory location, since it can't infer the multiplication
> width from the input operand anymore.
>
> You get the same error message with gcc if you force it to use a memory
> location, by narrowing the constraint from "rm" to "m".

OK, that's a genuine bug. Please explain that in the comment; it has
nothing to do with clang.

-hpa