Lines Matching full:pmap
41 static bool verifyMap(VerifierData* vdata, const RegisterMap* pMap);
44 static void computeMapStats(RegisterMap* pMap, const Method* method);
45 static RegisterMap* compressMapDifferential(const RegisterMap* pMap,\
47 static RegisterMap* uncompressMapDifferential(const RegisterMap* pMap);
189 RegisterMap* pMap = NULL;
246 pMap = (RegisterMap*) malloc(bufSize);
247 dvmRegisterMapSetFormat(pMap, format);
248 dvmRegisterMapSetOnHeap(pMap, true);
249 dvmRegisterMapSetRegWidth(pMap, regWidth);
250 dvmRegisterMapSetNumEntries(pMap, gcPointCount);
255 mapData = pMap->data;
270 LOGV("mapData=%p pMap=%p bufSize=%d\n", mapData, pMap, bufSize);
271 assert(mapData - (const u1*) pMap == bufSize);
273 if (REGISTER_MAP_VERIFY && !verifyMap(vdata, pMap))
276 computeMapStats(pMap, vdata->method);
284 pCompMap = compressMapDifferential(pMap, vdata->method);
301 if (compareMaps(pMap, pUncompMap) != 0) {
320 free(pMap);
321 pMap = pCompMap;
327 dvmRegisterMapGetNumEntries(pMap),
328 dvmRegisterMapGetRegWidth(pMap));
332 pResult = pMap;
341 void dvmFreeRegisterMap(RegisterMap* pMap)
343 if (pMap == NULL)
346 assert(dvmRegisterMapGetOnHeap(pMap));
347 free(pMap);
396 static void dumpRegisterMap(const RegisterMap* pMap, int registersSize)
398 const u1* rawMap = pMap->data;
399 const RegisterMapFormat format = dvmRegisterMapGetFormat(pMap);
400 const int numEntries = dvmRegisterMapGetNumEntries(pMap);
401 const int regWidth = dvmRegisterMapGetRegWidth(pMap);
463 static bool verifyMap(VerifierData* vdata, const RegisterMap* pMap)
465 const u1* rawMap = pMap->data;
466 const RegisterMapFormat format = dvmRegisterMapGetFormat(pMap);
467 const int numEntries = dvmRegisterMapGetNumEntries(pMap);
488 if ((vdata->method->registersSize + 7) / 8 != pMap->regWidth) {
490 vdata->method->registersSize, pMap->regWidth);
546 dumpRegisterMap(pMap, vdata->method->registersSize);
569 static size_t computeRegisterMapSize(const RegisterMap* pMap)
572 u1 format = dvmRegisterMapGetFormat(pMap);
573 pMap);
575 assert(pMap != NULL);
581 return kHeaderSize + (1 + pMap->regWidth) * numEntries;
583 return kHeaderSize + (2 + pMap->regWidth) * numEntries;
587 const u1* ptr = pMap->data;
589 return len + (ptr - (u1*) pMap);
873 const RegisterMap* pMap = *pPtr;
875 *pPtr = /*align32*/(((u1*) pMap) + computeRegisterMapSize(pMap));
877 pMap, *pPtr, pMap->format, pMap->regWidth,
878 dvmRegisterMapGetNumEntries(pMap));
879 return pMap;
894 const u1* dvmRegisterMapGetLine(const RegisterMap* pMap, int addr)
897 u1 format = dvmRegisterMapGetFormat(pMap);
898 u2 numEntries = dvmRegisterMapGetNumEntries(pMap);
917 lineWidth = addrWidth + pMap->regWidth;
929 data = pMap->data;
939 assert(data == pMap->data + lineWidth * numEntries);
948 data = pMap->data + lineWidth * mid;
1246 static void computeMapStats(RegisterMap* pMap, const Method* method)
1250 const u1 format = dvmRegisterMapGetFormat(pMap);
1251 const u2 numEntries = dvmRegisterMapGetNumEntries(pMap);
1252 const u1* rawMap = pMap->data;
1311 for (regByte = 0; regByte < pMap->regWidth; regByte++) {
1359 rawMap += pMap->regWidth;
1442 static RegisterMap* compressMapDifferential(const RegisterMap* pMap,
1446 int origSize = computeRegisterMapSize(pMap);
1459 u1 format = dvmRegisterMapGetFormat(pMap);
1472 regWidth = dvmRegisterMapGetRegWidth(pMap);
1473 numEntries = dvmRegisterMapGetNumEntries(pMap);
1479 dumpRegisterMap(pMap, -1);
1510 const u1* mapData = pMap->data;
1674 computeRegisterMapSize(pMap), computeRegisterMapSize(pNewMap),
1699 static RegisterMap* uncompressMapDifferential(const RegisterMap* pMap)
1703 u1 format = dvmRegisterMapGetFormat(pMap);
1712 regWidth = dvmRegisterMapGetRegWidth(pMap);
1713 numEntries = dvmRegisterMapGetNumEntries(pMap);
1716 const u1* srcPtr = pMap->data;
1831 computeRegisterMapSize(pMap), computeRegisterMapSize(pNewMap));
1958 static bool generateMap(WorkState* pState, RegisterMap* pMap);
2032 RegisterMap* pMap = NULL;
2040 pMap = (RegisterMap*) calloc(1, sizeof(RegisterMap));
2041 if (pMap == NULL)
2086 if (!generateMap(pState, pMap))
2090 result = pMap;
2091 pMap = NULL;
2100 if (pMap != NULL)
2101 dvmFreeRegisterMap(pMap);
2108 void dvmFreeRegisterMap(RegisterMap* pMap)
2110 if (pMap == NULL)
2118 static bool generateMap(WorkState* pState, RegisterMap* pMap)