Home | History | Annotate | Download | only in armv5te
      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