Lines Matching refs:mreg
2867 UInt mreg = get_neon_m_regno(theInstr);
2875 getQReg(mreg), mkU8(imm4)), condT);
2878 getDRegI64(mreg), mkU8(imm4)), condT);
2881 reg_t, mreg, imm4);
2892 UInt mreg = get_neon_m_regno(theInstr & ~(1 << 6));
2902 if (dreg >= 0x100 || mreg >= 0x100 || nreg >= 0x100)
2914 assign(old_arg, getDRegI64(mreg));
2961 DIP("}, d%u\n", mreg);
2971 UInt mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
2986 assign(arg_m, getDRegI64(mreg));
3015 DIP("vdup.%d %c%d, d%d[%d]\n", size, Q ? 'q' : 'd', dreg, mreg, index);
3026 UInt mreg = get_neon_m_regno(theInstr);
3042 assign(arg_m, getQReg(mreg));
3048 assign(arg_m, getDRegI64(mreg));
3124 dreg, regType, nreg, regType, mreg);
3185 8 << size, reg_t, dreg, reg_t, nreg, reg_t, mreg);
3296 8 << size, reg_t, dreg, reg_t, nreg, reg_t, mreg);
3311 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3325 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3329 if ( nreg != mreg) {
3340 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3345 DIP("vmov %c%d, %c%d\n", reg_t, dreg, reg_t, mreg);
3359 reg_t, dreg, reg_t, nreg, reg_t, mreg);
3375 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3403 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3430 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3457 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
3538 mreg);
3598 mreg);
3626 mreg);
3639 mreg);
3700 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
3826 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
3966 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
4125 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, Q ? 'q' : 'd',
4155 mreg);
4180 mreg);
4249 mreg);
4328 mreg);
4345 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4357 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4376 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4386 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4440 mreg);
4466 mreg);
4496 Q ? 'q' : 'd', mreg);
4536 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4572 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4590 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4604 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4610 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4618 DIP("vpadd.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4634 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4669 dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4679 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4695 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4709 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4719 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4741 Q ? 'q' : 'd', mreg);
4755 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4759 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4771 DIP("vpmin.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4774 DIP("vpmax.f32 d%u, d%u, d%u\n", dreg, nreg, mreg);
4788 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4797 Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
4821 UInt mreg = get_neon_m_regno(theInstr);
4863 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4868 (A & 1) ? 'q' : 'd', nreg, mreg);
4872 if (mreg & 1)
4874 mreg >>= 1;
4908 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4919 nreg, mreg);
4961 assign(arg_m, unop(cvt, getDRegI64(mreg)));
4963 getDRegI64(mreg))));
4975 nreg, mreg);
4979 if (mreg & 1)
4981 mreg >>= 1;
5018 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5029 nreg, mreg);
5068 assign(arg_m, unop(cvt, getDRegI64(mreg)));
5070 getDRegI64(mreg))));
5080 nreg, mreg);
5108 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5111 8 << size, dreg, nreg, mreg);
5147 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5154 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5160 nreg, mreg);
5185 getDRegI64(mreg)), condT);
5187 8 << size, dreg, nreg, mreg);
5217 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5222 binop(op2, getDRegI64(mreg), mkU64(imm))),
5226 DIP("vqdmull.s%u q%u, d%u, d%u\n", 8 << size, dreg, nreg, mreg);
5242 UInt mreg = get_neon_m_regno(theInstr & ~(1 << 6));
5268 index = mreg >> 3;
5269 mreg &= 7;
5274 index = mreg >> 4;
5275 mreg &= 0xf;
5283 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5293 index = mreg >> 3;
5294 mreg &= 7;
5299 index = mreg >> 4;
5300 mreg &= 0xf;
5308 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5353 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, mreg, index);
5372 index = mreg >> 3;
5373 mreg &= 7;
5378 index = mreg >> 4;
5379 mreg &= 0xf;
5387 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5410 8 << size, dreg, nreg, mreg, index);
5431 index = mreg >> 3;
5432 mreg &= 7;
5437 index = mreg >> 4;
5438 mreg &= 0xf;
5446 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5486 dreg, nreg, mreg, index);
5507 index = mreg >> 3;
5508 mreg &= 7;
5513 index = mreg >> 4;
5514 mreg &= 0xf;
5522 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5532 index = mreg >> 3;
5533 mreg &= 7;
5538 index = mreg >> 4;
5539 mreg &= 0xf;
5547 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5583 Q ? 'q' : 'd', nreg, mreg, index);
5602 index = mreg >> 3;
5603 mreg &= 7;
5608 index = mreg >> 4;
5609 mreg &= 0xf;
5617 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5627 nreg, mreg, index);
5646 index = mreg >> 3;
5647 mreg &= 7;
5652 index = mreg >> 4;
5653 mreg &= 0xf;
5661 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5691 DIP("vqdmull.s%u q%u, d%u, d%u[%u]\n", 8 << size, dreg, nreg, mreg,
5714 index = mreg >> 3;
5715 mreg &= 7;
5720 index = mreg >> 4;
5721 mreg &= 0xf;
5729 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5739 index = mreg >> 3;
5740 mreg &= 7;
5745 index = mreg >> 4;
5746 mreg &= 0xf;
5754 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5792 Q ? 'q' : 'd', nreg, mreg, index);
5814 index = mreg >> 3;
5815 mreg &= 7;
5820 index = mreg >> 4;
5821 mreg &= 0xf;
5829 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5839 index = mreg >> 3;
5840 mreg &= 7;
5845 index = mreg >> 4;
5846 mreg &= 0xf;
5854 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5892 Q ? 'q' : 'd', nreg, mreg, index);
5913 UInt mreg = get_neon_m_regno(theInstr);
5966 assign(reg_m, getQReg(mreg));
5991 assign(reg_m, getDRegI64(mreg));
6026 assign(res, getQReg(mreg));
6029 assign(res, getDRegI64(mreg));
6042 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6050 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6058 assign(reg_m, getQReg(mreg));
6062 assign(reg_m, getDRegI64(mreg));
6118 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6126 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6158 getQReg(mreg),
6170 getDRegI64(mreg),
6176 Q ? 'q' : 'd', mreg, shift_imm);
6207 getQReg(mreg),
6219 getDRegI64(mreg),
6225 Q ? 'q' : 'd', mreg, shift_imm);
6242 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6251 Q ? 'q' : 'd', mreg, shift_imm);
6283 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6307 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6334 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg, shift_imm);
6340 assign(reg_m, getQReg(mreg));
6345 assign(reg_m, getDRegI64(mreg));
6363 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
6364 if (mreg & 1)
6366 mreg >>= 1;
6371 assign(reg_m, getQReg(mreg));
6394 DIP("vshrn.i%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6402 assign(reg_m, getQReg(mreg));
6444 DIP("vmov%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6447 DIP("vrshrn.i%u d%u, q%u, #%u\n", 8 << size, dreg, mreg,
6457 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
6458 if (mreg & 1)
6460 mreg >>= 1;
6483 U ? 'u' : 's', 8 << size, dreg, mreg, shift_imm);
6506 8 << size, dreg, mreg, shift_imm);
6527 assign(reg_m, getQReg(mreg));
6575 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6579 dreg, mreg);
6582 dreg, mreg, shift_imm);
6595 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6604 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg,
6610 putQReg(dreg, binop(op, getQReg(mreg),
6613 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6634 UInt mreg = get_neon_m_regno(theInstr);
6644 assign(arg_m, getQReg(mreg));
6648 assign(arg_m, getDRegI64(mreg));
6671 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6692 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6711 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6740 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6758 Q ? 'q' : 'd', mreg);
6773 Q ? 'q' : 'd', mreg);
6780 mreg);
6789 mreg);
6845 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
6909 Q ? 'q' : 'd', mreg);
6945 Q ? 'q' : 'd', mreg);
6961 assign(arg_m, getQReg(mreg));
6965 assign(arg_m, getDRegI64(mreg));
6994 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7025 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7056 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7087 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7117 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7140 Q ? 'q' : 'd', mreg);
7171 Q ? 'q' : 'd', mreg);
7188 assign(arg_m, getQReg(mreg));
7189 putQReg(mreg, getQReg(dreg), condT);
7193 assign(arg_m, getDRegI64(mreg));
7194 putDRegI64(mreg, getDRegI64(dreg), condT);
7198 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7209 assign(arg_m, getQReg(mreg));
7216 assign(arg_m, getDRegI64(mreg));
7262 putQReg(mreg, mkexpr(res2), condT);
7265 putDRegI64(mreg, mkexpr(res2), condT);
7268 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7281 assign(arg_m, getQReg(mreg));
7288 assign(arg_m, getDRegI64(mreg));
7313 putQReg(mreg, mkexpr(res2), condT);
7316 putDRegI64(mreg, mkexpr(res2), condT);
7319 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7332 assign(arg_m, getQReg(mreg));
7339 assign(arg_m, getDRegI64(mreg));
7364 putQReg(mreg, mkexpr(res2), condT);
7367 putDRegI64(mreg, mkexpr(res2), condT);
7370 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7375 mreg >>= 1;
7383 putDRegI64(dreg, unop(op, getQReg(mreg)), condT);
7384 DIP("vmovn.i%u d%u, q%u\n", 16 << size, dreg, mreg);
7391 mreg = ((theInstr >> 1) & 0x10) | (theInstr & 0xF);
7392 if (mreg & 1)
7394 mreg >>= 1;
7413 DIP("vqmovun.s%u d%u, q%u\n", 16 << size, dreg, mreg);
7423 DIP("vqmovn.s%u d%u, q%u\n", 16 << size, dreg, mreg);
7433 DIP("vqmovn.u%u d%u, q%u\n", 16 << size, dreg, mreg);
7440 assign(res, unop(op, getQReg(mreg)));
7442 assign(tmp, unop(op2, getQReg(mreg)));
7465 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7468 DIP("vshll.i%u q%u, d%u, #%u\n", 8 << size, dreg, mreg, 8 << size);
7480 putQReg(dreg, unop(Iop_F16toF32x4, getDRegI64(mreg)),
7482 DIP("vcvt.f32.f16 q%u, d%u\n", dreg, mreg);
7484 if (mreg & 1)
7486 mreg >>= 1;
7487 putDRegI64(dreg, unop(Iop_F32toF16x4, getQReg(mreg)),
7489 DIP("vcvt.f16.f32 d%u, q%u\n", dreg, mreg);
7506 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7507 DIP("vrecpe.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7510 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7511 DIP("vrecpe.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7528 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7529 DIP("vrsqrte.%c32 q%u, q%u\n", F ? 'f' : 'u', dreg, mreg);
7531 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);
7532 DIP("vrsqrte.%c32 d%u, d%u\n", F ? 'f' : 'u', dreg, mreg);
7544 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7549 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7554 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7559 Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', mreg);
7565 putQReg(dreg, unop(op, getQReg(mreg)), condT);
7567 putDRegI64(dreg, unop(op, getDRegI64(mreg)), condT);