This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Fixes a bug in the ARM port of GAS when parsing inverted register lists.
- From: Nick Clifton <nickc at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 10 Mar 2015 11:48:34 -0000
- Subject: [binutils-gdb] Fixes a bug in the ARM port of GAS when parsing inverted register lists.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5e0d7f77b20d74d2866e41b72697581c39f3197b
commit 5e0d7f77b20d74d2866e41b72697581c39f3197b
Author: Michael Perkins <perkinsmg75@yahoo.co.uk>
Date: Tue Mar 10 11:47:46 2015 +0000
Fixes a bug in the ARM port of GAS when parsing inverted register lists.
* config/tc-arm.c (parse_operands): Fix bug setting writeback
values for '^' on OP_REGLSTs.
(do_push_pop): Add new writeback constraint.
Diff:
---
gas/ChangeLog | 6 ++++++
gas/config/tc-arm.c | 4 +++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 992eee5..0a6a4b9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-10 Michael Perkins <perkinsmg75@yahoo.co.uk>
+
+ * config/tc-arm.c (parse_operands): Fix bug setting writeback
+ values for '^' on OP_REGLSTs.
+ (do_push_pop): Add new writeback constraint.
+
2015-03-10 Renlin Li <renlin.li@arm.com>
* config/tc-arm.c (mapping_state): Remove first MAP_DATA emitting code.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index ded989a..1f15116 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -7038,7 +7038,7 @@ parse_operands (char *str, const unsigned int *pattern, bfd_boolean thumb)
val = parse_reg_list (&str);
if (*str == '^')
{
- inst.operands[1].writeback = 1;
+ inst.operands[i].writeback = 1;
str++;
}
break;
@@ -9036,6 +9036,8 @@ do_pli (void)
static void
do_push_pop (void)
{
+ constraint (inst.operands[0].writeback,
+ _("push/pop do not support {reglist}^"));
inst.operands[1] = inst.operands[0];
memset (&inst.operands[0], 0, sizeof inst.operands[0]);
inst.operands[0].isreg = 1;