Re: [PATCH v2] ubsan: Avoid unnecessary 128-bit shifts

2019-04-02 Thread Rasmus Villemoes
On 03/04/2019 07.45, George Spelvin wrote: > > diff --git a/lib/ubsan.c b/lib/ubsan.c > index e4162f59a81c..a7eb55fbeede 100644 > --- a/lib/ubsan.c > +++ b/lib/ubsan.c > @@ -89,8 +89,8 @@ static bool is_inline_int(struct type_descriptor *type) > static s_max get_signed_val(struct type_descriptor

[PATCH v2] ubsan: Avoid unnecessary 128-bit shifts

2019-04-02 Thread George Spelvin
If CONFIG_ARCH_SUPPORTS_INT128, s_max is 128 bits, and variable sign-extending shifts of such a double-word data type are a non-trivial amount of code and complexity. Do a single-word shift *before* the cast to (s_max), greatly simplifying the object code. (Yes, I know "signed long" is redundant.