On Thu, Mar 10 2016, Cary Coutant wrote:
> Adrian was looking for guidance to understand what the spec says about
> placement of smaller values in larger registers. He found some
> guidance in the section on DW_OP_piece, but nowhere else, leading him
> to ask if clang should have been using DW_OP_
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
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
> 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
>
>> 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
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
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
> 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"
>
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
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
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
> 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
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.
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
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?
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
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.
>
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
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
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
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
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
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
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
>> -Original Message-
>> From: Dwarf-Discuss [mailto:dwarf-discuss-boun...@lists.dwarfstd.org] On
>> Behalf Of Adrian Prantl
>> Sent: Friday, March 04, 2016 1:13 PM
>> To: dwarf-discuss@lists.dwarfstd.org
>> Subject: [Dwarf-Discuss] Representing the lo
s] Representing the location of smaller values in
> vector registers
>
> 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
From: Dwarf-Discuss [mailto:dwarf-discuss-boun...@lists.dwarfstd.org] On Behalf
Of Adrian Prantl
Sent: Friday, March 4, 2016 4:13 PM
To: dwarf-discuss@lists.dwarfstd.org
Subject: [Dwarf-Discuss] Representing the location of smaller values in vector
registers
I have a best-practice kind of question:
> DW_TAG_variable
>DW_AT_location( reg17 ) // xmm0 = 17
>DW_AT_name( "f" )
>DW_AT_decl_file( "test.c" )
>DW_AT_decl_line( 8 )
>DW_AT_type( {0x004a} ( float ) )
>
> Which causes LLDB to complain that the size of register xmm0 (128 Bits) is
> different from the size of f (
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 float in xmm0 is.
Given the following program
29 matches
Mail list logo