1%verify "executed"
2%verify "forward and backward"
3    /*
4     * Unconditional branch, 16-bit offset.
5     *
6     * The branch distance is a signed code-unit offset, which we need to
7     * double to get a byte offset.
8     */
9    /* goto/16 +AAAA */
10    FETCH_S(r0, 1)                      @ r0<- ssssAAAA (sign-extended)
11    movs    r9, r0, asl #1              @ r9<- byte offset, check sign
12    bmi     common_backwardBranch       @ backward branch, do periodic checks
13#if defined(WITH_JIT)
14    GET_JIT_PROF_TABLE(r0)
15    FETCH_ADVANCE_INST_RB(r9)           @ update rPC, load rINST
16    cmp     r0,#0
17    bne     common_updateProfile
18    GET_INST_OPCODE(ip)                 @ extract opcode from rINST
19    GOTO_OPCODE(ip)                     @ jump to next instruction
20#else
21    FETCH_ADVANCE_INST_RB(r9)           @ update rPC, load rINST
22    GET_INST_OPCODE(ip)                 @ extract opcode from rINST
23    GOTO_OPCODE(ip)                     @ jump to next instruction
24#endif
25