From: Nick Clifton Date: Mon, 18 Dec 2017 09:37:57 +0000 (+0000) Subject: Resolve PR 22493 - the encoding to be used when pushing the stack pointer onto the... X-Git-Tag: gdb-8.1-release~124 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f588891ac7d4653e1bd861ca38c2a4e6d5e907c;p=external%2Fbinutils.git Resolve PR 22493 - the encoding to be used when pushing the stack pointer onto the stack. PR 22493 * config/tc-arm.c (encode_ldmstm): Do not use A2 encoding of the PUSH insn when pushing the stack pointer. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index d495548..ed794be 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2017-12-18 Nick Clifton + + PR 22493 + * config/tc-arm.c (encode_ldmstm): Do not use A2 encoding of the + PUSH insn when pushing the stack pointer. + 2017-12-18 Jan Beulich * config/tc-i386.c (regymm, regzmm): Delete. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 080e4da..c12a453 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -8908,6 +8908,11 @@ encode_ldmstm(int from_push_pop_mnem) { int is_push = (inst.instruction & A_PUSH_POP_OP_MASK) == A1_OPCODE_PUSH; + if (is_push && one_reg == 13 /* SP */) + /* PR 22483: The A2 encoding cannot be used when + pushing the stack pointer as this is UNPREDICTABLE. */ + return; + inst.instruction &= A_COND_MASK; inst.instruction |= is_push ? A2_OPCODE_PUSH : A2_OPCODE_POP; inst.instruction |= one_reg << 12;