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:
parent
f7c77d9323
commit
1f5afe1cc0
@ -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>
|
||||
Jiong Wang <Jiong.Wang@arm.com>
|
||||
|
||||
|
@ -4134,15 +4134,24 @@ s_arm_unwind_save (int arch_v6)
|
||||
s_arm_unwind_save_fpa (reg->number);
|
||||
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:
|
||||
if (arch_v6)
|
||||
s_arm_unwind_save_vfp_armv6 ();
|
||||
else
|
||||
s_arm_unwind_save_vfp ();
|
||||
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:
|
||||
as_bad (_(".unwind_save does not support this kind of register"));
|
||||
@ -21019,11 +21028,19 @@ int
|
||||
tc_arm_regname_to_dw2regnum (char *regname)
|
||||
{
|
||||
int reg = arm_reg_parse (®name, REG_TYPE_RN);
|
||||
if (reg != FAIL)
|
||||
return reg;
|
||||
|
||||
if (reg == FAIL)
|
||||
return -1;
|
||||
/* PR 16694: Allow VFP registers as well. */
|
||||
reg = arm_reg_parse (®name, REG_TYPE_VFS);
|
||||
if (reg != FAIL)
|
||||
return 64 + reg;
|
||||
|
||||
return reg;
|
||||
reg = arm_reg_parse (®name, REG_TYPE_VFD);
|
||||
if (reg != FAIL)
|
||||
return reg + 256;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
#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>
|
||||
|
||||
* 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
|
||||
|
||||
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_def_cfa: r12 ofs 0
|
||||
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_advance_loc: 4 to 00000010
|
||||
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
|
||||
.cfi_def_cfa fp, 16
|
||||
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}
|
||||
.cfi_endproc
|
||||
.size foo, .-foo
|
||||
|
Loading…
Reference in New Issue
Block a user