On 11 October 2017 at 03:18, Richard Henderson <richard.hender...@linaro.org> wrote: > 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.
Yes, it's in the ARMv5 and v6 ARM, which you can get from here: https://developer.arm.com/docs/ddi0100/latest/armv5-architecture-reference-manual thanks -- PMM