[PATCH] .savev6 directive for ARM
Mark Shinwell
shinwell@codesourcery.com
Tue Jun 20 16:34:00 GMT 2006
The FLDMX/FSTMX VFP multiple load/store instructions are deprecated as
of ARMv6 in favour of FLDMD and FSTMD. The unwind opcodes corresponding
to FSTMD are different from those corresponding to FSTMX.
This patch provides a new gas directive .savev6 that can be used to
generate unwind information corresponding to the saving of VFP registers
with FSTMD. It also works with VFPv3 registers saved with VSTM.
Assembly source using .save will still use the FSTMX-style unwind
opcodes; thus, backwards compatibility is maintained.
I've also corrected a typo in the example of .save in the manual, see
below.
Up my sleeve I have a gcc patch to go along with this that causes the
compiler to emit .savev6 directives and to no longer emit FLDMX and
FSTMX instructions -- along with the necessary unwinder support and a few
bugfixes in that area. At the moment that requires this patch, so I'm
posting here first.
Tested for arm-none-linux-gnueabi.
OK?
Mark
--
gas/ChangeLog:
2006-06-20 Mark Shinwell <shinwell@codesourcery.com>
* config/tc-arm.c (s_arm_unwind_save_vfp_armv6): New. Parse
a directive saving VFP registers for ARMv6 or later.
(s_arm_unwind_save): Add parameter arch_v6 and call
s_arm_unwind_save_vfp or s_arm_unwind_save_vfp_armv6 as
appropriate.
(md_pseudo_table): Add entry for new "savev6" directive.
* doc/c-arm.texi: Correct error in example for "save"
directive (fstmdf -> fstmdx). Also document "savev6" directive.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fstmd-binutils.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20060620/48578d98/attachment.ksh>
More information about the Binutils
mailing list