| /* |
| * Unconditional branch, 32-bit offset. |
| * |
| * The branch distance is a signed code-unit offset, which we need to |
| * double to get a byte offset. |
| * |
| * Unlike most opcodes, this one is allowed to branch to itself, so |
| * our "backward branch" test must be "<=0" instead of "<0". Because |
| * we need the V bit set, we'll use an adds to convert from Dalvik |
| * offset to byte offset. |
| */ |
| /* goto/32 +AAAAAAAA */ |
| movl 2(rPC), %eax # eax <- AAAAAAAA |
| addl %eax, %eax # eax <- AA * 2 |
| leal (rPC, %eax), rPC |
| FETCH_INST |
| jg 1f # AA * 2 > 0 => no suspend check |
| #if MTERP_SUSPEND |
| REFRESH_IBASE |
| #else |
| jmp MterpCheckSuspendAndContinue |
| #endif |
| 1: |
| GOTO_NEXT |