Lines Matching refs:ra
96 int ra;
99 ra = (instr >> 16) & 0x1f;
101 if (ra) {
102 ea += regs->gpr[ra];
104 regs->gpr[ra] = ea;
116 int ra;
119 ra = (instr >> 16) & 0x1f;
121 if (ra) {
122 ea += regs->gpr[ra];
124 regs->gpr[ra] = ea;
137 int ra, rb;
140 ra = (instr >> 16) & 0x1f;
143 if (ra) {
144 ea += regs->gpr[ra];
146 regs->gpr[ra] = ea;
563 unsigned int opcode, ra, rb, rd, spr, u;
645 ra = (instr >> 16) & 0x1f;
648 ra = (regs->ccr >> (31 - ra)) & 1;
650 val = (instr >> (6 + ra * 2 + rb)) & 1;
684 ra = (instr >> 16) & 0x1f;
689 regs->gpr[rd] = regs->gpr[ra] * (short) instr;
694 add_with_carry(regs, rd, ~regs->gpr[ra], imm, 1);
699 val = regs->gpr[ra];
709 val = regs->gpr[ra];
719 add_with_carry(regs, rd, regs->gpr[ra], imm, 0);
724 add_with_carry(regs, rd, regs->gpr[ra], imm, 0);
730 if (ra)
731 imm += regs->gpr[ra];
737 if (ra)
738 imm += regs->gpr[ra];
747 regs->gpr[ra] = (regs->gpr[ra] & ~imm) | (ROTATE(val, rb) & imm);
754 regs->gpr[ra] = ROTATE(val, rb) & MASK32(mb, me);
762 regs->gpr[ra] = ROTATE(val, rb) & MASK32(mb, me);
767 regs->gpr[ra] = regs->gpr[rd] | imm;
772 regs->gpr[ra] = regs->gpr[rd] | (imm << 16);
777 regs->gpr[ra] = regs->gpr[rd] ^ imm;
782 regs->gpr[ra] = regs->gpr[rd] ^ (imm << 16);
787 regs->gpr[ra] = regs->gpr[rd] & imm;
788 set_cr0(regs, ra);
793 regs->gpr[ra] = regs->gpr[rd] & (imm << 16);
794 set_cr0(regs, ra);
806 regs->gpr[ra] = val & MASK64_L(mb);
809 regs->gpr[ra] = val & MASK64_R(mb);
812 regs->gpr[ra] = val & MASK64(mb, 63 - sh);
816 regs->gpr[ra] = (regs->gpr[ra] & ~imm) |
825 regs->gpr[ra] = val & MASK64_L(mb);
828 regs->gpr[ra] = val & MASK64_R(mb);
916 val = regs->gpr[ra];
929 val = regs->gpr[ra];
945 add_with_carry(regs, rd, ~regs->gpr[ra],
951 "r" (regs->gpr[ra]), "r" (regs->gpr[rb]));
955 add_with_carry(regs, rd, regs->gpr[ra],
961 "r" (regs->gpr[ra]), "r" (regs->gpr[rb]));
965 regs->gpr[rd] = regs->gpr[rb] - regs->gpr[ra];
970 "r" (regs->gpr[ra]), "r" (regs->gpr[rb]));
975 "r" (regs->gpr[ra]), "r" (regs->gpr[rb]));
979 regs->gpr[rd] = -regs->gpr[ra];
983 add_with_carry(regs, rd, ~regs->gpr[ra], regs->gpr[rb],
988 add_with_carry(regs, rd, regs->gpr[ra], regs->gpr[rb],
993 add_with_carry(regs, rd, ~regs->gpr[ra], 0L,
998 add_with_carry(regs, rd, regs->gpr[ra], 0L,
1003 add_with_carry(regs, rd, ~regs->gpr[ra], -1L,
1008 regs->gpr[rd] = regs->gpr[ra] * regs->gpr[rb];
1012 add_with_carry(regs, rd, regs->gpr[ra], -1L,
1017 regs->gpr[rd] = (unsigned int) regs->gpr[ra] *
1022 regs->gpr[rd] = regs->gpr[ra] + regs->gpr[rb];
1026 regs->gpr[rd] = regs->gpr[ra] / regs->gpr[rb];
1030 regs->gpr[rd] = (unsigned int) regs->gpr[ra] /
1035 regs->gpr[rd] = (long int) regs->gpr[ra] /
1040 regs->gpr[rd] = (int) regs->gpr[ra] /
1049 asm("cntlzw %0,%1" : "=r" (regs->gpr[ra]) :
1054 asm("cntlzd %0,%1" : "=r" (regs->gpr[ra]) :
1059 regs->gpr[ra] = regs->gpr[rd] & regs->gpr[rb];
1063 regs->gpr[ra] = regs->gpr[rd] & ~regs->gpr[rb];
1067 regs->gpr[ra] = ~(regs->gpr[rd] | regs->gpr[rb]);
1071 regs->gpr[ra] = ~(regs->gpr[rd] ^ regs->gpr[rb]);
1075 regs->gpr[ra] = regs->gpr[rd] ^ regs->gpr[rb];
1079 regs->gpr[ra] = regs->gpr[rd] | ~regs->gpr[rb];
1083 regs->gpr[ra] = regs->gpr[rd] | regs->gpr[rb];
1087 regs->gpr[ra] = ~(regs->gpr[rd] & regs->gpr[rb]);
1091 regs->gpr[ra] = (signed short) regs->gpr[rd];
1095 regs->gpr[ra] = (signed char) regs->gpr[rd];
1099 regs->gpr[ra] = (signed int) regs->gpr[rd];
1109 regs->gpr[ra] = (regs->gpr[rd] << sh) & 0xffffffffUL;
1111 regs->gpr[ra] = 0;
1117 regs->gpr[ra] = (regs->gpr[rd] & 0xffffffffUL) >> sh;
1119 regs->gpr[ra] = 0;
1125 regs->gpr[ra] = ival >> (sh < 32 ? sh : 31);
1135 regs->gpr[ra] = ival >> sh;
1146 regs->gpr[ra] = regs->gpr[rd] << sh;
1148 regs->gpr[ra] = 0;
1154 regs->gpr[ra] = regs->gpr[rd] >> sh;
1156 regs->gpr[ra] = 0;
1162 regs->gpr[ra] = ival >> (sh < 64 ? sh : 63);
1173 regs->gpr[ra] = ival >> sh;
1233 old_ra = regs->gpr[ra];
1519 ra = (instr >> 16) & 0x1f;
1520 if (ra >= rd)
1521 break; /* invalid form, ra in range to load */
1613 regs->gpr[ra] = old_ra;
1622 set_cr0(regs, ra);