mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 16:53:50 +08:00
Add support for parsing VFP register names in .cfi_offset directives.
PR gas/16694 * config/tc-arm.c (tc_arm_regname_to_dw2regnum): Parse VFP registers as well. * gas/cfi/cfi-arm-1.s: Add checks of VFP registers. * gas/cfi/cfi-arm-1.d: Update expected output.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2014-03-17 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR gas/16694
|
||||||
|
* config/tc-arm.c (tc_arm_regname_to_dw2regnum): Parse VFP
|
||||||
|
registers as well.
|
||||||
|
|
||||||
2014-03-13 Richard Earnshaw <rearnsha@arm.com>
|
2014-03-13 Richard Earnshaw <rearnsha@arm.com>
|
||||||
Jiong Wang <Jiong.Wang@arm.com>
|
Jiong Wang <Jiong.Wang@arm.com>
|
||||||
|
|
||||||
|
@ -4134,15 +4134,24 @@ s_arm_unwind_save (int arch_v6)
|
|||||||
s_arm_unwind_save_fpa (reg->number);
|
s_arm_unwind_save_fpa (reg->number);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case REG_TYPE_RN: s_arm_unwind_save_core (); return;
|
case REG_TYPE_RN:
|
||||||
|
s_arm_unwind_save_core ();
|
||||||
|
return;
|
||||||
|
|
||||||
case REG_TYPE_VFD:
|
case REG_TYPE_VFD:
|
||||||
if (arch_v6)
|
if (arch_v6)
|
||||||
s_arm_unwind_save_vfp_armv6 ();
|
s_arm_unwind_save_vfp_armv6 ();
|
||||||
else
|
else
|
||||||
s_arm_unwind_save_vfp ();
|
s_arm_unwind_save_vfp ();
|
||||||
return;
|
return;
|
||||||
case REG_TYPE_MMXWR: s_arm_unwind_save_mmxwr (); return;
|
|
||||||
case REG_TYPE_MMXWCG: s_arm_unwind_save_mmxwcg (); return;
|
case REG_TYPE_MMXWR:
|
||||||
|
s_arm_unwind_save_mmxwr ();
|
||||||
|
return;
|
||||||
|
|
||||||
|
case REG_TYPE_MMXWCG:
|
||||||
|
s_arm_unwind_save_mmxwcg ();
|
||||||
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
as_bad (_(".unwind_save does not support this kind of register"));
|
as_bad (_(".unwind_save does not support this kind of register"));
|
||||||
@ -21019,11 +21028,19 @@ int
|
|||||||
tc_arm_regname_to_dw2regnum (char *regname)
|
tc_arm_regname_to_dw2regnum (char *regname)
|
||||||
{
|
{
|
||||||
int reg = arm_reg_parse (®name, REG_TYPE_RN);
|
int reg = arm_reg_parse (®name, REG_TYPE_RN);
|
||||||
|
if (reg != FAIL)
|
||||||
if (reg == FAIL)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return reg;
|
return reg;
|
||||||
|
|
||||||
|
/* PR 16694: Allow VFP registers as well. */
|
||||||
|
reg = arm_reg_parse (®name, REG_TYPE_VFS);
|
||||||
|
if (reg != FAIL)
|
||||||
|
return 64 + reg;
|
||||||
|
|
||||||
|
reg = arm_reg_parse (®name, REG_TYPE_VFD);
|
||||||
|
if (reg != FAIL)
|
||||||
|
return reg + 256;
|
||||||
|
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TE_PE
|
#ifdef TE_PE
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2014-03-17 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR gas/16694
|
||||||
|
* gas/cfi/cfi-arm-1.s: Add checks of VFP registers.
|
||||||
|
* gas/cfi/cfi-arm-1.d: Update expected output.
|
||||||
|
|
||||||
2014-03-13 Nick Clifton <nickc@redhat.com>
|
2014-03-13 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* gas/aarch64/litpool.s: Make the test endian agnostic.
|
* gas/aarch64/litpool.s: Make the test endian agnostic.
|
||||||
|
@ -13,7 +13,7 @@ Contents of the .eh_frame section:
|
|||||||
|
|
||||||
DW_CFA_def_cfa: r13 ofs 0
|
DW_CFA_def_cfa: r13 ofs 0
|
||||||
|
|
||||||
00000014 0+0020 0+0018 FDE cie=0+0000 pc=0+0000..0+0018
|
00000014 0+002c 0+0018 FDE cie=0+0000 pc=0+0000..0+0018
|
||||||
DW_CFA_advance_loc: 4 to 00000004
|
DW_CFA_advance_loc: 4 to 00000004
|
||||||
DW_CFA_def_cfa: r12 ofs 0
|
DW_CFA_def_cfa: r12 ofs 0
|
||||||
DW_CFA_advance_loc: 4 to 00000008
|
DW_CFA_advance_loc: 4 to 00000008
|
||||||
@ -24,4 +24,9 @@ Contents of the .eh_frame section:
|
|||||||
DW_CFA_offset: r14 at cfa-24
|
DW_CFA_offset: r14 at cfa-24
|
||||||
DW_CFA_advance_loc: 4 to 00000010
|
DW_CFA_advance_loc: 4 to 00000010
|
||||||
DW_CFA_def_cfa: r11 ofs 16
|
DW_CFA_def_cfa: r11 ofs 16
|
||||||
|
DW_CFA_advance_loc: 4 to 00000014
|
||||||
|
DW_CFA_offset: r1 at cfa-16
|
||||||
|
DW_CFA_offset_extended: r65 at cfa-20
|
||||||
|
DW_CFA_offset_extended: r267 at cfa-48
|
||||||
|
DW_CFA_nop
|
||||||
|
DW_CFA_nop
|
||||||
|
@ -18,6 +18,12 @@ foo:
|
|||||||
sub fp, ip, #20
|
sub fp, ip, #20
|
||||||
.cfi_def_cfa fp, 16
|
.cfi_def_cfa fp, 16
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
# Test fix for PR 16694 - the use of VFP registers in .cfi_offset directives.
|
||||||
|
.cfi_offset r1, -16
|
||||||
|
.cfi_offset s1, -20
|
||||||
|
.cfi_offset d11, -48
|
||||||
|
|
||||||
ldmea fp, {fp, sp, pc}
|
ldmea fp, {fp, sp, pc}
|
||||||
.cfi_endproc
|
.cfi_endproc
|
||||||
.size foo, .-foo
|
.size foo, .-foo
|
||||||
|
Reference in New Issue
Block a user