Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Andreas Arnez
On Fri, Mar 04 2016, Cary Coutant wrote: > It's up to the ABI to define how smaller values are placed within a register. Right, that seems to be the common understanding. Maybe the confusion arose because the standard does not explicitly make this statement. Or did I miss it? Also, I wonder wh

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/04/2016 01:12 PM, Adrian Prantl wrote: I have a best-practice kind of question: The x86_64 System V ABI passes floating point values in the xmm0, xmm1, ... 128-bit SSE vector registers. I’m wondering what the correct DWARF v4 (lacking the DWARF 5 type conversions) expression for a 32-bit

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread David Blaikie
On Mar 9, 2016 8:36 AM, "Michael Eager" wrote: > > On 03/04/2016 01:12 PM, Adrian Prantl wrote: >> >> I have a best-practice kind of question: >> >> The x86_64 System V ABI passes floating point values in the xmm0, xmm1, ... 128-bit SSE vector registers. I’m wondering what the correct DWARF v4 (la

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Jakub Jelinek
On Wed, Mar 09, 2016 at 08:36:44AM -0800, Michael Eager wrote: > How is the "float" type described? > > A value which is contained in a register larger than the size of > the value should be described by a DW_TAG_base_type. (DWARF 4, > Sect. 5.1, bottom of page 75). > > For a 32-bit float in a 1

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 09:33 AM, Jakub Jelinek wrote: On Wed, Mar 09, 2016 at 08:36:44AM -0800, Michael Eager wrote: How is the "float" type described? A value which is contained in a register larger than the size of the value should be described by a DW_TAG_base_type. (DWARF 4, Sect. 5.1, bottom of pa

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread David Blaikie
On Wed, Mar 9, 2016 at 9:57 AM, Michael Eager wrote: > On 03/09/2016 09:33 AM, Jakub Jelinek wrote: > >> On Wed, Mar 09, 2016 at 08:36:44AM -0800, Michael Eager wrote: >> >>> How is the "float" type described? >>> >>> A value which is contained in a register larger than the size of >>> the value

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread John DelSignore
Jakub Jelinek wrote: On Wed, Mar 09, 2016 at 08:36:44AM -0800, Michael Eager wrote: How is the "float" type described? A value which is contained in a register larger than the size of the value should be described by a DW_TAG_base_type. (DWARF 4, Sect. 5.1, bottom of page 75). F

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Jakub Jelinek
On Wed, Mar 09, 2016 at 01:24:37PM -0500, John DelSignore wrote: > I agree completely with Jakub. Defining multiple "float" types that > have varying byte-sizes, bit-sizes, and bit-offsets seems like a big > mistake to me. > > The debugger has to know the ABI conventions for the target platform. >

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread John DelSignore
Jakub Jelinek wrote: On Wed, Mar 09, 2016 at 01:24:37PM -0500, John DelSignore wrote: I agree completely with Jakub. Defining multiple "float" types that have varying byte-sizes, bit-sizes, and bit-offsets seems like a big mistake to me. The debugger has to know the ABI convention

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 10:00 AM, David Blaikie wrote: On Wed, Mar 9, 2016 at 9:57 AM, Michael Eager mailto:ea...@eagercon.com>> wrote: On 03/09/2016 09:33 AM, Jakub Jelinek wrote: On Wed, Mar 09, 2016 at 08:36:44AM -0800, Michael Eager wrote: How is the "float" type described?

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 10:50 AM, John DelSignore wrote: I think what you are saying, and I agree, is that the type of a variable is orthogonal to where (or how) the variable is stored. DWARF should not muddy the type entries with attributes that attempt to describe how a variable is stored somewhere. As

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Frank Ch. Eigler
Hi - On Wed, Mar 09, 2016 at 11:20:38AM -0800, Michael Eager wrote: > [...] > Variable definitions describe where the variable is defined. > If the size of the variable is different from the size of > the container, it should be described as such. > > This has nothing to do with location lists.

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Adrian Prantl
> On Mar 9, 2016, at 8:36 AM, Michael Eager wrote: > > On 03/04/2016 01:12 PM, Adrian Prantl wrote: >> I have a best-practice kind of question: >> >> The x86_64 System V ABI passes floating point values in the xmm0, xmm1, ... >> 128-bit SSE vector registers. I’m wondering what the correct DWAR

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 11:26 AM, Frank Ch. Eigler wrote: Hi - On Wed, Mar 09, 2016 at 11:20:38AM -0800, Michael Eager wrote: [...] Variable definitions describe where the variable is defined. If the size of the variable is different from the size of the container, it should be described as such. This h

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Wim Lewis
On Mar 4, 2016, at 2:00 PM, Robinson, Paul wrote: > I tried a CU with an int variable instead of float, and enough other > stuff to keep it from being optimized away completely. > gcc produced DW_OP_reg3, while Clang produced "DW_OP_reg3; DW_OP_piece 4" > for the same variable. > > DW_OP_piece

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 11:35 AM, Adrian Prantl wrote: On Mar 9, 2016, at 8:36 AM, Michael Eager wrote: On 03/04/2016 01:12 PM, Adrian Prantl wrote: I have a best-practice kind of question: The x86_64 System V ABI passes floating point values in the xmm0, xmm1, ... 128-bit SSE vector registers. I’m

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Cary Coutant
> A value which is contained in a register larger than the size of > the value should be described by a DW_TAG_base_type. (DWARF 4, > Sect. 5.1, bottom of page 75). > > For a 32-bit float in a 128-bit container, use something like the following: > > DW_TAG_base_type > DW_AT_name "float" >

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 02:53 PM, Cary Coutant wrote: A value which is contained in a register larger than the size of the value should be described by a DW_TAG_base_type. (DWARF 4, Sect. 5.1, bottom of page 75). For a 32-bit float in a 128-bit container, use something like the following: DW_TAG_base

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Michael Eager
On 03/09/2016 05:24 PM, Michael Eager wrote: There are no DWARF expressions involved here. What does the description of DW_OP_piece have to do with a DWARF description which doesn't use a DWARF expression? Oops. There is a DWARF expression in the DW_AT_location. -- Michael Eagerea...@eag

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Cary Coutant
>> Sorry, Michael, but you're just muddying the waters. The >> data_bit_offset attribute is used only when "the value of an object of >> the given type does not fully occupy the storage described by a byte >> size attribute." That is not the case here -- the original question >> was about a value o

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Robinson, Paul
> On 03/09/2016 02:53 PM, Cary Coutant wrote: > >> A value which is contained in a register larger than the size of > >> the value should be described by a DW_TAG_base_type. (DWARF 4, > >> Sect. 5.1, bottom of page 75). > >> > >> For a 32-bit float in a 128-bit container, use something like the >

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Frank Ch. Eigler
Hi, Cary - > [...] We're not discussing "how ABIs tell you how to interpret > [location lists]". We're discussing whether the consumer is expected > to turn to the ABI to find out how a smaller value is stored in a > larger register. [...] Given that the ABI constraints apply only at function ca

Re: [Dwarf-Discuss] Representing the location of smaller values in vector registers

2016-03-09 Thread Cary Coutant
We're straying even further off topic now... >> [...] We're not discussing "how ABIs tell you how to interpret >> [location lists]". We're discussing whether the consumer is expected >> to turn to the ABI to find out how a smaller value is stored in a >> larger register. [...] > > Given that the