[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <38C69EA0-DB74-4D2A-ABB5-CB3F1D31FB0C@zytor.com>
Date: Sun, 30 Jun 2024 23:31:42 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Borislav Petkov <bp@...en8.de>
CC: Xin Li <xin3.li@...el.com>, linux-kernel@...r.kernel.org, x86@...nel.org,
tglx@...utronix.de, mingo@...hat.com, dave.hansen@...ux.intel.com,
peterz@...radead.org, brgerst@...il.com, chang.seok.bae@...el.com,
jgross@...e.com
Subject: Re: [PATCH v6 5/5] x86/gsseg: use the LKGS instruction if available for load_gs_index()
On June 30, 2024 11:08:41 PM PDT, Borislav Petkov <bp@...en8.de> wrote:
>On Sun, Jun 30, 2024 at 07:34:42PM -0700, H. Peter Anvin wrote:
>> It is much like "movl %edi,%ds"...
>
>You mean ...,%gs"... :-P
>
>But yeah, that makes more sense.
>
>Are we saying somewhere that when moving into a segreg, only the lower 16 bits
>of the source operand are used?
>
>Both docs say
>
>8E /r MOV Sreg, r/m16 Move r/m16 to segment register.
>
>and I read that strict as r16 so I'd expect a "mov %di,..." not a "mov
>%edi,..."
>
>Thx.
>
Yes, all loads into a segment register are truncated to 16 bits.
Powered by blists - more mailing lists