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

Reply via email to