lkml.org 
[lkml]   [2021]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC][PATCH 07/22] x86,extable: Extend extable functionality
On Fri, Nov 05, 2021 at 05:32:14PM +0000, Sean Christopherson wrote:

> > +#define EX_IMM_MASK 0xFFFF0000

> > + imm = FIELD_GET(EX_IMM_MASK, e->type);
>
> FIELD_GET casts the result based on the type of the mask, but doesn't explicitly
> sign extend the masked field, i.e. there's no intermediate cast to tell the compiler
> that the imm is a 16-bit value that should be sign extended.
>
> Modifying FIELD_GET to sign extended is probably a bad idea as I'm guessing the
> vast, vast majority of use cases don't want that behavior. I'm not sure how that
> would even work with masks that are e.g. 5 bits or so.

So the way I was reading it was that typeof(_mask) is 'int', e->type is
also 'int', we mask out the top bits, and since it's all 'int' we do an
arith shift right (ie. preserves sign).

Where did that reading go wrong?

\
 
 \ /
  Last update: 2021-11-05 19:46    [W:0.930 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site