diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 08155ac..136e52c 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -7042,7 +7042,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; @@ -9040,6 +9040,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;