On Mon, Apr 10, 2023 at 9:58 PM Samuel Thibault <samuel.thiba...@gnu.org> wrote:
>
> Sergey Bugaev, le dim. 19 mars 2023 18:09:59 +0300, a ecrit:
> > +#ifdef __USE_GNU
> > +/* Number of each register in the `gregset_t' array.  */
> > +enum
> > +{
> > +  REG_GSFS = 0,              /* Actually int gs, fs.  */
> > +# define REG_GSFS    REG_GSFS
> > +  REG_ESDS,          /* Actually int es, ds.  */
> > +# define REG_ESDS    REG_ESDS
>
> On second thought, why REG_ESDS? They are basically useless on amd64
>
> Linux packs all segment registers in REG_CSGSFS, probably better to
> stuff them the same way? (all three really are 16bit only, even if the
> thread_state is padding them to 32bits).

Exactly because that's how they are laid out in struct
i386_thread_state, if you count in 8-byte chunks.

Look at how these REG_* definitions are used in fill_ucontext () in
trampoline.c (that's the one, not hursig.c like my previous message
said).

Sergey

Reply via email to