Lines Matching full:mreg
2860 UInt mreg = get_neon_m_regno(theInstr);
2867 putQReg(dreg, triop(Iop_SliceV128, /*hiV128*/getQReg(mreg),
2870 putDRegI64(dreg, triop(Iop_Slice64, /*hiI64*/getDRegI64(mreg),
2874 reg_t, mreg, imm4);
2910 UInt mreg = get_neon_m_regno(theInstr & ~(1 << 6));
2920 if (dreg >= 0x100 || mreg >= 0x100 || nreg >= 0x100)
2932 assign(old_arg, getDRegI64(mreg));
2979 DIP("}, d%u\n", mreg);
2989 UInt mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
3004 assign(arg_m, getDRegI64(mreg));
3033 DIP("vdup.%u %c%u, d%u[%u]\n", size, Q ? 'q' : 'd', dreg, mreg, index);
3044 UInt mreg = get_neon_m_regno(theInstr);
3060 assign(arg_m, getQReg(mreg));
3066 assign(arg_m, getDRegI64(mreg));
3142 dreg, regType, nreg, regType, mreg);
3201 8 << size, reg_t, dreg, reg_t, nreg, reg_t, mreg);
3312 8 << size, reg_t, dreg, reg_t, nreg, reg_t, mreg);
3327 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3341 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3345 if ( nreg != mreg) {
3356 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3361 DIP("vmov %c%u, %c%u\n", reg_t, dreg, reg_t, mreg);
3375 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3391 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3419 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3446 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3473 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3554 mreg);
3612 mreg);
3640 mreg);
3653 mreg);
3714 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
3838 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
3978 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
4135 mreg, Q ? 'q' : 'd',
4165 mreg);
4190 mreg);
4259 mreg);
4338 mreg);
4355 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4367 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4386 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4396 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4450 mreg);
4476 mreg);
4506 Q ? 'q' : 'd', mreg);
4544 mreg);
4578 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4596 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4610 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4616 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4624 DIP("vpadd.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4641 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4678 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4688 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4704 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4718 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4728 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4750 Q ? 'q' : 'd', mreg);
4764 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4768 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4780 DIP("vpmin.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4783 DIP("vpmax.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4798 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4808 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4832 UInt mreg = get_neon_m_regno(theInstr);
4874 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4879 (A & 1) ? 'q' : 'd', nreg, mreg);
4883 if (mreg & 1)
4885 mreg >>= 1;
4919 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4930 nreg, mreg);
4972 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4974 getDRegI64(mreg))));
4986 nreg, mreg);
4990 if (mreg & 1)
4992 mreg >>= 1;
5029 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5040 nreg, mreg);
5079 assign(arg_m, unop(cvt, getDRegI64(mreg)));
5081 getDRegI64(mreg))));
5091 nreg, mreg);
5119 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5122 8 << size, dreg, nreg, mreg);
5158 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5164 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5169 nreg, mreg);
5194 getDRegI64(mreg)), condT);
5196 8 << size, dreg, nreg, mreg);
5226 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5230 binop(op2, getDRegI64(mreg), mkU64(imm))),
5233 DIP("vqdmull.s%d q%u, d%u, d%u\n", 8 << size, dreg, nreg, mreg);
5249 UInt mreg = get_neon_m_regno(theInstr & ~(1 << 6));
5275 index = mreg >> 3;
5276 mreg &= 7;
5281 index = mreg >> 4;
5282 mreg &= 0xf;
5290 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5300 index = mreg >> 3;
5301 mreg &= 7;
5306 index = mreg >> 4;
5307 mreg &= 0xf;
5315 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5360 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, mreg, index);
5379 index = mreg >> 3;
5380 mreg &= 7;
5385 index = mreg >> 4;
5386 mreg &= 0xf;
5394 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5417 8 << size, dreg, nreg, mreg, index);
5438 index = mreg >> 3;
5439 mreg &= 7;
5444 index = mreg >> 4;
5445 mreg &= 0xf;
5453 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5491 dreg, nreg, mreg, index);
5512 index = mreg >> 3;
5513 mreg &= 7;
5518 index = mreg >> 4;
5519 mreg &= 0xf;
5527 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5537 index = mreg >> 3;
5538 mreg &= 7;
5543 index = mreg >> 4;
5544 mreg &= 0xf;
5552 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5588 Q ? 'q' : 'd', nreg, mreg, index);
5607 index = mreg >> 3;
5608 mreg &= 7;
5613 index = mreg >> 4;
5614 mreg &= 0xf;
5622 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5632 nreg, mreg, index);
5651 index = mreg >> 3;
5652 mreg &= 7;
5657 index = mreg >> 4;
5658 mreg &= 0xf;
5666 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5694 DIP("vqdmull.s%d q%u, d%u, d%u[%u]\n", 8 << size, dreg, nreg, mreg,
5717 index = mreg >> 3;
5718 mreg &= 7;
5723 index = mreg >> 4;
5724 mreg &= 0xf;
5732 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5742 index = mreg >> 3;
5743 mreg &= 7;
5748 index = mreg >> 4;
5749 mreg &= 0xf;
5757 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5793 Q ? 'q' : 'd', nreg, mreg, index);
5815 index = mreg >> 3;
5816 mreg &= 7;
5821 index = mreg >> 4;
5822 mreg &= 0xf;
5830 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5840 index = mreg >> 3;
5841 mreg &= 7;
5846 index = mreg >> 4;
5847 mreg &= 0xf;
5855 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5891 Q ? 'q' : 'd', nreg, mreg, index);
5912 UInt mreg = get_neon_m_regno(theInstr);
5965 assign(reg_m, getQReg(mreg));
5990 assign(reg_m, getDRegI64(mreg));
6025 assign(res, getQReg(mreg));
6028 assign(res, getDRegI64(mreg));
6041 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6049 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6057 assign(reg_m, getQReg(mreg));
6061 assign(reg_m, getDRegI64(mreg));
6117 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6125 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6157 getQReg(mreg),
6169 getDRegI64(mreg),
6175 Q ? 'q' : 'd', mreg, shift_imm);
6206 getQReg(mreg),
6218 getDRegI64(mreg),
6224 Q ? 'q' : 'd', mreg, shift_imm);
6241 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6250 Q ? 'q' : 'd', mreg, shift_imm);
6282 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6306 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6333 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6339 assign(reg_m, getQReg(mreg));
6344 assign(reg_m, getDRegI64(mreg));
6360 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
6361 if (mreg & 1)
6363 mreg >>= 1;
6368 assign(reg_m, getQReg(mreg));
6391 DIP("vshrn.i%d d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6399 assign(reg_m, getQReg(mreg));
6441 DIP("vmov%d d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6444 mreg,
6454 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
6455 if (mreg & 1)
6457 mreg >>= 1;
6480 U ? 'u' : 's', 8 << size, dreg, mreg, shift_imm);
6503 8 << size, dreg, mreg, shift_imm);
6524 assign(reg_m, getQReg(mreg));
6570 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6574 dreg, mreg);
6577 dreg, mreg, shift_imm);
6590 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6599 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6605 putQReg(dreg, binop(op, getQReg(mreg),
6608 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6629 UInt mreg = get_neon_m_regno(theInstr);
6639 assign(arg_m, getQReg(mreg));
6643 assign(arg_m, getDRegI64(mreg));
6666 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6687 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6706 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6735 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6753 Q ? 'q' : 'd', mreg);
6768 Q ? 'q' : 'd', mreg);
6775 mreg);
6784 mreg);
6840 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6902 Q ? 'q' : 'd', mreg);
6936 Q ? 'q' : 'd', mreg);
6952 assign(arg_m, getQReg(mreg));
6956 assign(arg_m, getDRegI64(mreg));
6985 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7016 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7047 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7078 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7108 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7131 Q ? 'q' : 'd', mreg);
7162 Q ? 'q' : 'd', mreg);
7179 assign(arg_m, getQReg(mreg));
7180 putQReg(mreg, getQReg(dreg), condT);
7184 assign(arg_m, getDRegI64(mreg));
7185 putDRegI64(mreg, getDRegI64(dreg), condT);
7189 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7200 assign(old_m, getQReg(mreg));
7207 assign(old_m, getDRegI64(mreg));
7253 putQReg(mreg, mkexpr(new_m), condT);
7256 putDRegI64(mreg, mkexpr(new_m), condT);
7259 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7272 assign(old_m, getQReg(mreg));
7279 assign(old_m, getDRegI64(mreg));
7304 putQReg(mreg, mkexpr(new_m), condT);
7307 putDRegI64(mreg, mkexpr(new_m), condT);
7310 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7323 assign(old_m, getQReg(mreg));
7330 assign(old_m, getDRegI64(mreg));
7355 putQReg(mreg, mkexpr(new_m), condT);
7358 putDRegI64(mreg, mkexpr(new_m), condT);
7361 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7366 mreg >>= 1;
7374 putDRegI64(dreg, unop(op, getQReg(mreg)), condT);
7375 DIP("vmovn.i%d d%u, q%u\n", 16 << size, dreg, mreg);
7382 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
7383 if (mreg & 1)
7385 mreg >>= 1;
7404 DIP("vqmovun.s%d d%u, q%u\n", 16 << size, dreg, mreg);
7414 DIP("vqmovn.s%d d%u, q%u\n", 16 << size, dreg, mreg);
7424 DIP("vqmovn.u%d d%u, q%u\n", 16 << size, dreg, mreg);
7431 assign(res, unop(op, getQReg(mreg)));
7432 assign(tmp, unop(op2, getQReg(mreg)));
7454 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7457 DIP("vshll.i%d q%u, d%u, #%d\n", 8 << size, dreg, mreg, 8 << size);
7469 putQReg(dreg, unop(Iop_F16toF32x4, getDRegI64(mreg)),
7471 DIP("vcvt.f32.f16 q%u, d%u\n", dreg, mreg);
7473 if (mreg & 1)
7475 mreg >>= 1;
7476 putDRegI64(dreg, unop(Iop_F32toF16x4, getQReg(mreg)),
7478 DIP("vcvt.f16.f32 d%u, q%u\n", dreg, mreg);
7495 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7496 DIP("vrecpe.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7499 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7500 DIP("vrecpe.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7517 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7518 DIP("vrsqrte.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7520 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7521 DIP("vrsqrte.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7533 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7538 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7543 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7548 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7554 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7556 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);