Home | History | Annotate | Download | only in arm

Lines Matching full:cunit

905 static void installLiteralPools(CompilationUnit *cUnit)
907 int *dataPtr = (int *) ((char *) cUnit->baseAddr + cUnit->dataOffset);
909 *dataPtr++ = cUnit->numClassPointers;
910 ArmLIR *dataLIR = (ArmLIR *) cUnit->classPointerList;
919 dataLIR = (ArmLIR *) cUnit->literalList;
932 static AssemblerStatus assembleInstructions(CompilationUnit *cUnit,
935 short *bufferAddr = (short *) cUnit->codeBuffer;
938 for (lir = (ArmLIR *) cUnit->firstLIRInsn; lir; lir = NEXT_LIR(lir)) {
962 dvmCompilerAbort(cUnit);
965 if (cUnit->printMe) {
968 dvmCompilerCodegenDump(cUnit);
972 if (cUnit->printMe) {
975 dvmCompilerCodegenDump(cUnit);
1008 if (cUnit->printMe) {
1011 dvmCompilerCodegenDump(cUnit);
1024 if (cUnit->printMe) {
1027 dvmCompilerCodegenDump(cUnit);
1039 dvmCompilerAbort(cUnit);
1181 static int assignLiteralOffset(CompilationUnit *cUnit, int offset)
1185 offset = assignLiteralOffsetCommon(cUnit->classPointerList, offset);
1186 offset = assignLiteralOffsetCommon(cUnit->literalList, offset);
1324 static void matchSignatureBreakpoint(const CompilationUnit *cUnit,
1328 u4 *ptr = (u4 *) cUnit->codeBuffer;
1340 int descSize = getTraceDescriptionSize(cUnit->traceDesc);
1343 memcpy(newCopy, cUnit->traceDesc, descSize);
1357 void dvmCompilerAssembleLIR(CompilationUnit *cUnit, JitTranslationInfo *info)
1363 int descSize = (cUnit->jitMode == kJitMethod) ?
1364 0 : getTraceDescriptionSize(cUnit->traceDesc);
1367 info->instructionSet = cUnit->instructionSet;
1370 for (armLIR = (ArmLIR *) cUnit->firstLIRInsn;
1394 if (cUnit->jitMode != kJitMethod) {
1400 chainingCellGap = (offset - cUnit->chainingCellBottom->offset) >> 2;
1403 chainCellOffsetLIR = (ArmLIR *) cUnit->chainCellOffsetLIR;
1421 cUnit->dataOffset = offset;
1427 offset = assignLiteralOffset(cUnit, offset);
1429 cUnit->totalSize = offset;
1431 if (gDvmJit.codeCacheByteUsed + cUnit->totalSize > gDvmJit.codeCacheSize) {
1438 cUnit->codeBuffer = (unsigned char *)dvmCompilerNew(chainCellOffset, true);
1439 if (cUnit->codeBuffer == NULL) {
1449 cUnit->assemblerStatus = assembleInstructions(cUnit,
1452 switch(cUnit->assemblerStatus) {
1456 if (cUnit->assemblerRetries < MAX_ASSEMBLER_RETRIES) {
1457 if (cUnit->jitMode != kJitMethod) {
1464 cUnit->assemblerRetries = 0;
1465 cUnit->assemblerStatus = kRetryHalve;
1470 ALOGE("Unexpected assembler status: %d", cUnit->assemblerStatus);
1477 matchSignatureBreakpoint(cUnit, chainCellOffset/4);
1500 cUnit->baseAddr = (char *) gDvmJit.codeCache + gDvmJit.codeCacheByteUsed;
1503 UNPROTECT_CODE_CACHE(cUnit->baseAddr, offset);
1506 memcpy((char*)cUnit->baseAddr, cUnit->codeBuffer, chainCellOffset);
1509 if (cUnit->jitMode != kJitMethod) {
1512 chainCellCounts.u.count[i] = cUnit->numChainingCells[i];
1518 memcpy((char*)cUnit->baseAddr + chainCellOffset, &chainCellCounts,
1522 memcpy((char*) cUnit->baseAddr + chainCellOffset +
1524 cUnit->traceDesc, descSize);
1528 installLiteralPools(cUnit);
1531 dvmCompilerCacheFlush((long)cUnit->baseAddr,
1532 (long)((char *) cUnit->baseAddr + offset), 0);
1535 PROTECT_CODE_CACHE(cUnit->baseAddr, offset);
1541 info->codeAddress = (char*)cUnit->baseAddr + cUnit->headerSize;
1546 info->profileCodeSize = cUnit->profileCodeSize;
2267 void dvmJitInstallClassObjectPointers(CompilationUnit *cUnit, char *codeAddress)
2269 char *base = codeAddress - cUnit->headerSize -
2270 (cUnit->instructionSet == DALVIK_JIT_ARM ? 0 : 1);