/dalvik/vm/analysis/ |
H A D | CodeVerify.h | 149 InsnFlags* insnFlags; member in struct:VerifierData 175 INLINE bool dvmInsnIsOpcode(const InsnFlags* insnFlags, int addr) { argument 176 return (insnFlags[addr] & kInsnFlagWidthMask) != 0; 182 INLINE int dvmInsnGetWidth(const InsnFlags* insnFlags, int addr) { argument 183 return insnFlags[addr] & kInsnFlagWidthMask; 189 INLINE bool dvmInsnIsChanged(const InsnFlags* insnFlags, int addr) { argument 190 return (insnFlags[addr] & kInsnFlagChanged) != 0; 192 INLINE void dvmInsnSetChanged(InsnFlags* insnFlags, int addr, bool changed) argument 195 insnFlags[addr] |= kInsnFlagChanged; 197 insnFlags[add 203 dvmInsnIsVisited(const InsnFlags* insnFlags, int addr) argument 206 dvmInsnSetVisited(InsnFlags* insnFlags, int addr, bool changed) argument 217 dvmInsnIsVisitedOrChanged(const InsnFlags* insnFlags, int addr) argument 224 dvmInsnIsInTry(const InsnFlags* insnFlags, int addr) argument 227 dvmInsnSetInTry(InsnFlags* insnFlags, int addr, bool inTry) argument 239 dvmInsnIsBranchTarget(const InsnFlags* insnFlags, int addr) argument 242 dvmInsnSetBranchTarget(InsnFlags* insnFlags, int addr, bool isBranch) argument 255 dvmInsnIsGcPoint(const InsnFlags* insnFlags, int addr) argument 258 dvmInsnSetGcPoint(InsnFlags* insnFlags, int addr, bool isGcPoint) argument [all...] |
H A D | VerifySubs.h | 43 bool dvmComputeCodeWidths(const Method* meth, InsnFlags* insnFlags, 47 bool dvmSetTryFlags(const Method* meth, InsnFlags* insnFlags); 50 bool dvmCheckSwitchTargets(const Method* meth, InsnFlags* insnFlags, 54 bool dvmCheckBranchTarget(const Method* meth, InsnFlags* insnFlags, 73 bool dvmGetBranchTarget(const Method* meth, InsnFlags* insnFlags,
|
H A D | DexVerify.c | 135 vdata.insnFlags = NULL; 170 vdata.insnFlags = (InsnFlags*) 172 if (vdata.insnFlags == NULL) 176 * Compute the width of each instruction and store the result in insnFlags. 180 if (!dvmComputeCodeWidths(meth, vdata.insnFlags, &newInstanceCount)) 186 vdata.uninitMap = dvmCreateUninitInstanceMap(meth, vdata.insnFlags, 194 if (!dvmSetTryFlags(meth, vdata.insnFlags)) 221 free(vdata.insnFlags); 494 InsnFlags* insnFlags = vdata->insnFlags; local [all...] |
H A D | VerifySubs.c | 30 * initialize "insnFlags" to zero). 43 bool dvmComputeCodeWidths(const Method* meth, InsnFlags* insnFlags, argument 69 insnFlags[i] |= width; 91 * Call this after widths have been set in "insnFlags". 96 bool dvmSetTryFlags(const Method* meth, InsnFlags* insnFlags) argument 126 if (dvmInsnGetWidth(insnFlags, start) == 0) { 134 addr += dvmInsnGetWidth(insnFlags, addr)) 136 assert(dvmInsnGetWidth(insnFlags, addr) != 0); 137 dvmInsnSetInTry(insnFlags, addr, true); 156 if (dvmInsnGetWidth(insnFlags, add 176 dvmCheckSwitchTargets(const Method* meth, InsnFlags* insnFlags, int curOffset) argument 293 dvmCheckBranchTarget(const Method* meth, InsnFlags* insnFlags, int curOffset, bool selfOkay) argument 392 dvmGetBranchTarget(const Method* meth, InsnFlags* insnFlags, int curOffset, int* pOffset, bool* pConditional) argument [all...] |
H A D | RegisterMap.c | 228 if (dvmInsnIsGcPoint(vdata->insnFlags, i)) 258 if (dvmInsnIsGcPoint(vdata->insnFlags, i)) { 1936 InsnFlags* insnFlags; 1970 InsnFlags* insnFlags = pState->insnFlags; 1977 if (!dvmComputeCodeWidths(meth, pState->insnFlags, NULL)) 1981 if (!dvmSetTryFlags(meth, pState->insnFlags)) 1985 dvmInsnSetBranchTarget(insnFlags, 0, true); 2004 if (!dvmCheckBranchTarget(meth, insnFlags, offset, true)) 2008 if (!dvmCheckSwitchTargets(meth, insnFlags, offse [all...] |
H A D | CodeVerify.c | 126 static bool doCodeVerification(const Method* meth, InsnFlags* insnFlags,\ 128 static bool verifyInstruction(const Method* meth, InsnFlags* insnFlags,\ 132 static void dumpRegTypes(const Method* meth, const InsnFlags* insnFlags,\ 370 const InsnFlags* insnFlags, int newInstanceCount) 407 int width = dvmInsnGetWidth(insnFlags, addr); 2431 static void updateRegisters(const Method* meth, InsnFlags* insnFlags, argument 2438 if (!dvmInsnIsBranchTarget(insnFlags, nextInsn)) { 2439 LOGE("insnFlags[0x%x]=0x%08x\n", nextInsn, insnFlags[nextInsn]); 2446 if (!dvmInsnIsVisitedOrChanged(insnFlags, nextIns 369 dvmCreateUninitInstanceMap(const Method* meth, const InsnFlags* insnFlags, int newInstanceCount) argument 2812 initRegisterTable(const Method* meth, const InsnFlags* insnFlags, RegisterTable* regTable, RegisterTrackingMode trackRegsFor) argument 2968 replaceFailingInstruction(const Method* meth, InsnFlags* insnFlags, int insnIdx, VerifyError failure) argument 3233 doCodeVerification(const Method* meth, InsnFlags* insnFlags, RegisterTable* regTable, UninitInstanceMap* uninitMap) argument 3467 verifyInstruction(const Method* meth, InsnFlags* insnFlags, RegisterTable* regTable, RegType* workRegs, int insnIdx, UninitInstanceMap* uninitMap, int* pStartGuess) argument 5685 dumpRegTypes(const Method* meth, const InsnFlags* insnFlags, const RegType* addrRegs, int addr, const char* addrName, const UninitInstanceMap* uninitMap, int displayFlags) argument [all...] |