* arm-dis.c (print_insn_arm): Mark insns that use the PC in
        post-indexed addressing as unpredictable.
This commit is contained in:
Nick Clifton
2009-12-09 08:38:04 +00:00
parent 8d099ae953
commit 07a28fab11
2 changed files with 17 additions and 5 deletions

View File

@@ -2931,11 +2931,17 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info, long given)
NEGATIVE_BIT_SET ? "-" : "",
arm_regnames[given & 0xf]);
/* Writeback is automatically implied by post- addressing.
Setting the W bit is unnecessary and ARM specify it as
being unpredictable. */
if (WRITEBACK_BIT_SET && ! allow_unpredictable)
func (stream, UNPREDICTABLE_INSTRUCTION);
if (! allow_unpredictable)
{
/* Writeback is automatically implied by post- addressing.
Setting the W bit is unnecessary and ARM specify it as
being unpredictable. */
if (WRITEBACK_BIT_SET
/* Specifying the PC register as the post-indexed
registers is also unpredictable. */
|| ((given & 0xf) == 0xf))
func (stream, UNPREDICTABLE_INSTRUCTION);
}
}
}
break;