This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [AArch64/gas] v[0-31] registers not allowed in cfi_offset?
- From: Richard Henderson <rth at redhat dot com>
- To: Steven Vormwald <sdvormwa at mtu dot edu>, binutils at sourceware dot org
- Date: Wed, 06 Aug 2014 12:48:40 -1000
- Subject: Re: [AArch64/gas] v[0-31] registers not allowed in cfi_offset?
- Authentication-results: sourceware.org; auth=none
- References: <CA+MHknz3K2TpD=bP67U0Gm4X5__LD6D45mQgCKSG2=rQNytt6g at mail dot gmail dot com>
On 08/06/2014 04:06 AM, Steven Vormwald wrote:
> Are the v[0-31] registers intentionally not supported in cfi_offset?
> I'm trying to figure out whether this is an oversight in gas due to
> aarch64 support being relatively new (seems likely given bug 16694) or
> if they are intentionally not supported and I need to stop emitting
> cfi_offset with them.
You mean by name? Technically, only the low 64-bits is supportable in the
unwind info, i.e. d[0-31]. So I think we shouldn't allow the V registers by
name. Or under the B, H or S names either, come to that.
But I also see that we produce invalid unwind info for the D regs:
.cfi_startproc
foo:
nop
.cfi_offset x10,0
.cfi_offset d10,0
.cfi_endproc
00000014 00000018 00000018 FDE cie=00000000 pc=00000000..00000004
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_offset: r10 at cfa+0
DW_CFA_offset: r10 at cfa+0
That second opcode should be r42.
r~