On 10/09/2017 06:48 AM, Peter Maydell wrote:
> + if ((insn >> 11) == 0x1e && (s->pc < s->next_page_start - 3)) {
> + /* 0b1111_0xxx_xxxx_xxxx : BL/BLX prefix, and the suffix
> + * is not on the next page; we merge this into a 32-bit
> + * insn.
> + */
> + return false;
> + }
> + /* 0b1110_1xxx_xxxx_xxxx : BLX suffix (or UNDEF);
> + * 0b1111_1xxx_xxxx_xxxx : BL suffix;
> + * 0b1111_0xxx_xxxx_xxxx : BL/BLX prefix on the end of a page
> + * -- handle as single 16 bit insn
> + */
I really had to search to find docs for this. I suspect it's quite clear in v5
manuals, but I didn't have one handy and arm.com seems to have dropped
everything before v6M. However, I did see a footnote in v7M that explained.
But, everything appears to be in order. It's a nice cleanup.
Reviewed-by: Richard Henderson <[email protected]>
r~