Re: Changes required for x86 address spaces

"H.J. Lu" <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAMe9rOoOR5qC_r3DKk+_NX_dLm33iWHQ4MSgoAYsAtrkOHp5hA@mail.gmail.com>
On Tue, Oct 20, 2015 at 3:25 PM, Richard Henderson <[email protected]> wrote:
> Hi!
>
> Here are some notes regarding gdb changes required in order to support
>
>   https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01972.html
>
> In my opinion, DW_AT_address_class is best when the alternate address space
> is truely disjoint, or has a different pointer width.  That certainly
> matches up with the language in the dwarf4 doc, and existing usage in the
> embedded targets.
>
> Thus I've arranged for these x86 address spaces to use DW_AT_segment, a
> dwarf location containing an offset from the flat address space.  For the
> purposes of the debug info, I map __seg_tls to __seg_fs or __seg_gs.
>
> The x86-64 abi already has dwarf register numbers allocated for fs_base and
> gs_base.  Thus the location is simply the trivial DW_OP_regx 58 or 59
> respectively.  The i386 abi does not yet have the same register number
> pre-allocated; the latest version I see in HJL's github document has dwarf
> registers 58-59 within a block of reserved values, so for now I'm using the
> same values for both x86-64 and i386.
>

Table 2.14: DWARF Register Number Mapping in Intel386 psABI:

https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI

defines

Segment Register ES 40 %es
Segment Register CS 41 %cs
Segment Register SS 42 %ss
Segment Register DS 43 %ds
Segment Register FS 44 %fs
Segment Register GS 45 %gs

Why not use them?


-- 
H.J.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.