diff options
author | Michael Perkins <perkinsmg75@yahoo.co.uk> | 2015-03-10 11:47:46 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-03-10 11:47:46 +0000 |
commit | 5e0d7f77b20d74d2866e41b72697581c39f3197b (patch) | |
tree | ae6aafc5e39637d47be8d01491d7be9908275dba /gas | |
parent | 4e9aaefbd0042f5372509cd51ef2791a68aa30b0 (diff) | |
download | binutils-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/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 4 |
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; |