Lines Matching +full:3 +full:rd

100 		if (((regs->ccr >> (31 - bi)) & 1) != ((bo >> 3) & 1))  in branch_taken()
149 ea = (signed short) (instr & ~3); /* sign-extend */ in dsform_ea()
751 i = IS_LE ? 3 - j : j; in emulate_vsx_load()
755 u32 val = reg->w[IS_LE ? 3 : 0]; in emulate_vsx_load()
757 i = IS_LE ? 3 - j : j; in emulate_vsx_load()
834 i = IS_LE ? 3 - j : j; in emulate_vsx_store()
952 "1: " op " %2,0,%3\n" \
956 "3: li %0,%4\n" \
959 EX_TABLE(1b, 3b) \
968 "3: li %0,%3\n" \
971 EX_TABLE(1b, 3b) \
980 "3: li %0,%3\n" \
983 EX_TABLE(1b, 3b) \
993 op->ccval = (regs->ccr & 0x0fffffff) | ((regs->xer >> 3) & 0x10000000); in set_cr0()
1017 struct instruction_op *op, int rd, in add_with_carry() argument
1026 op->reg = rd; in add_with_carry()
1214 unsigned int opcode, ra, rb, rc, rd, spr, u; in analyse_instr() local
1265 rd = 7 - ((word >> 23) & 0x7); in analyse_instr()
1267 rd *= 4; in analyse_instr()
1270 op->ccval = (regs->ccr & ~(0xfUL << rd)) | (val << rd); in analyse_instr()
1305 rd = (word >> 21) & 0x1f; in analyse_instr()
1309 op->ccval = (regs->ccr & ~(1UL << (31 - rd))) | in analyse_instr()
1310 (val << (31 - rd)); in analyse_instr()
1319 switch ((word >> 21) & 3) { in analyse_instr()
1341 rd = (word >> 21) & 0x1f; in analyse_instr()
1351 rd = (suffix >> 21) & 0x1f; in analyse_instr()
1352 op->reg = rd; in analyse_instr()
1353 op->val = regs->gpr[rd]; in analyse_instr()
1369 if (rd & trap_compare(regs->gpr[ra], (short) word)) in analyse_instr()
1373 case 3: /* twi */ in analyse_instr()
1374 if (rd & trap_compare((int)regs->gpr[ra], (short) word)) in analyse_instr()
1385 asm volatile(PPC_MADDHD(%0, %1, %2, %3) : in analyse_instr()
1391 asm volatile(PPC_MADDHDU(%0, %1, %2, %3) : in analyse_instr()
1397 asm volatile(PPC_MADDLD(%0, %1, %2, %3) : in analyse_instr()
1416 add_with_carry(regs, op, rd, ~regs->gpr[ra], imm, 1); in analyse_instr()
1423 if ((rd & 1) == 0) in analyse_instr()
1426 do_cmp_unsigned(regs, op, val, imm, rd >> 2); in analyse_instr()
1433 if ((rd & 1) == 0) in analyse_instr()
1436 do_cmp_signed(regs, op, val, imm, rd >> 2); in analyse_instr()
1441 add_with_carry(regs, op, rd, regs->gpr[ra], imm, 0); in analyse_instr()
1446 add_with_carry(regs, op, rd, regs->gpr[ra], imm, 0); in analyse_instr()
1478 val = DATA32(regs->gpr[rd]); in analyse_instr()
1486 val = DATA32(regs->gpr[rd]); in analyse_instr()
1494 val = DATA32(regs->gpr[rd]); in analyse_instr()
1499 op->val = regs->gpr[rd] | (unsigned short) word; in analyse_instr()
1504 op->val = regs->gpr[rd] | (imm << 16); in analyse_instr()
1508 op->val = regs->gpr[rd] ^ (unsigned short) word; in analyse_instr()
1513 op->val = regs->gpr[rd] ^ (imm << 16); in analyse_instr()
1517 op->val = regs->gpr[rd] & (unsigned short) word; in analyse_instr()
1523 op->val = regs->gpr[rd] & (imm << 16); in analyse_instr()
1530 val = regs->gpr[rd]; in analyse_instr()
1534 switch ((word >> 2) & 3) { in analyse_instr()
1544 case 3: /* rldimi */ in analyse_instr()
1580 if (rd == 0x1f || in analyse_instr()
1581 (rd & trap_compare((int)regs->gpr[ra], in analyse_instr()
1587 if (rd & trap_compare(regs->gpr[ra], regs->gpr[rb])) in analyse_instr()
1595 op->reg = rd; in analyse_instr()
1601 op->reg = rd; in analyse_instr()
1609 op->reg = rd; in analyse_instr()
1633 val = regs->gpr[rd]; in analyse_instr()
1646 op->reg = rd; in analyse_instr()
1656 op->val = regs->gpr[rd]; in analyse_instr()
1670 if ((rd & 1) == 0) { in analyse_instr()
1676 do_cmp_signed(regs, op, val, val2, rd >> 2); in analyse_instr()
1683 if ((rd & 1) == 0) { in analyse_instr()
1689 do_cmp_unsigned(regs, op, val, val2, rd >> 2); in analyse_instr()
1693 do_cmpb(regs, op, regs->gpr[rd], regs->gpr[rb]); in analyse_instr()
1700 add_with_carry(regs, op, rd, ~regs->gpr[ra], in analyse_instr()
1710 add_with_carry(regs, op, rd, regs->gpr[ra], in analyse_instr()
1738 add_with_carry(regs, op, rd, ~regs->gpr[ra], in analyse_instr()
1743 add_with_carry(regs, op, rd, regs->gpr[ra], in analyse_instr()
1748 add_with_carry(regs, op, rd, ~regs->gpr[ra], 0L, in analyse_instr()
1753 add_with_carry(regs, op, rd, regs->gpr[ra], 0L, in analyse_instr()
1758 add_with_carry(regs, op, rd, ~regs->gpr[ra], -1L, in analyse_instr()
1767 add_with_carry(regs, op, rd, regs->gpr[ra], -1L, in analyse_instr()
1865 val = (unsigned int) regs->gpr[rd]; in analyse_instr()
1870 val = regs->gpr[rd]; in analyse_instr()
1875 op->val = regs->gpr[rd] & regs->gpr[rb]; in analyse_instr()
1879 op->val = regs->gpr[rd] & ~regs->gpr[rb]; in analyse_instr()
1883 do_popcnt(regs, op, regs->gpr[rd], 8); in analyse_instr()
1887 op->val = ~(regs->gpr[rd] | regs->gpr[rb]); in analyse_instr()
1891 do_prty(regs, op, regs->gpr[rd], 32); in analyse_instr()
1895 do_prty(regs, op, regs->gpr[rd], 64); in analyse_instr()
1899 do_bpermd(regs, op, regs->gpr[rd], regs->gpr[rb]); in analyse_instr()
1903 op->val = ~(regs->gpr[rd] ^ regs->gpr[rb]); in analyse_instr()
1907 op->val = regs->gpr[rd] ^ regs->gpr[rb]; in analyse_instr()
1911 do_popcnt(regs, op, regs->gpr[rd], 32); in analyse_instr()
1915 op->val = regs->gpr[rd] | ~regs->gpr[rb]; in analyse_instr()
1919 op->val = regs->gpr[rd] | regs->gpr[rb]; in analyse_instr()
1923 op->val = ~(regs->gpr[rd] & regs->gpr[rb]); in analyse_instr()
1927 do_popcnt(regs, op, regs->gpr[rd], 64); in analyse_instr()
1933 val = (unsigned int) regs->gpr[rd]; in analyse_instr()
1940 val = regs->gpr[rd]; in analyse_instr()
1945 op->val = (signed short) regs->gpr[rd]; in analyse_instr()
1949 op->val = (signed char) regs->gpr[rd]; in analyse_instr()
1953 op->val = (signed int) regs->gpr[rd]; in analyse_instr()
1963 op->val = (regs->gpr[rd] << sh) & 0xffffffffUL; in analyse_instr()
1971 op->val = (regs->gpr[rd] & 0xffffffffUL) >> sh; in analyse_instr()
1979 ival = (signed int) regs->gpr[rd]; in analyse_instr()
1992 ival = (signed int) regs->gpr[rd]; in analyse_instr()
2006 op->val = regs->gpr[rd] << sh; in analyse_instr()
2014 op->val = regs->gpr[rd] >> sh; in analyse_instr()
2022 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
2036 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
2052 val = (signed int) regs->gpr[rd]; in analyse_instr()
2077 op->reg = rd; in analyse_instr()
2083 op->reg = rd; in analyse_instr()
2104 op->reg = rd; in analyse_instr()
2105 op->val = regs->gpr[rd]; in analyse_instr()
2148 if (!((rd & 1) || rd == ra || rd == rb)) in analyse_instr()
2153 if (!(rd & 1)) in analyse_instr()
2327 op->val = byterev_8(regs->gpr[rd]); in analyse_instr()
2337 op->val = byterev_4(regs->gpr[rd]); in analyse_instr()
2353 op->val = byterev_2(regs->gpr[rd]); in analyse_instr()
2358 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2364 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2370 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2376 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2385 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2397 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2404 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2411 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2420 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2432 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2439 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2445 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2452 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2458 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2464 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2471 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2478 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2485 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2491 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2498 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2504 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2511 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2518 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2525 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2531 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2584 if (ra >= rd) in analyse_instr()
2586 op->type = MKOP(LOAD_MULTI, 0, 4 * (32 - rd)); in analyse_instr()
2591 op->type = MKOP(STORE_MULTI, 0, 4 * (32 - rd)); in analyse_instr()
2623 if (!((rd & 1) || (rd == ra))) in analyse_instr()
2632 switch (word & 3) { in analyse_instr()
2634 if (rd & 1) in analyse_instr()
2639 op->reg = rd + 32; in analyse_instr()
2644 case 3: /* lxssp */ in analyse_instr()
2645 op->reg = rd + 32; in analyse_instr()
2657 switch (word & 3) { in analyse_instr()
2683 op->reg = rd + 32; in analyse_instr()
2692 op->reg = rd + 32; in analyse_instr()
2698 case 3: /* stxssp with LSB of DS field = 0 */ in analyse_instr()
2701 op->reg = rd + 32; in analyse_instr()
2710 op->reg = rd + 32; in analyse_instr()
2722 switch (word & 3) { in analyse_instr()
2730 if (!(rd & 1)) in analyse_instr()
2739 rd = (suffix >> 21) & 0x1f; in analyse_instr()
2740 op->reg = rd; in analyse_instr()
2741 op->val = regs->gpr[rd]; in analyse_instr()
2755 op->reg = rd + 32; in analyse_instr()
2761 op->reg = rd + 32; in analyse_instr()
2767 op->reg = rd + 32; in analyse_instr()
2773 op->reg = rd + 32; in analyse_instr()
2787 op->reg = rd + 32; in analyse_instr()
2850 case 3: /* Type 11 Modified Register-to-Register */ in analyse_instr()
2879 op->reg = rd; in analyse_instr()
3052 int i, rd, nb; in emulate_loadstore() local
3136 ((regs->xer >> 3) & 0x10000000); in emulate_loadstore()
3196 rd = op->reg; in emulate_loadstore()
3208 regs->gpr[rd] = v32; in emulate_loadstore()
3211 rd = (rd + 1) & 0x1f; in emulate_loadstore()
3267 rd = op->reg; in emulate_loadstore()
3269 unsigned int v32 = regs->gpr[rd]; in emulate_loadstore()
3281 rd = (rd + 1) & 0x1f; in emulate_loadstore()