Lines Matching refs:InsnFlags
68 * stream, and store it in vdata->insnFlags. Addresses that are in the
70 * touched (so the caller should probably initialize "insnFlags" to zero).
86 InsnFlags* insnFlags = vdata->insnFlags;
110 insnFlags[i] |= width;
132 * Call this after widths have been set in "insnFlags".
137 static bool scanTryCatchBlocks(const Method* meth, InsnFlags* insnFlags)
164 if (dvmInsnGetWidth(insnFlags, start) == 0) {
172 addr += dvmInsnGetWidth(insnFlags, addr))
174 assert(dvmInsnGetWidth(insnFlags, addr) != 0);
175 dvmInsnSetInTry(insnFlags, addr, true);
195 if (dvmInsnGetWidth(insnFlags, addr) == 0) {
202 dvmInsnSetBranchTarget(insnFlags, addr, true);
251 vdata.insnFlags = NULL;
287 vdata.insnFlags = (InsnFlags*) calloc(vdata.insnsSize, sizeof(InsnFlags));
288 if (vdata.insnFlags == NULL)
292 * Compute the width of each instruction and store the result in insnFlags.
301 vdata.uninitMap = dvmCreateUninitInstanceMap(meth, vdata.insnFlags,
310 if (!scanTryCatchBlocks(meth, vdata.insnFlags))
337 free(vdata.insnFlags);
600 * Updates "insnFlags", setting the "branch target" flag.
602 static bool checkSwitchTargets(const Method* meth, InsnFlags* insnFlags,
693 !dvmInsnIsOpcode(insnFlags, absOffset))
699 dvmInsnSetBranchTarget(insnFlags, absOffset, true);
715 * Updates "insnFlags", setting the "branch target" flag.
717 static bool checkBranchTarget(const Method* meth, InsnFlags* insnFlags,
724 if (!dvmGetBranchOffset(meth, insnFlags, curOffset, &offset,
746 !dvmInsnIsOpcode(insnFlags, absOffset))
753 dvmInsnSetBranchTarget(insnFlags, absOffset, true);
762 * As a side effect, this sets the "branch target" flags in InsnFlags.
798 InsnFlags* insnFlags = vdata->insnFlags;
803 dvmInsnSetBranchTarget(insnFlags, 0, true);
809 int width = dvmInsnGetWidth(insnFlags, codeOffset);
849 okay &= checkBranchTarget(meth, insnFlags, codeOffset, false);
852 okay &= checkBranchTarget(meth, insnFlags, codeOffset, true);
978 okay &= checkSwitchTargets(meth, insnFlags, codeOffset);
982 okay &= checkSwitchTargets(meth, insnFlags, codeOffset);
1063 okay &= checkBranchTarget(meth, insnFlags, codeOffset, false);
1072 okay &= checkBranchTarget(meth, insnFlags, codeOffset, false);
1209 dvmInsnSetGcPoint(insnFlags, codeOffset, true);