This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Extend gdb remote protocol for AVX


On Sun, Oct 12, 2008 at 6:37 AM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>> Gcc 4.4 supports AVX. Gcc uses the same register number internally
>> for xmm0 and ymm0. It has no problems with register allocator.
>
> I guess that makes sense.  Otherwise the register allocator might
> think it can use xmm0 independently from ymm0.
>
>> > We really should make sure the DWARF register number mapping in the
>> > AMD64 psABI gets updated for these new registers.  Given the way the
>> > current mapping us defined for %stN and %mmN, it probably makes sense
>> > to give %ymmN their own numbers.
>> >
>>
>> The AVX x86-64 psABI extension is at
>>
>> http://gcc.gnu.org/ml/gcc/2008-06/msg00408.html
>>
>> The ia32 psABI extension is similar to SSE. The only difference is
>> __m256 requires 32byte alignment, instead of 16btye.
>
> And it doesn't mention the DWARF debug register mapping.  That's sad.
>
>> I removed AVX register map:
>>
>> http://sourceware.org/ml/binutils/2008-08/msg00010.html
>>
>> since xmm/ymm registers are all caller-saved and there are
>> no xmm/ymm registers in unwind info.
>
> That's a mistake.  Unwind info for signal handlers should mention
> xmm/ymm registers.  Although I'm not sure how one would express the
> xsave layout in DWARF.

I removed ymm register map. But I reserved those ranges for future
ymm register use. If it turns out that we really need them, we can
reenable the map. So far I haven't found xmm register map is used
anywhere, including signal handler.

>
>> For debug info, we can tell ymm from xmm with data size.
>
> But what should "info address" display for a variable stored in a %ymm
> register?  If we can't distinguish between the two, we'll probably end
> up printing %xmm.
>

We can treat variables in xmm/ymm the same way  as variables in al/ax/eax/rax.

Thanks.

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]