• Home
  • Raw
  • Download

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
1267 rd = 7 - ((word >> 23) & 0x7); in analyse_instr()
1269 rd *= 4; in analyse_instr()
1272 op->ccval = (regs->ccr & ~(0xfUL << rd)) | (val << rd); in analyse_instr()
1307 rd = (word >> 21) & 0x1f; in analyse_instr()
1311 op->ccval = (regs->ccr & ~(1UL << (31 - rd))) | in analyse_instr()
1312 (val << (31 - rd)); in analyse_instr()
1321 switch ((word >> 21) & 3) { in analyse_instr()
1343 rd = (word >> 21) & 0x1f; in analyse_instr()
1356 rd = (suffix >> 21) & 0x1f; in analyse_instr()
1357 op->reg = rd; in analyse_instr()
1358 op->val = regs->gpr[rd]; in analyse_instr()
1374 if (rd & trap_compare(regs->gpr[ra], (short) word)) in analyse_instr()
1378 case 3: /* twi */ in analyse_instr()
1379 if (rd & trap_compare((int)regs->gpr[ra], (short) word)) in analyse_instr()
1395 asm volatile(PPC_MADDHD(%0, %1, %2, %3) : in analyse_instr()
1401 asm volatile(PPC_MADDHDU(%0, %1, %2, %3) : in analyse_instr()
1407 asm volatile(PPC_MADDLD(%0, %1, %2, %3) : in analyse_instr()
1426 add_with_carry(regs, op, rd, ~regs->gpr[ra], imm, 1); in analyse_instr()
1433 if ((rd & 1) == 0) in analyse_instr()
1436 do_cmp_unsigned(regs, op, val, imm, rd >> 2); in analyse_instr()
1443 if ((rd & 1) == 0) in analyse_instr()
1446 do_cmp_signed(regs, op, val, imm, rd >> 2); in analyse_instr()
1451 add_with_carry(regs, op, rd, regs->gpr[ra], imm, 0); in analyse_instr()
1456 add_with_carry(regs, op, rd, regs->gpr[ra], imm, 0); in analyse_instr()
1490 val = DATA32(regs->gpr[rd]); in analyse_instr()
1498 val = DATA32(regs->gpr[rd]); in analyse_instr()
1506 val = DATA32(regs->gpr[rd]); in analyse_instr()
1511 op->val = regs->gpr[rd] | (unsigned short) word; in analyse_instr()
1516 op->val = regs->gpr[rd] | (imm << 16); in analyse_instr()
1520 op->val = regs->gpr[rd] ^ (unsigned short) word; in analyse_instr()
1525 op->val = regs->gpr[rd] ^ (imm << 16); in analyse_instr()
1529 op->val = regs->gpr[rd] & (unsigned short) word; in analyse_instr()
1535 op->val = regs->gpr[rd] & (imm << 16); in analyse_instr()
1542 val = regs->gpr[rd]; in analyse_instr()
1546 switch ((word >> 2) & 3) { in analyse_instr()
1556 case 3: /* rldimi */ in analyse_instr()
1592 if (rd == 0x1f || in analyse_instr()
1593 (rd & trap_compare((int)regs->gpr[ra], in analyse_instr()
1599 if (rd & trap_compare(regs->gpr[ra], regs->gpr[rb])) in analyse_instr()
1607 op->reg = rd; in analyse_instr()
1613 op->reg = rd; in analyse_instr()
1621 op->reg = rd; in analyse_instr()
1645 val = regs->gpr[rd]; in analyse_instr()
1658 op->reg = rd; in analyse_instr()
1668 op->val = regs->gpr[rd]; in analyse_instr()
1682 if ((rd & 1) == 0) { in analyse_instr()
1688 do_cmp_signed(regs, op, val, val2, rd >> 2); in analyse_instr()
1695 if ((rd & 1) == 0) { in analyse_instr()
1701 do_cmp_unsigned(regs, op, val, val2, rd >> 2); in analyse_instr()
1705 do_cmpb(regs, op, regs->gpr[rd], regs->gpr[rb]); in analyse_instr()
1712 add_with_carry(regs, op, rd, ~regs->gpr[ra], in analyse_instr()
1722 add_with_carry(regs, op, rd, regs->gpr[ra], in analyse_instr()
1750 add_with_carry(regs, op, rd, ~regs->gpr[ra], in analyse_instr()
1755 add_with_carry(regs, op, rd, regs->gpr[ra], in analyse_instr()
1760 add_with_carry(regs, op, rd, ~regs->gpr[ra], 0L, in analyse_instr()
1765 add_with_carry(regs, op, rd, regs->gpr[ra], 0L, in analyse_instr()
1770 add_with_carry(regs, op, rd, ~regs->gpr[ra], -1L, in analyse_instr()
1779 add_with_carry(regs, op, rd, regs->gpr[ra], -1L, in analyse_instr()
1877 val = (unsigned int) regs->gpr[rd]; in analyse_instr()
1882 val = regs->gpr[rd]; in analyse_instr()
1887 op->val = regs->gpr[rd] & regs->gpr[rb]; in analyse_instr()
1891 op->val = regs->gpr[rd] & ~regs->gpr[rb]; in analyse_instr()
1895 do_popcnt(regs, op, regs->gpr[rd], 8); in analyse_instr()
1899 op->val = ~(regs->gpr[rd] | regs->gpr[rb]); in analyse_instr()
1903 do_prty(regs, op, regs->gpr[rd], 32); in analyse_instr()
1907 do_prty(regs, op, regs->gpr[rd], 64); in analyse_instr()
1911 do_bpermd(regs, op, regs->gpr[rd], regs->gpr[rb]); 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 do_popcnt(regs, op, regs->gpr[rd], 32); in analyse_instr()
1927 op->val = regs->gpr[rd] | ~regs->gpr[rb]; in analyse_instr()
1931 op->val = regs->gpr[rd] | regs->gpr[rb]; in analyse_instr()
1935 op->val = ~(regs->gpr[rd] & regs->gpr[rb]); in analyse_instr()
1939 do_popcnt(regs, op, regs->gpr[rd], 64); in analyse_instr()
1945 val = (unsigned int) regs->gpr[rd]; in analyse_instr()
1952 val = regs->gpr[rd]; in analyse_instr()
1957 op->val = (signed short) regs->gpr[rd]; in analyse_instr()
1961 op->val = (signed char) regs->gpr[rd]; in analyse_instr()
1965 op->val = (signed int) regs->gpr[rd]; in analyse_instr()
1975 op->val = (regs->gpr[rd] << sh) & 0xffffffffUL; in analyse_instr()
1983 op->val = (regs->gpr[rd] & 0xffffffffUL) >> sh; in analyse_instr()
1991 ival = (signed int) regs->gpr[rd]; in analyse_instr()
2004 ival = (signed int) regs->gpr[rd]; in analyse_instr()
2018 op->val = regs->gpr[rd] << sh; in analyse_instr()
2026 op->val = regs->gpr[rd] >> sh; in analyse_instr()
2034 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
2048 ival = (signed long int) regs->gpr[rd]; in analyse_instr()
2064 val = (signed int) regs->gpr[rd]; in analyse_instr()
2089 op->reg = rd; in analyse_instr()
2095 op->reg = rd; in analyse_instr()
2116 op->reg = rd; in analyse_instr()
2117 op->val = regs->gpr[rd]; in analyse_instr()
2160 if (!((rd & 1) || rd == ra || rd == rb)) in analyse_instr()
2165 if (!(rd & 1)) in analyse_instr()
2339 op->val = byterev_8(regs->gpr[rd]); in analyse_instr()
2349 op->val = byterev_4(regs->gpr[rd]); in analyse_instr()
2365 op->val = byterev_2(regs->gpr[rd]); in analyse_instr()
2370 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2376 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2382 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2390 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2401 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2413 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2422 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2431 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2442 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2454 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2461 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2467 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2474 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2480 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2488 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2497 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2506 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2513 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2521 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2528 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2536 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2545 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2554 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2561 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2569 op->reg = rd | ((word & 1) << 5); in analyse_instr()
2622 if (ra >= rd) in analyse_instr()
2624 op->type = MKOP(LOAD_MULTI, 0, 4 * (32 - rd)); in analyse_instr()
2629 op->type = MKOP(STORE_MULTI, 0, 4 * (32 - rd)); in analyse_instr()
2661 if (!((rd & 1) || (rd == ra))) in analyse_instr()
2670 switch (word & 3) { in analyse_instr()
2672 if (rd & 1) in analyse_instr()
2679 op->reg = rd + 32; in analyse_instr()
2684 case 3: /* lxssp */ in analyse_instr()
2687 op->reg = rd + 32; in analyse_instr()
2699 switch (word & 3) { in analyse_instr()
2727 op->reg = rd + 32; in analyse_instr()
2738 op->reg = rd + 32; in analyse_instr()
2744 case 3: /* stxssp with LSB of DS field = 0 */ in analyse_instr()
2749 op->reg = rd + 32; in analyse_instr()
2760 op->reg = rd + 32; in analyse_instr()
2772 switch (word & 3) { in analyse_instr()
2780 if (!(rd & 1)) in analyse_instr()
2792 rd = (suffix >> 21) & 0x1f; in analyse_instr()
2793 op->reg = rd; in analyse_instr()
2794 op->val = regs->gpr[rd]; in analyse_instr()
2809 op->reg = rd + 32; in analyse_instr()
2815 op->reg = rd + 32; in analyse_instr()
2821 op->reg = rd + 32; in analyse_instr()
2827 op->reg = rd + 32; in analyse_instr()
2841 op->reg = rd + 32; in analyse_instr()
2905 case 3: /* Type 11 Modified Register-to-Register */ in analyse_instr()
2915 if (ra == rd) in analyse_instr()
2952 op->reg = rd; in analyse_instr()
3125 int i, rd, nb; in emulate_loadstore() local
3209 ((regs->xer >> 3) & 0x10000000); in emulate_loadstore()
3269 rd = op->reg; in emulate_loadstore()
3281 regs->gpr[rd] = v32; in emulate_loadstore()
3284 rd = (rd + 1) & 0x1f; in emulate_loadstore()
3340 rd = op->reg; in emulate_loadstore()
3342 unsigned int v32 = regs->gpr[rd]; in emulate_loadstore()
3354 rd = (rd + 1) & 0x1f; in emulate_loadstore()