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] |
On 2018-05-28 15:13, Simon Marchi wrote:
Ok, I was assuming that it was never possible for the debug info to describe how pseudo registers are saved, only raw registers. Do you have an architecture in mind where it's possible to have a pseudo register mentioned in the unwind information? GNU as doesn't accept at all "ymm0" or "ymm0h" as an argument to .cfi_offset, so I don't know how ymm0 would be represented if we wanted to save it (despite it not being callee saved according to the ABI).
I looked at ARMv7, and one case where this might happen is the VFP registers. The dX registers (64-bits) are the raw ones and the sX (32-bits) are the pseudo ones (where two sX registers make up one dX register). The GNU assembler accepts using s0 with .cfi_offset (for backwards compatibility, I guess?), so we end up with it in the unwind info. However, this is an obsolete way of doing it according to the "DWARF for the ARM Architecture" document [1]. They recommend to describe the sX registers as bit pieces of the dX registers. That recommendation would be in line with the "only raw registers in unwind info" assumption. But it means that we can encounter this in the wild.
Simon[1] http://infocenter.arm.com/help/topic/com.arm.doc.ihi0040b/IHI0040B_aadwarf.pdf
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |