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