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.
This commit is contained in:
parent
10c17abdd0
commit
4f588891ac
@ -1,3 +1,9 @@
|
||||
2017-12-18 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
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 <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (regymm, regzmm): Delete.
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user