GDB | DWARF expression | Extracting a range of bits from an 'xmm' register

vaibhav kurhe via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAHKv1qvC6TGvJLz_=OQMu9Z9E5ohqKu4Uqu03330JOhgYHGNiw@mail.gmail.com>
Hello all,
For a use case, I am trying to build a DWARF expression which represents
the value of an arbitrary range of bits (e.g. 96-127 bits) in an *128-bit
xmm register* to be used as a *location attribute value* for a variable DIE.
I am using GDB to consume the debug info and test it.

Following is the expression I started with to test out a shift operation on
an 128-bit xmm0 register using Typed DWARF stack :-

*"DW_OP_GNU_regval_type: 21 (xmm0) <0x30>; DW_OP_GNU_const_type: <0x30>  16
byte block: 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; DW_OP_shl;
DW_OP_stack_value"*
But, while testing it in GDB, I got an error :-
*"That operation is not available on integers of more than 8 bytes."*

Could you please provide any suggestions/pointers on this? Am I missing
something?

Please let me know, if you need any additional info.

Thanks & Regards,
Vaibhav
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.