[PATCH 1/2] aarch64: Fix dwarf2 regnum for Dn
Marcus Shawcroft
marcus.shawcroft@gmail.com
Tue Sep 2 17:38:00 GMT 2014
On 7 August 2014 01:11, Richard Henderson <rth@twiddle.net> wrote:
> My argument for not accepting [bhsv]N is that unwind info
> is specifically 64-bits, i.e. the dN values.
>
> Not handled here is "esr" == 33.
>
> ---
> gas/config/tc-aarch64.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> index 0a65b9d..09ea8a6 100644
> --- a/gas/config/tc-aarch64.c
> +++ b/gas/config/tc-aarch64.c
> @@ -5962,16 +5962,20 @@ tc_aarch64_regname_to_dw2regnum (char *regname)
>
> switch (reg->type)
> {
> - case REG_TYPE_SP_32:
> case REG_TYPE_SP_64:
> - case REG_TYPE_R_32:
> case REG_TYPE_R_64:
> + return reg->number;
> +
> + case REG_TYPE_FP_D:
> + return reg->number + 64;
> +
> + case REG_TYPE_SP_32:
> + case REG_TYPE_R_32:
> case REG_TYPE_FP_B:
> case REG_TYPE_FP_H:
> case REG_TYPE_FP_S:
> - case REG_TYPE_FP_D:
> case REG_TYPE_FP_Q:
> - return reg->number;
> + /* Do not allow register names of width other than 64-bit. */
> default:
> break;
Hi, Sorry, I've been out for a month. I think this change will break
the assembly of any existing code that uses cfi_offset for one of
these dropped register names? There is code over in glibc
dl-trampoline.S and possibly other places that would need to be fixed
first.
/Marcus
More information about the Binutils
mailing list