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 <richard.hender...@linaro.org> r~