Lines Matching refs:ra
96 int ra; in dform_ea() local
99 ra = (instr >> 16) & 0x1f; in dform_ea()
101 if (ra) in dform_ea()
102 ea += regs->gpr[ra]; in dform_ea()
113 int ra; in dsform_ea() local
116 ra = (instr >> 16) & 0x1f; in dsform_ea()
118 if (ra) in dsform_ea()
119 ea += regs->gpr[ra]; in dsform_ea()
131 int ra, rb; in xform_ea() local
134 ra = (instr >> 16) & 0x1f; in xform_ea()
137 if (ra) in xform_ea()
138 ea += regs->gpr[ra]; in xform_ea()
645 unsigned int opcode, ra, rb, rd, spr, u; in analyse_instr() local
691 ra = (instr >> 16) & 0x1c; in analyse_instr()
692 val = (regs->ccr >> ra) & 0xf; in analyse_instr()
727 ra = (instr >> 16) & 0x1f; in analyse_instr()
730 ra = (regs->ccr >> (31 - ra)) & 1; in analyse_instr()
732 val = (instr >> (6 + ra * 2 + rb)) & 1; in analyse_instr()
768 ra = (instr >> 16) & 0x1f; in analyse_instr()
774 if (rd & trap_compare(regs->gpr[ra], (short) instr)) in analyse_instr()
779 if (rd & trap_compare((int)regs->gpr[ra], (short) instr)) in analyse_instr()
784 regs->gpr[rd] = regs->gpr[ra] * (short) instr; in analyse_instr()
789 add_with_carry(regs, rd, ~regs->gpr[ra], imm, 1); in analyse_instr()
794 val = regs->gpr[ra]; in analyse_instr()
804 val = regs->gpr[ra]; in analyse_instr()
814 add_with_carry(regs, rd, regs->gpr[ra], imm, 0); in analyse_instr()
819 add_with_carry(regs, rd, regs->gpr[ra], imm, 0); in analyse_instr()
825 if (ra) in analyse_instr()
826 imm += regs->gpr[ra]; in analyse_instr()
832 if (ra) in analyse_instr()
833 imm += regs->gpr[ra]; in analyse_instr()
842 regs->gpr[ra] = (regs->gpr[ra] & ~imm) | (ROTATE(val, rb) & imm); in analyse_instr()
849 regs->gpr[ra] = ROTATE(val, rb) & MASK32(mb, me); in analyse_instr()
857 regs->gpr[ra] = ROTATE(val, rb) & MASK32(mb, me); in analyse_instr()
862 regs->gpr[ra] = regs->gpr[rd] | imm; in analyse_instr()
867 regs->gpr[ra] = regs->gpr[rd] | (imm << 16); in analyse_instr()
872 regs->gpr[ra] = regs->gpr[rd] ^ imm; in analyse_instr()
877 regs->gpr[ra] = regs->gpr[rd] ^ (imm << 16); in analyse_instr()
882 regs->gpr[ra] = regs->gpr[rd] & imm; in analyse_instr()
883 set_cr0(regs, ra); in analyse_instr()
888 regs->gpr[ra] = regs->gpr[rd] & (imm << 16); in analyse_instr()
889 set_cr0(regs, ra); in analyse_instr()
901 regs->gpr[ra] = val & MASK64_L(mb); in analyse_instr()
904 regs->gpr[ra] = val & MASK64_R(mb); in analyse_instr()
907 regs->gpr[ra] = val & MASK64(mb, 63 - sh); in analyse_instr()
911 regs->gpr[ra] = (regs->gpr[ra] & ~imm) | in analyse_instr()
920 regs->gpr[ra] = val & MASK64_L(mb); in analyse_instr()
923 regs->gpr[ra] = val & MASK64_R(mb); in analyse_instr()
933 (rd & trap_compare((int)regs->gpr[ra], in analyse_instr()
939 if (rd & trap_compare(regs->gpr[ra], regs->gpr[rb])) in analyse_instr()
1030 val = regs->gpr[ra]; in analyse_instr()
1043 val = regs->gpr[ra]; in analyse_instr()
1059 add_with_carry(regs, rd, ~regs->gpr[ra], in analyse_instr()
1065 "r" (regs->gpr[ra]), "r" (regs->gpr[rb])); in analyse_instr()
1069 add_with_carry(regs, rd, regs->gpr[ra], in analyse_instr()
1075 "r" (regs->gpr[ra]), "r" (regs->gpr[rb])); in analyse_instr()
1079 regs->gpr[rd] = regs->gpr[rb] - regs->gpr[ra]; in analyse_instr()
1084 "r" (regs->gpr[ra]), "r" (regs->gpr[rb])); in analyse_instr()
1089 "r" (regs->gpr[ra]), "r" (regs->gpr[rb])); in analyse_instr()
1093 regs->gpr[rd] = -regs->gpr[ra]; in analyse_instr()
1097 add_with_carry(regs, rd, ~regs->gpr[ra], regs->gpr[rb], in analyse_instr()
1102 add_with_carry(regs, rd, regs->gpr[ra], regs->gpr[rb], in analyse_instr()
1107 add_with_carry(regs, rd, ~regs->gpr[ra], 0L, in analyse_instr()
1112 add_with_carry(regs, rd, regs->gpr[ra], 0L, in analyse_instr()
1117 add_with_carry(regs, rd, ~regs->gpr[ra], -1L, in analyse_instr()
1122 regs->gpr[rd] = regs->gpr[ra] * regs->gpr[rb]; in analyse_instr()
1126 add_with_carry(regs, rd, regs->gpr[ra], -1L, in analyse_instr()
1131 regs->gpr[rd] = (unsigned int) regs->gpr[ra] * in analyse_instr()
1136 regs->gpr[rd] = regs->gpr[ra] + regs->gpr[rb]; in analyse_instr()
1140 regs->gpr[rd] = regs->gpr[ra] / regs->gpr[rb]; in analyse_instr()
1144 regs->gpr[rd] = (unsigned int) regs->gpr[ra] / in analyse_instr()
1149 regs->gpr[rd] = (long int) regs->gpr[ra] / in analyse_instr()
1154 regs->gpr[rd] = (int) regs->gpr[ra] / in analyse_instr()
1163 asm("cntlzw %0,%1" : "=r" (regs->gpr[ra]) : in analyse_instr()
1168 asm("cntlzd %0,%1" : "=r" (regs->gpr[ra]) : in analyse_instr()
1173 regs->gpr[ra] = regs->gpr[rd] & regs->gpr[rb]; in analyse_instr()
1177 regs->gpr[ra] = regs->gpr[rd] & ~regs->gpr[rb]; in analyse_instr()
1181 regs->gpr[ra] = ~(regs->gpr[rd] | regs->gpr[rb]); in analyse_instr()
1185 regs->gpr[ra] = ~(regs->gpr[rd] ^ regs->gpr[rb]); in analyse_instr()
1189 regs->gpr[ra] = regs->gpr[rd] ^ regs->gpr[rb]; in analyse_instr()
1193 regs->gpr[ra] = regs->gpr[rd] | ~regs->gpr[rb]; in analyse_instr()
1197 regs->gpr[ra] = regs->gpr[rd] | regs->gpr[rb]; in analyse_instr()
1201 regs->gpr[ra] = ~(regs->gpr[rd] & regs->gpr[rb]); in analyse_instr()
1205 regs->gpr[ra] = (signed short) regs->gpr[rd]; in analyse_instr()
1209 regs->gpr[ra] = (signed char) regs->gpr[rd]; in analyse_instr()
1213 regs->gpr[ra] = (signed int) regs->gpr[rd]; in analyse_instr()
1223 regs->gpr[ra] = (regs->gpr[rd] << sh) & 0xffffffffUL; in analyse_instr()
1225 regs->gpr[ra] = 0; in analyse_instr()
1231 regs->gpr[ra] = (regs->gpr[rd] & 0xffffffffUL) >> sh; in analyse_instr()
1233 regs->gpr[ra] = 0; in analyse_instr()
1239 regs->gpr[ra] = ival >> (sh < 32 ? sh : 31); in analyse_instr()
1249 regs->gpr[ra] = ival >> sh; in analyse_instr()
1260 regs->gpr[ra] = regs->gpr[rd] << sh; in analyse_instr()
1262 regs->gpr[ra] = 0; in analyse_instr()
1268 regs->gpr[ra] = regs->gpr[rd] >> sh; in analyse_instr()
1270 regs->gpr[ra] = 0; in analyse_instr()
1276 regs->gpr[ra] = ival >> (sh < 64 ? sh : 63); in analyse_instr()
1287 regs->gpr[ra] = ival >> sh; in analyse_instr()
1332 op->update_reg = ra; in analyse_instr()
1449 if (ra) in analyse_instr()
1451 regs->gpr[ra]); in analyse_instr()
1505 if (ra) in analyse_instr()
1507 regs->gpr[ra]); in analyse_instr()
1583 if (ra >= rd) in analyse_instr()
1662 set_cr0(regs, ra); in analyse_instr()