Lines Matching full:mreg
2860 UInt mreg = get_neon_m_regno(theInstr);
2868 getQReg(mreg), mkU8(imm4)), condT);
2871 getDRegI64(mreg), mkU8(imm4)), condT);
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.%d %c%d, d%d[%d]\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%d, %c%d\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 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', 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 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', 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);
4797 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4806 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4830 UInt mreg = get_neon_m_regno(theInstr);
4872 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4877 (A & 1) ? 'q' : 'd', nreg, mreg);
4881 if (mreg & 1)
4883 mreg >>= 1;
4917 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4928 nreg, mreg);
4970 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4972 getDRegI64(mreg))));
4984 nreg, mreg);
4988 if (mreg & 1)
4990 mreg >>= 1;
5027 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5038 nreg, mreg);
5077 assign(arg_m, unop(cvt, getDRegI64(mreg)));
5079 getDRegI64(mreg))));
5089 nreg, mreg);
5117 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5120 8 << size, dreg, nreg, mreg);
5156 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5162 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5167 nreg, mreg);
5192 getDRegI64(mreg)), condT);
5194 8 << size, dreg, nreg, mreg);
5224 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5228 binop(op2, getDRegI64(mreg), mkU64(imm))),
5231 DIP("vqdmull.s%u q%u, d%u, d%u\n", 8 << size, dreg, nreg, mreg);
5247 UInt mreg = get_neon_m_regno(theInstr & ~(1 << 6));
5273 index = mreg >> 3;
5274 mreg &= 7;
5279 index = mreg >> 4;
5280 mreg &= 0xf;
5288 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5298 index = mreg >> 3;
5299 mreg &= 7;
5304 index = mreg >> 4;
5305 mreg &= 0xf;
5313 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5358 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, mreg, index);
5377 index = mreg >> 3;
5378 mreg &= 7;
5383 index = mreg >> 4;
5384 mreg &= 0xf;
5392 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5415 8 << size, dreg, nreg, mreg, index);
5436 index = mreg >> 3;
5437 mreg &= 7;
5442 index = mreg >> 4;
5443 mreg &= 0xf;
5451 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5489 dreg, nreg, mreg, index);
5510 index = mreg >> 3;
5511 mreg &= 7;
5516 index = mreg >> 4;
5517 mreg &= 0xf;
5525 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5535 index = mreg >> 3;
5536 mreg &= 7;
5541 index = mreg >> 4;
5542 mreg &= 0xf;
5550 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5586 Q ? 'q' : 'd', nreg, mreg, index);
5605 index = mreg >> 3;
5606 mreg &= 7;
5611 index = mreg >> 4;
5612 mreg &= 0xf;
5620 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5630 nreg, mreg, index);
5649 index = mreg >> 3;
5650 mreg &= 7;
5655 index = mreg >> 4;
5656 mreg &= 0xf;
5664 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5692 DIP("vqdmull.s%u q%u, d%u, d%u[%u]\n", 8 << size, dreg, nreg, mreg,
5715 index = mreg >> 3;
5716 mreg &= 7;
5721 index = mreg >> 4;
5722 mreg &= 0xf;
5730 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5740 index = mreg >> 3;
5741 mreg &= 7;
5746 index = mreg >> 4;
5747 mreg &= 0xf;
5755 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5791 Q ? 'q' : 'd', nreg, mreg, index);
5813 index = mreg >> 3;
5814 mreg &= 7;
5819 index = mreg >> 4;
5820 mreg &= 0xf;
5828 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5838 index = mreg >> 3;
5839 mreg &= 7;
5844 index = mreg >> 4;
5845 mreg &= 0xf;
5853 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5889 Q ? 'q' : 'd', nreg, mreg, index);
5910 UInt mreg = get_neon_m_regno(theInstr);
5963 assign(reg_m, getQReg(mreg));
5988 assign(reg_m, getDRegI64(mreg));
6023 assign(res, getQReg(mreg));
6026 assign(res, getDRegI64(mreg));
6039 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6047 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6055 assign(reg_m, getQReg(mreg));
6059 assign(reg_m, getDRegI64(mreg));
6115 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6123 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6155 getQReg(mreg),
6167 getDRegI64(mreg),
6173 Q ? 'q' : 'd', mreg, shift_imm);
6204 getQReg(mreg),
6216 getDRegI64(mreg),
6222 Q ? 'q' : 'd', mreg, shift_imm);
6239 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6248 Q ? 'q' : 'd', mreg, shift_imm);
6280 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6304 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6331 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6337 assign(reg_m, getQReg(mreg));
6342 assign(reg_m, getDRegI64(mreg));
6358 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
6359 if (mreg & 1)
6361 mreg >>= 1;
6366 assign(reg_m, getQReg(mreg));
6389 DIP("vshrn.i%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6397 assign(reg_m, getQReg(mreg));
6439 DIP("vmov%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6442 DIP("vrshrn.i%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6452 mreg
6453 if (mreg & 1)
6455 mreg >>= 1;
6478 U ? 'u' : 's', 8 << size, dreg, mreg, shift_imm);
6501 8 << size, dreg, mreg, shift_imm);
6522 assign(reg_m, getQReg(mreg));
6568 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6572 dreg, mreg);
6575 dreg, mreg, shift_imm);
6588 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6597 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6603 putQReg(dreg, binop(op, getQReg(mreg),
6606 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6627 UInt mreg = get_neon_m_regno(theInstr);
6637 assign(arg_m, getQReg(mreg));
6641 assign(arg_m, getDRegI64(mreg));
6664 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6685 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6704 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6733 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6751 Q ? 'q' : 'd', mreg);
6766 Q ? 'q' : 'd', mreg);
6773 mreg);
6782 mreg);
6838 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6900 Q ? 'q' : 'd', mreg);
6934 Q ? 'q' : 'd', mreg);
6950 assign(arg_m, getQReg(mreg));
6954 assign(arg_m, getDRegI64(mreg));
6983 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7014 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7045 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7076 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7106 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7129 Q ? 'q' : 'd', mreg);
7160 Q ? 'q' : 'd', mreg);
7177 assign(arg_m, getQReg(mreg));
7178 putQReg(mreg, getQReg(dreg), condT);
7182 assign(arg_m, getDRegI64(mreg));
7183 putDRegI64(mreg, getDRegI64(dreg), condT);
7187 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7198 assign(old_m, getQReg(mreg));
7205 assign(old_m, getDRegI64(mreg));
7251 putQReg(mreg, mkexpr(new_m), condT);
7254 putDRegI64(mreg, mkexpr(new_m), condT);
7257 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7270 assign(old_m, getQReg(mreg));
7277 assign(old_m, getDRegI64(mreg));
7302 putQReg(mreg, mkexpr(new_m), condT);
7305 putDRegI64(mreg, mkexpr(new_m), condT);
7308 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7321 assign(old_m, getQReg(mreg));
7328 assign(old_m, getDRegI64(mreg));
7353 putQReg(mreg, mkexpr(new_m), condT);
7356 putDRegI64(mreg, mkexpr(new_m), condT);
7359 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7364 mreg >>= 1;
7372 putDRegI64(dreg, unop(op, getQReg(mreg)), condT);
7373 DIP("vmovn.i%u d%u, q%u\n", 16 << size, dreg, mreg);
7380 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
7381 if (mreg & 1)
7383 mreg >>= 1;
7402 DIP("vqmovun.s%u d%u, q%u\n", 16 << size, dreg, mreg);
7412 DIP("vqmovn.s%u d%u, q%u\n", 16 << size, dreg, mreg);
7422 DIP("vqmovn.u%u d%u, q%u\n", 16 << size, dreg, mreg);
7429 assign(res, unop(op, getQReg(mreg)));
7430 assign(tmp, unop(op2, getQReg(mreg)));
7452 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7455 DIP("vshll.i%u q%u, d%u, #%u\n", 8 << size, dreg, mreg, 8 << size);
7467 putQReg(dreg, unop(Iop_F16toF32x4, getDRegI64(mreg)),
7469 DIP("vcvt.f32.f16 q%u, d%u\n", dreg, mreg);
7471 if (mreg & 1)
7473 mreg >>= 1;
7474 putDRegI64(dreg, unop(Iop_F32toF16x4, getQReg(mreg)),
7476 DIP("vcvt.f16.f32 d%u, q%u\n", dreg, mreg);
7493 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7494 DIP("vrecpe.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7497 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7498 DIP("vrecpe.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7515 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7516 DIP("vrsqrte.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7518 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7519 DIP("vrsqrte.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7531 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7536 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7541 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7546 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7552 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7554 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);