/dalvik/vm/analysis/ |
H A D | CodeVerify.h | 117 INLINE bool dvmInsnIsOpcode(const InsnFlags* insnFlags, int addr) { argument 118 return (insnFlags[addr] & kInsnFlagWidthMask) != 0; 124 INLINE int dvmInsnGetWidth(const InsnFlags* insnFlags, int addr) { argument 125 return insnFlags[addr] & kInsnFlagWidthMask; 131 INLINE bool dvmInsnIsChanged(const InsnFlags* insnFlags, int addr) { argument 132 return (insnFlags[addr] & kInsnFlagChanged) != 0; 134 INLINE void dvmInsnSetChanged(InsnFlags* insnFlags, int addr, bool changed) argument 137 insnFlags[addr] |= kInsnFlagChanged; 139 insnFlags[addr] &= ~kInsnFlagChanged; 145 INLINE bool dvmInsnIsVisited(const InsnFlags* insnFlags, in argument 148 dvmInsnSetVisited(InsnFlags* insnFlags, int addr, bool changed) argument 159 dvmInsnIsVisitedOrChanged(const InsnFlags* insnFlags, int addr) argument 166 dvmInsnIsInTry(const InsnFlags* insnFlags, int addr) argument 169 dvmInsnSetInTry(InsnFlags* insnFlags, int addr, bool inTry) argument 181 dvmInsnIsBranchTarget(const InsnFlags* insnFlags, int addr) argument 184 dvmInsnSetBranchTarget(InsnFlags* insnFlags, int addr, bool isBranch) argument 197 dvmInsnIsGcPoint(const InsnFlags* insnFlags, int addr) argument 200 dvmInsnSetGcPoint(InsnFlags* insnFlags, int addr, bool isGcPoint) argument [all...] |
H A D | VerifySubs.h | 41 bool dvmComputeCodeWidths(const Method* meth, InsnFlags* insnFlags, 45 bool dvmSetTryFlags(const Method* meth, InsnFlags* insnFlags); 48 bool dvmCheckSwitchTargets(const Method* meth, InsnFlags* insnFlags, 52 bool dvmCheckBranchTarget(const Method* meth, InsnFlags* insnFlags, 71 bool dvmGetBranchTarget(const Method* meth, InsnFlags* insnFlags,
|
H A D | VerifySubs.c | 30 * initialize "insnFlags" to zero). 37 bool dvmComputeCodeWidths(const Method* meth, InsnFlags* insnFlags, argument 86 insnFlags[i] |= width; 108 * Call this after widths have been set in "insnFlags". 113 bool dvmSetTryFlags(const Method* meth, InsnFlags* insnFlags) argument 144 if (dvmInsnGetWidth(insnFlags, start) == 0) { 152 addr += dvmInsnGetWidth(insnFlags, addr)) 154 assert(dvmInsnGetWidth(insnFlags, addr) != 0); 155 dvmInsnSetInTry(insnFlags, addr, true); 174 if (dvmInsnGetWidth(insnFlags, add 194 dvmCheckSwitchTargets(const Method* meth, InsnFlags* insnFlags, int curOffset) argument 310 dvmCheckBranchTarget(const Method* meth, InsnFlags* insnFlags, int curOffset, bool selfOkay) argument 410 dvmGetBranchTarget(const Method* meth, InsnFlags* insnFlags, int curOffset, int* pOffset, bool* pConditional) argument [all...] |
H A D | DexVerify.c | 27 static bool verifyInstructions(const Method* meth, InsnFlags* insnFlags, 179 InsnFlags* insnFlags = NULL; local 213 insnFlags = (InsnFlags*) 215 if (insnFlags == NULL) 219 * Compute the width of each instruction and store the result in insnFlags. 223 if (!dvmComputeCodeWidths(meth, insnFlags, &newInstanceCount)) 229 uninitMap = dvmCreateUninitInstanceMap(meth, insnFlags, newInstanceCount); 236 if (!dvmSetTryFlags(meth, insnFlags)) 242 if (!verifyInstructions(meth, insnFlags, verifyFlags)) 253 if (!dvmVerifyCodeFlow(meth, insnFlags, uninitMa 533 verifyInstructions(const Method* meth, InsnFlags* insnFlags, int verifyFlags) argument [all...] |
H A D | RegisterMap.c | 227 if (dvmInsnIsGcPoint(vdata->insnFlags, i)) 257 if (dvmInsnIsGcPoint(vdata->insnFlags, i)) { 1938 InsnFlags* insnFlags; 1972 InsnFlags* insnFlags = pState->insnFlags; 1979 if (!dvmComputeCodeWidths(meth, pState->insnFlags, NULL)) 1983 if (!dvmSetTryFlags(meth, pState->insnFlags)) 1987 dvmInsnSetBranchTarget(insnFlags, 0, true); 2006 if (!dvmCheckBranchTarget(meth, insnFlags, offset, true)) 2010 if (!dvmCheckSwitchTargets(meth, insnFlags, offse [all...] |
H A D | CodeVerify.c | 123 static bool doCodeVerification(Method* meth, InsnFlags* insnFlags,\ 125 static bool verifyInstruction(Method* meth, InsnFlags* insnFlags,\ 129 static void dumpRegTypes(const Method* meth, const InsnFlags* insnFlags,\ 367 const InsnFlags* insnFlags, int newInstanceCount) 404 int width = dvmInsnGetWidth(insnFlags, addr); 2401 static void updateRegisters(const Method* meth, InsnFlags* insnFlags, argument 2408 if (!dvmInsnIsBranchTarget(insnFlags, nextInsn)) { 2409 LOGE("insnFlags[0x%x]=0x%08x\n", nextInsn, insnFlags[nextInsn]); 2416 if (!dvmInsnIsVisitedOrChanged(insnFlags, nextIns 366 dvmCreateUninitInstanceMap(const Method* meth, const InsnFlags* insnFlags, int newInstanceCount) argument 2782 initRegisterTable(const Method* meth, const InsnFlags* insnFlags, RegisterTable* regTable, RegisterTrackingMode trackRegsFor) argument 2937 replaceFailingInstruction(Method* meth, InsnFlags* insnFlags, int insnIdx, VerifyError failure) argument 3057 dvmVerifyCodeFlow(Method* meth, InsnFlags* insnFlags, UninitInstanceMap* uninitMap) argument 3211 doCodeVerification(Method* meth, InsnFlags* insnFlags, RegisterTable* regTable, UninitInstanceMap* uninitMap) argument 3446 verifyInstruction(Method* meth, InsnFlags* insnFlags, RegisterTable* regTable, RegType* workRegs, int insnIdx, UninitInstanceMap* uninitMap, int* pStartGuess) argument 5672 dumpRegTypes(const Method* meth, const InsnFlags* insnFlags, const RegType* addrRegs, int addr, const char* addrName, const UninitInstanceMap* uninitMap, int displayFlags) argument [all...] |
H A D | RegisterMap.h | 264 InsnFlags* insnFlags; member in struct:VerifierData
|