aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMichael Perkins <perkinsmg75@yahoo.co.uk>2015-03-10 11:47:46 +0000
committerNick Clifton <nickc@redhat.com>2015-03-10 11:47:46 +0000
commit5e0d7f77b20d74d2866e41b72697581c39f3197b (patch)
treeae6aafc5e39637d47be8d01491d7be9908275dba /gas
parent4e9aaefbd0042f5372509cd51ef2791a68aa30b0 (diff)
downloadbinutils-5e0d7f77b20d74d2866e41b72697581c39f3197b.zip
binutils-5e0d7f77b20d74d2866e41b72697581c39f3197b.tar.gz
binutils-5e0d7f77b20d74d2866e41b72697581c39f3197b.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c4
2 files changed, 9 insertions, 1 deletions
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;