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~

Reply via email to