According to the docs here: http://sourceware.org/binutils/docs-2.18/as/ARM-Directives.html#index-g_t_0040code_007b_002esave_007d-directive_002c-ARM-609
you should be able to specify an FPA register in ARM .save directives, like the following: sfmfd f4, 1, [sp]! .save f4, 1 These directives are usually generated by g++. However, if you attempt to assemble this, using "gas -mfpu=fpa", you'll get: test.s: Assembler messages: test.s:2: Error: expected , <constant> This is because gas apparently doesn't skip the register name when looking for the following comma. The function s_arm_unwind_save(), in gas/config/tc-arm.c, peeks ahead to parse the type of register that follows a .save directive, using arm_reg_parse_mult(). When it finds a known register, it uses its type to call the appropriate handler for that type. Unfortunately, for FPA registers, it calls s_arm_unwind_save_fpa() *without* advancing the input_line_pointer to just afer the register name. Since the first thing s_arm_unwind_save_fpa() expects to find is a comma, it will always fail, with: "expected , <constant>". Since arm_reg_parse_multi() already advanced the peek pointer to just after the register name, just setting input_line_pointer to peek is a nice, one-line fix. -- Summary: gas can't parse ARM .save directives for FPA registers Product: binutils Version: 2.19 (HEAD) Status: NEW Severity: normal Priority: P2 Component: gas AssignedTo: unassigned at sources dot redhat dot com ReportedBy: dimitry at andric dot com CC: bug-binutils at gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: arm-omap2-linux-gnueabi http://sourceware.org/bugzilla/show_bug.cgi?id=5712 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils