Home | History | Annotate | Download | only in mips

Lines Matching defs:lir

431  * Assemble the LIR into binary instruction format.  Note that we may
440 MipsLIR *lir;
442 for (lir = (MipsLIR *) cUnit->firstLIRInsn; lir; lir = NEXT_LIR(lir)) {
443 if (lir->opcode < 0) {
448 if (lir->flags.isNop) {
452 if (lir->opcode == kMipsB || lir->opcode == kMipsBal) {
453 MipsLIR *targetLIR = (MipsLIR *) lir->generic.target;
454 intptr_t pc = lir->generic.offset + 4;
465 lir->operands[0] = delta >> 2;
466 } else if (lir->opcode >= kMipsBeqz && lir->opcode <= kMipsBnez) {
467 MipsLIR *targetLIR = (MipsLIR *) lir->generic.target;
468 intptr_t pc = lir->generic.offset + 4;
479 lir->operands[1] = delta >> 2;
480 } else if (lir->opcode == kMipsBeq || lir->opcode == kMipsBne) {
481 MipsLIR *targetLIR = (MipsLIR *) lir->generic.target;
482 intptr_t pc = lir->generic.offset + 4;
493 lir->operands[2] = delta >> 2;
494 } else if (lir->opcode == kMipsJal) {
495 intptr_t curPC = (startAddr + lir->generic.offset + 4) & ~3;
496 intptr_t target = lir->operands[0];
503 lir->operands[0] = target >> 2;
504 } else if (lir->opcode == kMipsLahi) { /* load address hi (via lui) */
505 MipsLIR *targetLIR = (MipsLIR *) lir->generic.target;
507 lir->operands[1] = target >> 16;
508 } else if (lir->opcode == kMipsLalo) { /* load address lo (via ori) */
509 MipsLIR *targetLIR = (MipsLIR *) lir->generic.target;
511 lir->operands[2] = lir->operands[2] + target;
515 MipsEncodingMap *encoder = &EncodingMap[lir->opcode];
521 operand = lir->operands[i];
558 static int assignLiteralOffsetCommon(LIR *lir, int offset)
560 for (;lir != NULL; lir = lir->next) {
561 lir->offset = offset;
789 * Adjust the CHAIN_CELL_OFFSET_TAG LIR's offset to remove the