Lines Matching refs:gpr

102 		ea += regs->gpr[ra];  in dform_ea()
119 ea += regs->gpr[ra]; in dsform_ea()
136 ea = regs->gpr[rb]; in xform_ea()
138 ea += regs->gpr[ra]; in xform_ea()
535 long val = regs->gpr[rd]; in set_cr0()
558 regs->gpr[rd] = val; in add_with_carry()
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()
826 imm += regs->gpr[ra]; in analyse_instr()
827 regs->gpr[rd] = imm; in analyse_instr()
833 imm += regs->gpr[ra]; in analyse_instr()
834 regs->gpr[rd] = imm; in analyse_instr()
840 val = DATA32(regs->gpr[rd]); in analyse_instr()
842 regs->gpr[ra] = (regs->gpr[ra] & ~imm) | (ROTATE(val, rb) & imm); in analyse_instr()
848 val = DATA32(regs->gpr[rd]); in analyse_instr()
849 regs->gpr[ra] = ROTATE(val, rb) & MASK32(mb, me); in analyse_instr()
855 rb = regs->gpr[rb] & 0x1f; in analyse_instr()
856 val = DATA32(regs->gpr[rd]); 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()
888 regs->gpr[ra] = regs->gpr[rd] & (imm << 16); in analyse_instr()
895 val = regs->gpr[rd]; 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()
916 sh = regs->gpr[rb] & 0x3f; 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()
934 (int)regs->gpr[rb]))) in analyse_instr()
939 if (rd & trap_compare(regs->gpr[ra], regs->gpr[rb])) in analyse_instr()
970 regs->gpr[rd] = regs->ccr; in analyse_instr()
971 regs->gpr[rd] &= 0xffffffffUL; in analyse_instr()
976 val = regs->gpr[rd]; in analyse_instr()
989 regs->gpr[rd] = regs->xer; in analyse_instr()
990 regs->gpr[rd] &= 0xffffffffUL; in analyse_instr()
993 regs->gpr[rd] = regs->link; in analyse_instr()
996 regs->gpr[rd] = regs->ctr; in analyse_instr()
1010 regs->xer = (regs->gpr[rd] & 0xffffffffUL); in analyse_instr()
1013 regs->link = regs->gpr[rd]; in analyse_instr()
1016 regs->ctr = regs->gpr[rd]; in analyse_instr()
1020 op->val = regs->gpr[rd]; in analyse_instr()
1030 val = regs->gpr[ra]; in analyse_instr()
1031 val2 = regs->gpr[rb]; in analyse_instr()
1043 val = regs->gpr[ra]; in analyse_instr()
1044 val2 = regs->gpr[rb]; in analyse_instr()
1059 add_with_carry(regs, rd, ~regs->gpr[ra], in analyse_instr()
1060 regs->gpr[rb], 1); in analyse_instr()
1064 asm("mulhdu %0,%1,%2" : "=r" (regs->gpr[rd]) : 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()
1070 regs->gpr[rb], 0); in analyse_instr()
1074 asm("mulhwu %0,%1,%2" : "=r" (regs->gpr[rd]) : 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()
1083 asm("mulhd %0,%1,%2" : "=r" (regs->gpr[rd]) : in analyse_instr()
1084 "r" (regs->gpr[ra]), "r" (regs->gpr[rb])); in analyse_instr()
1088 asm("mulhw %0,%1,%2" : "=r" (regs->gpr[rd]) : 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()
1132 (unsigned int) regs->gpr[rb]; 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()
1145 (unsigned int) regs->gpr[rb]; in analyse_instr()
1149 regs->gpr[rd] = (long int) regs->gpr[ra] / in analyse_instr()
1150 (long int) regs->gpr[rb]; in analyse_instr()
1154 regs->gpr[rd] = (int) regs->gpr[ra] / in analyse_instr()
1155 (int) regs->gpr[rb]; in analyse_instr()
1163 asm("cntlzw %0,%1" : "=r" (regs->gpr[ra]) : in analyse_instr()
1164 "r" (regs->gpr[rd])); in analyse_instr()
1168 asm("cntlzd %0,%1" : "=r" (regs->gpr[ra]) : in analyse_instr()
1169 "r" (regs->gpr[rd])); 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()
1221 sh = regs->gpr[rb] & 0x3f; in analyse_instr()
1223 regs->gpr[ra] = (regs->gpr[rd] << sh) & 0xffffffffUL; in analyse_instr()
1225 regs->gpr[ra] = 0; in analyse_instr()
1229 sh = regs->gpr[rb] & 0x3f; in analyse_instr()
1231 regs->gpr[ra] = (regs->gpr[rd] & 0xffffffffUL) >> sh; in analyse_instr()
1233 regs->gpr[ra] = 0; in analyse_instr()
1237 sh = regs->gpr[rb] & 0x3f; in analyse_instr()
1238 ival = (signed int) regs->gpr[rd]; in analyse_instr()
1239 regs->gpr[ra] = ival >> (sh < 32 ? sh : 31); in analyse_instr()
1248 ival = (signed int) regs->gpr[rd]; in analyse_instr()
1249 regs->gpr[ra] = ival >> sh; in analyse_instr()
1258 sh = regs->gpr[rb] & 0x7f; in analyse_instr()
1260 regs->gpr[ra] = regs->gpr[rd] << sh; in analyse_instr()
1262 regs->gpr[ra] = 0; in analyse_instr()
1266 sh = regs->gpr[rb] & 0x7f; in analyse_instr()
1268 regs->gpr[ra] = regs->gpr[rd] >> sh; in analyse_instr()
1270 regs->gpr[ra] = 0; in analyse_instr()
1274 sh = regs->gpr[rb] & 0x7f; in analyse_instr()
1275 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
1276 regs->gpr[ra] = ival >> (sh < 64 ? sh : 63); in analyse_instr()
1286 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
1287 regs->gpr[ra] = ival >> sh; in analyse_instr()
1334 op->val = regs->gpr[rd]; in analyse_instr()
1451 regs->gpr[ra]); in analyse_instr()
1487 op->val = byterev_8(regs->gpr[rd]); in analyse_instr()
1497 op->val = byterev_4(regs->gpr[rd]); in analyse_instr()
1507 regs->gpr[ra]); in analyse_instr()
1516 op->val = byterev_2(regs->gpr[rd]); in analyse_instr()
1828 regs->gpr[op.reg] = val; in emulate_step()
1859 err = read_mem(&regs->gpr[op.reg], op.ea, size, regs); in emulate_step()
1862 do_signext(&regs->gpr[op.reg], size); in emulate_step()
1864 do_byterev(&regs->gpr[op.reg], size); in emulate_step()
1900 err = read_mem(&regs->gpr[rd], op.ea, nb, regs); in emulate_step()
1904 regs->gpr[rd] <<= 32 - 8 * nb; in emulate_step()
1916 op.ea >= regs->gpr[1] - STACK_INT_FRAME_SIZE) { in emulate_step()
1952 val = regs->gpr[rd]; in emulate_step()
1967 regs->gpr[op.reg] = regs->msr & MSR_MASK; in emulate_step()
1971 val = regs->gpr[op.reg]; in emulate_step()
1986 if (regs->gpr[0] == 0x1ebe && in emulate_step()
1991 regs->gpr[9] = regs->gpr[13]; in emulate_step()
1992 regs->gpr[10] = MSR_KERNEL; in emulate_step()
1993 regs->gpr[11] = regs->nip + 4; in emulate_step()
1994 regs->gpr[12] = regs->msr & MSR_MASK; in emulate_step()
1995 regs->gpr[13] = (unsigned long) get_paca(); in emulate_step()
2010 regs->gpr[op.update_reg] = op.ea; in emulate_step()