1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source ProjectHANDLE_OPCODE(OP_GOTO_32 /*+AAAAAAAA*/)
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    {
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        s4 offset = FETCH(1);               /* low-order 16 bits */
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        offset |= ((s4) FETCH(2)) << 16;    /* high-order 16 bits */
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (offset < 0)
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            ILOGV("|goto/32 -0x%08x", -offset);
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        else
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            ILOGV("|goto/32 +0x%08x", offset);
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ILOGV("> branch taken");
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (offset <= 0)    /* allowed to branch to self */
129a3147c7412f4794434b4c2604aa2ba784867774buzbee            PERIODIC_CHECKS(offset);
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FINISH(offset);
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source ProjectOP_END
16