Lines Matching refs:lir
936 ArmLIR *lir; in assembleInstructions() local
938 for (lir = (ArmLIR *) cUnit->firstLIRInsn; lir; lir = NEXT_LIR(lir)) { in assembleInstructions()
939 if (lir->opcode < 0) { in assembleInstructions()
940 if ((lir->opcode == kArmPseudoPseudoAlign4) && in assembleInstructions()
942 (lir->operands[0] == 1)) { in assembleInstructions()
948 if (lir->flags.isNop) { in assembleInstructions()
952 if (lir->opcode == kThumbLdrPcRel || in assembleInstructions()
953 lir->opcode == kThumb2LdrPcRel12 || in assembleInstructions()
954 lir->opcode == kThumbAddPcRel || in assembleInstructions()
955 ((lir->opcode == kThumb2Vldrs) && (lir->operands[1] == r15pc))) { in assembleInstructions()
956 ArmLIR *lirTarget = (ArmLIR *) lir->generic.target; in assembleInstructions()
957 intptr_t pc = (lir->generic.offset + 4) & ~3; in assembleInstructions()
964 if ((lir->opcode == kThumb2LdrPcRel12) && (delta > 4091)) { in assembleInstructions()
966 LOGD("kThumb2LdrPcRel12@%x: delta=%d", lir->generic.offset, in assembleInstructions()
973 LOGD("kThumbLdrPcRel@%x: delta=%d", lir->generic.offset, in assembleInstructions()
979 if (lir->opcode == kThumb2Vldrs) { in assembleInstructions()
980 lir->operands[2] = delta >> 2; in assembleInstructions()
982 lir->operands[1] = (lir->opcode == kThumb2LdrPcRel12) ? in assembleInstructions()
985 } else if (lir->opcode == kThumb2Cbnz || lir->opcode == kThumb2Cbz) { in assembleInstructions()
986 ArmLIR *targetLIR = (ArmLIR *) lir->generic.target; in assembleInstructions()
987 intptr_t pc = lir->generic.offset + 4; in assembleInstructions()
997 newInst->operands[1] = (lir->opcode == kThumb2Cbz) ? in assembleInstructions()
999 newInst->generic.target = lir->generic.target; in assembleInstructions()
1001 dvmCompilerInsertLIRAfter((LIR *)lir, (LIR *)newInst); in assembleInstructions()
1003 lir->opcode = kThumbCmpRI8; in assembleInstructions()
1005 lir->operands[1] = 0; in assembleInstructions()
1006 lir->generic.target = 0; in assembleInstructions()
1007 dvmCompilerSetupResourceMasks(lir); in assembleInstructions()
1010 lir->generic.offset, delta); in assembleInstructions()
1015 lir->operands[1] = delta >> 1; in assembleInstructions()
1017 } else if (lir->opcode == kThumbBCond || in assembleInstructions()
1018 lir->opcode == kThumb2BCond) { in assembleInstructions()
1019 ArmLIR *targetLIR = (ArmLIR *) lir->generic.target; in assembleInstructions()
1020 intptr_t pc = lir->generic.offset + 4; in assembleInstructions()
1023 if ((lir->opcode == kThumbBCond) && (delta > 254 || delta < -256)) { in assembleInstructions()
1025 LOGD("kThumbBCond@%x: delta=%d", lir->generic.offset, in assembleInstructions()
1031 lir->operands[0] = delta >> 1; in assembleInstructions()
1032 } else if (lir->opcode == kThumbBUncond) { in assembleInstructions()
1033 ArmLIR *targetLIR = (ArmLIR *) lir->generic.target; in assembleInstructions()
1034 intptr_t pc = lir->generic.offset + 4; in assembleInstructions()
1041 lir->operands[0] = delta >> 1; in assembleInstructions()
1042 } else if (lir->opcode == kThumbBlx1) { in assembleInstructions()
1043 assert(NEXT_LIR(lir)->opcode == kThumbBlx2); in assembleInstructions()
1045 intptr_t curPC = (startAddr + lir->generic.offset + 4) & ~3; in assembleInstructions()
1046 intptr_t target = lir->operands[1]; in assembleInstructions()
1055 lir->operands[0] = (delta >> 12) & 0x7ff; in assembleInstructions()
1056 NEXT_LIR(lir)->operands[0] = (delta>> 1) & 0x7ff; in assembleInstructions()
1057 } else if (lir->opcode == kThumbBl1) { in assembleInstructions()
1058 assert(NEXT_LIR(lir)->opcode == kThumbBl2); in assembleInstructions()
1060 intptr_t curPC = startAddr + lir->generic.offset + 4; in assembleInstructions()
1061 intptr_t target = lir->operands[1]; in assembleInstructions()
1066 lir->operands[0] = (delta >> 12) & 0x7ff; in assembleInstructions()
1067 NEXT_LIR(lir)->operands[0] = (delta>> 1) & 0x7ff; in assembleInstructions()
1070 ArmEncodingMap *encoder = &EncodingMap[lir->opcode]; in assembleInstructions()
1076 operand = lir->operands[i]; in assembleInstructions()
1171 static int assignLiteralOffsetCommon(LIR *lir, int offset) in assignLiteralOffsetCommon() argument
1173 for (;lir != NULL; lir = lir->next) { in assignLiteralOffsetCommon()
1174 lir->offset = offset; in assignLiteralOffsetCommon()