Lines Matching defs:Rs
5425 (LSL|LSR|ASL|ASR|ROR) Rs
10140 UMULL RdLo, RdHi, Rm, Rs
10141 SMULL RdLo, RdHi, Rm, Rs
10142 UMLAL RdLo, RdHi, Rm, Rs
10143 SMLAL RdLo, RdHi, Rm, Rs. */
10350 if (inst.operands[2].isreg) /* Rd, {Rm,} Rs */
10405 SMLAxy{cond} Rd,Rm,Rs,Rn
10406 SMLAWy{cond} Rd,Rm,Rs,Rn
10419 SMLALxy{cond} Rdlo,Rdhi,Rm,Rs
10436 SMULxy{cond} Rd,Rm,Rs
11066 MIAcc acc0,Rm,Rs
11067 MIAPHcc acc0,Rm,Rs
11068 MIAxycc acc0,Rm,Rs. */
11380 int Rd, Rs, Rn;
11383 Rs = (inst.operands[1].present
11384 ? inst.operands[1].reg /* Rd, Rs, foo */
11407 constraint (Rd == REG_SP && Rs != REG_SP, BAD_SP);
11416 if (Rd == REG_SP && Rs == REG_SP && !flags)
11418 else if (Rd <= 7 && Rs == REG_SP && add && !flags)
11420 else if (Rd <= 7 && Rs == REG_PC && add && !flags)
11422 else if (Rd <= 7 && Rs <= 7 && narrow)
11432 inst.instruction |= (Rd << 4) | Rs;
11457 constraint (Rs != REG_LR || inst.instruction != T_MNEM_subs,
11469 else if (Rs == REG_PC)
11486 inst.instruction |= Rs << 16;
11498 if (Rd > 7 || Rs > 7 || Rn > 7)
11507 inst.instruction |= Rd | (Rs << 3) | (Rn << 6);
11511 if (inst.instruction == T_MNEM_add && (Rd == Rs || Rd == Rn))
11521 Rn = Rs;
11522 Rs = Rd;
11535 constraint (Rd == REG_SP && Rs != REG_SP, BAD_SP);
11536 constraint (Rs == REG_PC, BAD_PC);
11544 inst.instruction |= Rs << 16;
11545 constraint (Rd == REG_SP && Rs == REG_SP && value > 3,
11547 constraint (Rd == REG_SP && Rs == REG_SP && shift != SHIFT_LSL,
11558 if (!inst.operands[2].isreg) /* Rd, Rs, #imm */
11560 constraint ((Rd > 7 && (Rd != REG_SP || Rs != REG_SP))
11561 || (Rs > 7 && Rs != REG_SP && Rs != REG_PC),
11566 inst.instruction |= (Rd << 4) | Rs;
11574 /* We now have Rd, Rs, and Rn set to registers. */
11575 if (Rd > 7 || Rs > 7 || Rn > 7)
11582 if (Rs == Rd)
11585 inst.instruction |= Rs << 3;
11593 inst.instruction |= Rd | (Rs << 3) | (Rn << 6);
11647 int Rd, Rs, Rn;
11650 Rs = (inst.operands[1].present
11651 ? inst.operands[1].reg /* Rd, Rs, foo */
11656 reject_bad_reg (Rs);
11669 inst.instruction |= Rs << 16;
11682 if (Rd > 7 || Rn > 7 || Rs > 7)
11690 && Rd == Rs)
11704 inst.instruction |= Rs << 16;
11717 constraint (Rd > 7 || Rs > 7 || Rn > 7, BAD_HIREG);
11718 constraint (Rd != Rs,
11735 int Rd, Rs, Rn;
11738 Rs = (inst.operands[1].present
11739 ? inst.operands[1].reg /* Rd, Rs, foo */
11744 reject_bad_reg (Rs);
11757 inst.instruction |= Rs << 16;
11770 if (Rd > 7 || Rn > 7 || Rs > 7)
11779 if (Rd == Rs)
11790 inst.instruction |= Rs << 3;
11801 inst.instruction |= Rs << 16;
11814 constraint (Rd > 7 || Rs > 7 || Rn > 7, BAD_HIREG);
11819 if (Rd == Rs)
11822 inst.instruction |= Rs << 3;
13007 "MOV Rd, Rs with two low registers is not "
13021 Generate LSLS Rd, Rs, #0. */
13056 /* A move of two lowregs is encoded as ADD Rd, Rs, #0
13665 unsigned Rd, Rs;
13668 Rs = (inst.operands[1].present
13669 ? inst.operands[1].reg /* Rd, Rs, foo */
13673 reject_bad_reg (Rs);
13678 inst.instruction |= Rs << 16;
13688 if (Rd > 7 || Rs > 7)
13704 inst.instruction |= Rs << 3;
13838 if (inst.operands[2].isreg) /* Rd, {Rs,} Rn */
15455 do_vfp_nsyn_add_sub (enum neon_shape rs)
15459 if (rs == NS_FFF || rs == NS_HHH)
15467 if (rs == NS_HHH)
15485 enum neon_shape rs;
15491 rs = neon_select_shape (NS_HH, NS_FF, NS_DD, NS_NULL);
15492 et = neon_check_type (2, rs, N_EQK | N_VFP, N_F_ALL | N_KEY | N_VFP);
15496 rs = neon_select_shape (NS_HHH, NS_FFF, NS_DDD, NS_NULL);
15497 et = neon_check_type (3, rs, N_EQK | N_VFP, N_EQK | N_VFP,
15507 pfn (rs);
15516 do_vfp_nsyn_mla_mls (enum neon_shape rs)
15520 if (rs == NS_FFF || rs == NS_HHH)
15528 if (rs == NS_HHH)
15541 do_vfp_nsyn_fma_fms (enum neon_shape rs)
15545 if (rs == NS_FFF || rs == NS_HHH)
15553 if (rs == NS_HHH)
15566 do_vfp_nsyn_mul (enum neon_shape rs)
15568 if (rs == NS_FFF || rs == NS_HHH)
15573 if (rs == NS_HHH)
15581 do_vfp_nsyn_abs_neg (enum neon_shape rs)
15584 neon_check_type (2, rs, N_EQK | N_VFP, N_F_ALL | N_VFP | N_KEY);
15586 if (rs == NS_FF || rs == NS_HH)
15594 if (rs == NS_HH)
15632 enum neon_shape rs = neon_select_shape (NS_HH, NS_FF, NS_DD, NS_NULL);
15633 neon_check_type (2, rs, N_EQK | N_VFP, N_F_ALL | N_KEY | N_VFP);
15635 if (rs == NS_FF || rs == NS_HH)
15640 if (rs == NS_HH)
15650 enum neon_shape rs = neon_select_shape (NS_HHH, NS_FFF, NS_DDD, NS_NULL);
15651 neon_check_type (3, rs, N_EQK | N_VFP, N_EQK | N_VFP,
15654 if (rs == NS_FFF || rs == NS_HHH)
15659 if (rs == NS_HHH)
15669 enum neon_shape rs = neon_select_shape (NS_HHH, NS_FFF, NS_DDD, NS_NULL);
15670 neon_check_type (3, rs, N_EQK | N_VFP, N_EQK | N_VFP,
15673 if (rs == NS_FFF || rs == NS_HHH)
15679 if (rs == NS_HHH)
15825 enum neon_shape rs = neon_select_shape (NS_IQQ, NS_IQR, NS_NULL);
15827 = neon_check_type (3, rs, N_EQK, N_KEY | N_F_MVE | N_I_MVE | N_SU_32,
15904 enum neon_shape rs = neon_select_shape (NS_IQQ, NS_IQR, NS_NULL);
15906 = neon_check_type (3, rs, N_EQK, N_KEY | N_F_MVE | N_I_MVE | N_SU_32,
15909 constraint (rs == NS_IQR && inst.operands[2].reg == REG_PC
15957 enum neon_shape rs = neon_select_shape (NS_QQ, NS_NULL);
15959 = neon_check_type (2, rs, N_EQK, N_KEY | N_S8 | N_S16 | N_S32);
15972 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
15974 = neon_check_type (3, rs, N_F_MVE | N_KEY, N_EQK, N_EQK);
16007 enum neon_shape rs;
16012 rs = neon_select_shape (NS_QRI, NS_NULL);
16013 et = neon_check_type (2, rs, N_KEY | N_U8 | N_U16 | N_U32, N_EQK);
16024 rs = neon_select_shape (NS_QRRI, NS_NULL);
16025 et = neon_check_type (3, rs, N_KEY | N_U8 | N_U16 | N_U32, N_EQK, N_EQK);
16041 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
16043 = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
16230 enum neon_shape rs = neon_select_shape (NS_QQ, NS_NULL);
16232 = neon_check_type (2, rs, N_EQK, N_F_MVE | N_KEY);
16250 enum neon_shape rs = neon_select_shape (NS_QQQI, NS_NULL);
16252 = neon_check_type (3, rs, N_EQK, N_EQK, N_F_MVE | N_KEY);
16342 enum neon_shape rs;
16357 rs = neon_select_shape (NS_HH, NS_FF, NS_DD, NS_NULL);
16358 neon_check_type (2, rs, N_EQK | N_VFP, N_F_ALL | N_KEY | N_VFP);
16360 if (rs == NS_FF || rs == NS_HH)
16373 rs = neon_select_shape (NS_HI, NS_FI, NS_DI, NS_NULL);
16374 neon_check_type (2, rs, N_F_ALL | N_KEY | N_VFP, N_EQK);
16388 if (rs == NS_FI || rs == NS_HI)
16402 if (rs == NS_HI || rs == NS_HH)
16723 enum neon_shape rs;
16726 rs = neon_select_shape (NS_QQQ, NS_QQR, NS_NULL);
16728 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
16730 et = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_32 | N_KEY);
16733 if (rs != NS_QQR)
16734 neon_three_same (neon_quad (rs), et.type == NT_unsigned, et.size);
16744 enum neon_shape rs;
16748 rs = neon_select_shape (NS_QQR, NS_QQQ, NS_NULL);
16749 et = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
16753 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
16754 et = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_ALL | N_KEY);
16756 if (rs == NS_QQR)
16759 neon_three_same (neon_quad (rs), et.type == NT_unsigned, et.size);
16789 enum neon_shape rs;
16793 rs = neon_select_shape (NS_QQI, NS_NULL);
16794 et = neon_check_type (2, rs, N_EQK, N_KEY | N_I_MVE);
16798 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
16799 et = neon_check_type (2, rs, N_EQK, N_KEY | N_I_ALL);
16806 neon_imm_shift (false, 0, neon_quad (rs), et, imm);
16810 enum neon_shape rs;
16814 rs = neon_select_shape (NS_QQQ, NS_QQR, NS_NULL);
16815 et = neon_check_type (3, rs, N_EQK, N_SU_MVE | N_KEY, N_EQK | N_EQK);
16819 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
16820 et = neon_check_type (3, rs, N_EQK, N_SU_ALL | N_KEY, N_EQK | N_SGN);
16824 if (rs == NS_QQR)
16856 neon_three_same (neon_quad (rs), et.type == NT_unsigned, et.size);
16869 enum neon_shape rs;
16873 rs = neon_select_shape (NS_QQI, NS_NULL);
16874 et = neon_check_type (2, rs, N_EQK, N_KEY | N_SU_MVE);
16878 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
16879 et = neon_check_type (2, rs, N_EQK, N_SU_ALL | N_KEY);
16886 neon_imm_shift (true, et.type == NT_unsigned, neon_quad (rs), et, imm);
16890 enum neon_shape rs;
16895 rs = neon_select_shape (NS_QQQ, NS_QQR, NS_NULL);
16896 et = neon_check_type (3, rs, N_EQK, N_SU_MVE | N_KEY, N_EQK | N_EQK);
16900 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
16901 et = neon_check_type (3, rs, N_EQK, N_SU_ALL | N_KEY, N_EQK | N_SGN);
16904 if (rs == NS_QQR)
16930 neon_three_same (neon_quad (rs), et.type == NT_unsigned, et.size);
16941 enum neon_shape rs;
16945 rs = neon_select_shape (NS_QQR, NS_QQQ, NS_NULL);
16946 et = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
16950 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
16951 et = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_ALL | N_KEY);
16956 if (rs == NS_QQR)
16985 neon_three_same (neon_quad (rs), et.type == NT_unsigned, et.size);
17050 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
17051 if (rs == NS_QQQ
17055 else if (rs != NS_QQQ
17059 neon_check_type (3, rs, N_IGNORE_TYPE);
17062 neon_three_same (neon_quad (rs), 0, -1);
17069 enum neon_shape rs = (three_ops_form
17074 if (rs == NS_QQI
17078 else if (rs != NS_QQI
17084 et = neon_check_type (2, rs, N_I32 | N_I16 | N_KEY, N_EQK);
17086 et = neon_check_type (2, rs, N_I8 | N_I16 | N_I32 | N_I64 | N_F32
17144 inst.instruction |= neon_quad (rs) << 6;
17157 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
17158 neon_check_type (3, rs, N_IGNORE_TYPE);
17159 neon_three_same (neon_quad (rs), 0, -1);
17166 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_QQR, NS_NULL);
17167 struct neon_type_el et = neon_check_type (3, rs, N_EQK | destbits, N_EQK,
17172 if (rs == NS_QQR)
17175 neon_three_same (neon_quad (rs), 0, et.size == 16 ? (int) et.size : -1);
17180 if (rs
17183 neon_three_same (neon_quad (rs), et.type == ubit_meaning, et.size);
17486 enum neon_shape rs = neon_select_shape (NS_RRQ, NS_NULL);
17488 = neon_check_type (3, rs, N_EQK, N_EQK, N_S32 | N_U32 | N_KEY);
17510 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_QQR, NS_NULL);
17511 struct neon_type_el et = neon_check_type (3, rs, N_EQK , N_EQK,
17533 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_QQR, NS_NULL);
17534 struct neon_type_el et = neon_check_type (3, rs, N_EQK,
17537 constraint (rs == NS_QQR && et.size == 64, BAD_FPU);
17542 if ((rs == NS_QQQ || rs == NS_QQR) && et.size != 64)
17551 if (rs != NS_QQR
17601 enum neon_shape rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
17602 struct neon_type_el et = neon_check_type (2, rs,
17610 inst.instruction |= neon_quad (rs) << 6;
17712 enum neon_shape rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
17713 struct neon_type_el et = neon_check_type (3, rs,
17716 neon_mul_mac (et, neon_quad (rs));
17722 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
17723 neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_I_MVE | N_KEY);
17741 enum neon_shape rs;
17752 rs = neon_select_shape (NS_QQS, NS_NULL);
17753 rs, N_EQK, N_EQK, N_BF16 | N_KEY);
17767 rs = neon_select_shape (NS_QQQ, NS_NULL);
17768 neon_check_type (3, rs, N_EQK, N_EQK, N_BF16 | N_KEY);
17786 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_QQR, NS_NULL);
17787 struct neon_type_el et = neon_check_type (3, rs, N_F_MVE | N_KEY, N_EQK,
17790 if (rs == NS_QQR)
17838 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
17839 struct neon_type_el et = neon_check_type (3, rs,
17841 neon_three_same (neon_quad (rs), 0, et.size);
17866 enum neon_shape rs = neon_select_shape (NS_QQR, NS_QQQ, NS_NULL);
17868 = neon_check_type (3, rs, N_EQK, N_EQK, N_I_MVE | N_F_MVE | N_KEY);
17893 enum neon_shape rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
17894 struct neon_type_el et = neon_check_type (3, rs,
17897 neon_mul_mac (et, neon_quad (rs));
17901 enum neon_shape rs;
17905 rs = neon_select_shape (NS_QQR, NS_QQQ, NS_NULL);
17906 et = neon_check_type (3, rs,
17911 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
17912 et = neon_check_type (3, rs,
17917 if (rs == NS_QQR)
17921 neon_three_same (neon_quad (rs), 0, et.size);
17928 enum neon_shape rs = neon_select_shape (NS_RQ, NS_NULL);
17930 = neon_check_type (2, rs, N_EQK, N_SU_32 | N_KEY);
17948 enum neon_shape rs = neon_select_shape (NS_QQQI, NS_NULL);
17950 = neon_check_type (3, rs, N_EQK, N_EQK, N_S8 | N_S16 | N_S32 | N_KEY);
17972 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_QQR, NS_NULL);
17974 = neon_check_type (3, rs, N_EQK, N_EQK, N_S16 | N_S32 | N_KEY);
17978 || (rs == NS_QQQ && inst.operands[0].reg == inst.operands[2].reg)))
17986 if (rs == NS_QQQ)
18001 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
18003 = neon_check_type (3, rs, N_KEY | N_I32, N_EQK, N_EQK);
18019 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
18021 = neon_check_type (3, rs, N_EQK, N_EQK, N_8 | N_16 | N_32 | N_KEY);
18047 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
18049 = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
18062 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
18064 = neon_check_type (3, rs, N_EQK, N_EQK, N_S_32 | N_KEY);
18077 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
18079 = neon_check_type (3, rs, N_EQK, N_EQK, N_S8 | N_S16 | N_S32 | N_KEY);
18094 enum neon_shape rs = neon_select_shape (NS_HHH, NS_FFF, NS_DDD, NS_DDS,
18100 if (rs == NS_QQQ)
18109 constraint (rs != NS_QQQ, BAD_FPU);
18110 struct neon_type_el et = neon_check_type (3, rs, N_EQK , N_EQK,
18142 enum neon_shape rs = neon_select_shape (NS_RQQ, NS_NULL);
18144 if (rs == NS_NULL)
18165 enum neon_shape rs = neon_select_shape (NS_RQQ, NS_NULL);
18166 struct neon_type_el et = neon_check_type (3, rs,
18201 enum neon_shape rs = neon_select_shape (NS_RRQQ, NS_NULL);
18203 = neon_check_type (4, rs, N_EQK, N_EQK, N_EQK,
18268 enum neon_shape rs = neon_select_shape (NS_RQ, NS_NULL);
18270 = neon_check_type (2, rs, N_EQK, N_F_MVE | N_KEY);
18288 enum neon_shape rs = neon_select_shape (NS_RQ, NS_NULL);
18292 et = neon_check_type (2, rs, N_EQK, N_SU_MVE | N_KEY);
18294 et = neon_check_type (2, rs, N_EQK, N_S8 | N_S16 | N_S32 | N_KEY);
18328 enum neon_shape rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
18329 struct neon_type_el et = neon_check_type (3, rs,
18332 neon_mul_mac (et, neon_quad (rs));
18336 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
18337 struct neon_type_el et = neon_check_type (3, rs,
18341 neon_three_same (neon_quad (rs), 0, et.size);
18346 enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
18348 = neon_check_type (3, rs, N_EQK, N_EQK, N_S_32 | N_KEY);
18358 enum neon_shape rs
18359 struct neon_type_el et = neon_check_type (3, rs, N_EQK, N_EQK,
18362 neon_three_same (neon_quad (rs), 1, et.size == 16 ? (int) et.size : -1);
18375 enum neon_shape rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
18376 struct neon_type_el et = neon_check_type (3, rs, N_EQK, N_EQK,
18378 neon_three_same (neon_quad (rs), 0, et.size == 16 ? (int) et.size : -1);
18384 enum neon_shape rs;
18390 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
18391 et = neon_check_type (2, rs, N_EQK, N_S_32 | N_F_16_32 | N_KEY);
18401 inst.instruction |= neon_quad (rs) << 6;
18414 enum neon_shape rs;
18418 rs = neon_select_shape (NS_QQI, NS_NULL);
18419 et = neon_check_type (2, rs, N_EQK, N_8 | N_16 | N_32 | N_KEY);
18423 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
18424 et = neon_check_type (2, rs, N_EQK, N_8 | N_16 | N_32 | N_64 | N_KEY);
18431 neon_imm_shift (false, 0, neon_quad (rs), et, imm);
18440 enum neon_shape rs;
18444 rs = neon_select_shape (NS_QQI, NS_NULL);
18445 et = neon_check_type (2, rs, N_EQK, N_8 | N_16 | N_32 | N_KEY);
18449 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
18450 et = neon_check_type (2, rs, N_EQK, N_8 | N_16 | N_32 | N_64 | N_KEY);
18456 neon_imm_shift (false, 0, neon_quad (rs), et, et.size - imm);
18465 enum neon_shape rs;
18469 rs = neon_select_shape (NS_QQI, NS_NULL);
18470 et = neon_check_type (2, rs, N_EQK, N_S8 | N_S16 | N_S32 | N_KEY);
18474 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
18475 et = neon_check_type (2, rs, N_EQK | N_UNS,
18487 neon_imm_shift (false, 0, neon_quad (rs), et, imm);
18690 get_neon_cvt_flavour (enum neon_shape rs)
18693 et = neon_check_type (2, rs, (R) | (X), (R) | (Y)); \
18701 unsigned whole_reg = (rs == NS_FFI || rs == NS_FD || rs == NS_DF
18702 || rs == NS_FF) ? N_VFP : 0;
18707 unsigned key = (rs == NS_QQI || rs == NS_DDI || rs == NS_FFI) ? N_KEY : 0;
18729 do_vfp_nsyn_cvt (enum neon_shape rs, enum neon_cvt_flavour flavour)
18733 if (rs == NS_DDI || rs == NS_QQI || rs == NS_FFI
18734 || rs == NS_FHI || rs == NS_HFI)
18783 enum neon_shape rs = neon_select_shape (NS_FH, NS_FF, NS_FD, NS_NULL);
18784 enum neon_cvt_flavour flavour = get_neon_cvt_flavour (rs);
18876 enum neon_shape rs = neon_select_shape (NS_DDI, NS_QQI, NS_FFI, NS_DD, NS_QQ,
18880 enum neon_cvt_flavour flavour = get_neon_cvt_flavour (rs);
18894 && (rs == NS_FD || rs == NS_FF))
18905 && (rs == NS_FH))
18916 do_vfp_nsyn_cvt (rs, flavour);
18923 switch (rs)
18947 if ((rs != NS_QQI || !ARM_CPU_HAS_FEATURE (cpu_variant, mve_fp_ext))
18988 inst.instruction |= neon_quad (rs) << 6;
19048 inst.instruction |= neon_quad (rs) << 6;
19084 inst.instruction |= neon_quad (rs) << 6;
19103 if ((rs == NS_DQ)
19110 if ((rs == NS_QD)
19117 if (rs == NS_DQ)
19145 do_vfp_nsyn_cvt (rs, flavour);
19206 enum neon_shape rs = neon_select_shape (NS_HF, NS_HD, NS_FH, NS_FF, NS_FD,
19209 if (rs == NS_NULL)
19211 else if (rs == NS_QQ || rs == NS_QQI)
19217 enum neon_cvt_flavour flavour = get_neon_cvt_flavour (rs);
19235 else if (rs == NS_QQ && flavour == neon_cvt_flavour_f32_f16)
19237 else if (rs == NS_QQ && flavour != neon_cvt_flavour_f16_f32)
19247 if (rs == NS_QQ)
19261 else if (neon_check_type (2, rs, N_F16, N_F32 | N_VFP).type != NT_invtype)
19266 else if (neon_check_type (2, rs, N_F32 | N_VFP, N_F16).type != NT_invtype)
19271 else if (neon_check_type (2, rs, N_F16, N_F64 | N_VFP).type != NT_invtype)
19281 else if (neon_check_type (2, rs, N_F64 | N_VFP, N_F16).type != NT_invtype)
19291 else if (neon_check_type (2, rs, N_BF16 | N_VFP, N_F32).type != NT_invtype)
19319 enum neon_shape rs = neon_select_shape (NS_DI, NS_QI, NS_NULL);
19320 struct neon_type_el et = neon_check_type (2, rs,
19362 inst.instruction |= neon_quad (rs) << 6;
19376 enum neon_shape rs;
19378 rs = neon_select_shape (NS_QQ, NS_NULL);
19380 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
19382 if (rs == NS_NULL)
19390 inst.instruction |= neon_quad (rs) << 6;
19429 enum neon_shape rs = neon_select_shape (NS_QDD, NS_HHH, NS_FFF, NS_DDD, NS_NULL);
19430 if (rs == NS_QDD)
19543 enum neon_shape rs;
19558 rs = neon_select_shape (NS_DHS, NS_QDS, NS_NULL);
19566 rs = neon_select_shape (NS_DHH, NS_QDD, NS_NULL);
19583 unsigned quad_p = (rs == NS_QDD || rs == NS_QDS);
19691 enum neon_shape rs = neon_select_shape (NS_DDDI, NS_QQQI, NS_NULL);
19692 struct neon_type_el et = neon_check_type (3, rs,
19696 constraint (imm >= (unsigned) (neon_quad (rs) ? 16 : 8),
19704 inst.instruction |= neon_quad (rs) << 6;
19716 enum neon_shape rs;
19718 rs = neon_select_shape (NS_QQ, NS_NULL);
19720 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
19722 struct neon_type_el et = neon_check_type (2, rs,
19739 neon_two_same (neon_quad (rs), 1, et.size);
19749 enum neon_shape rs = neon_select_shape (NS_DS, NS_QS, NS_NULL);
19750 struct neon_type_el et = neon_check_type (2, rs,
19765 inst.instruction |= neon_quad (rs) << 6;
19773 enum neon_shape rs = neon_select_shape (NS_DR, NS_QR, NS_NULL);
19774 struct neon_type_el et = neon_check_type (2, rs,
19776 if (rs == NS_QR)
19805 inst.instruction |= neon_quad (rs) << 21;
19921 enum neon_shape rs = neon_select_shape (NS_RRSS, NS_SSRR, NS_RRFF, NS_FFRR,
19929 switch (rs)
19932 et = neon_check_type (2, rs, N_EQK, N_F64 | N_KEY);
19963 inst.instruction |= neon_quad (rs) << 6;
19970 et = neon_check_type (2, rs, N_EQK, N_F64 | N_KEY);
20183 if (rs == NS_HI)
20194 if (rs == NS_RH)
20202 if (rs == NS_HR)
20290 enum neon_shape rs;
20295 rs = neon_select_shape (NS_QQI, NS_NULL);
20296 et = neon_check_type (2, rs, N_EQK, N_SU_MVE | N_KEY);
20300 rs = neon_select_shape (NS_DDI, NS_QQI, NS_NULL);
20301 et = neon_check_type (2, rs, N_EQK, N_SU_ALL | N_KEY);
20315 neon_imm_shift (true, et.type == NT_unsigned, neon_quad (rs), et,
20322 enum neon_shape rs = neon_select_shape (NS_HH, NS_NULL);
20323 constraint (rs != NS_HH, _("invalid suffix"));
20358 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20359 struct neon_type_el et = neon_check_type (2, rs,
20362 neon_two_same (neon_quad (rs), 1, et.size);
20368 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20369 struct neon_type_el et = neon_check_type (2, rs,
20371 if (rs == NS_DD && et.size == 32)
20378 neon_two_same (neon_quad (rs), 1, et.size);
20387 enum neon_shape rs;
20389 rs = neon_select_shape (NS_QQ, NS_NULL);
20391 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20392 struct neon_type_el et = neon_check_type (2, rs,
20394 neon_two_same (neon_quad (rs), 1, et.size);
20400 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20401 struct neon_type_el et = neon_check_type (2, rs, N_EQK, N_SU_32 | N_KEY);
20404 neon_two_same (neon_quad (rs), 1, et.size);
20410 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20411 struct neon_type_el et = neon_check_type (2, rs,
20414 neon_two_same (neon_quad (rs), 1, et.size);
20423 enum neon_shape rs;
20425 rs = neon_select_shape (NS_QQ, NS_NULL);
20427 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20429 struct neon_type_el et = neon_check_type (2, rs,
20431 neon_two_same (neon_quad (rs), 1, et.size);
20440 enum neon_shape rs;
20442 rs = neon_select_shape (NS_QQ, NS_NULL);
20444 rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20446 struct neon_type_el et = neon_check_type (2, rs,
20448 neon_two_same (neon_quad (rs), 1, et.size);
20454 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20455 struct neon_type_el et = neon_check_type (2, rs,
20457 neon_two_same (neon_quad (rs), 1, et.size);
20463 enum neon_shape rs = neon_select_shape (NS_DD, NS_QQ, NS_NULL);
20464 if (rs == NS_NULL)
20466 neon_two_same (neon_quad (rs), 1, -1);
21000 do_vfp_nsyn_fpv8 (enum neon_shape rs)
21004 if (neon_shape_class[rs] == SC_DOUBLE)
21010 if (rs == NS_FFF || rs == NS_HHH)
21015 if (rs == NS_HHH)
21021 if (rs == NS_DDD)
21054 enum neon_shape rs = neon_select_shape (NS_HH, NS_FF, NS_DD, NS_QQ, NS_NULL);
21057 if (rs == NS_NULL)
21062 if (neon_shape_class[rs] == SC_DOUBLE)
21066 et = neon_check_type (2, rs, N_EQK | N_VFP, N_F_ALL | N_KEY
21076 if (rs == NS_FF || rs == NS_HH)
21093 inst.instruction |= (rs == NS_DD) << 8;
21097 if (rs == NS_HH)
21104 et = neon_check_type (2, rs, N_EQK, N_F_16_32 | N_KEY);
21119 inst.instruction |= neon_quad (rs) << 6;
21221 enum neon_shape rs = neon_select_shape (NS_DDSI, NS_QQSI, NS_NULL);
21222 unsigned size = neon_check_type (3, rs, N_EQK, N_EQK,
21233 inst.instruction |= neon_quad (rs) << 6;
21239 enum neon_shape rs;
21241 rs = neon_select_shape (NS_QQQI, NS_NULL);
21243 rs = neon_select_shape (NS_DDDI, NS_QQQI, NS_NULL);
21245 unsigned size = neon_check_type (3, rs, N_EQK, N_EQK,
21252 neon_three_same (neon_quad (rs), 0, -1);
21271 enum neon_shape rs;
21275 rs = neon_select_shape (NS_DDDI, NS_QQQI, NS_NULL);
21276 et = neon_check_type (3, rs, N_EQK, N_EQK, N_KEY | N_F16 | N_F32);
21280 rs = neon_select_shape (NS_QQQI, NS_NULL);
21281 et = neon_check_type (3, rs, N_EQK, N_EQK, N_KEY | N_F16 | N_F32 | N_I8
21297 neon_three_same (neon_quad (rs), 0, -1);
21324 enum neon_shape rs;
21341 rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
21346 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
21350 neon_check_type (3, rs, N_EQK, N_EQK, N_KEY | N_U8);
21352 neon_check_type (3, rs, N_EQK, N_EQK, N_KEY | N_S8);
21357 neon_three_same (neon_quad (rs), 0, 32);
21395 enum neon_shape rs;
21399 rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
21400 neon_check_type (3, rs, N_EQK, N_EQK, N_S8 | N_KEY);
21408 neon_three_args (rs == NS_QQS);
21414 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
21415 neon_check_type (3, rs, N_EQK, N_EQK, N_S8 | N_KEY);
21416 neon_three_args (rs == NS_QQQ);
21423 enum neon_shape rs;
21427 rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
21428 neon_check_type (3, rs, N_EQK, N_EQK, N_U8 | N_KEY);
21436 neon_three_args (rs == NS_QQS);
21444 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
21445 neon_check_type (3, rs, N_EQK, N_EQK, N_S8 | N_KEY);
21456 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
21457 neon_check_type (3, rs, N_EQK, N_EQK, N_U8 | N_KEY);
21847 vcx_handle_common_checks (unsigned num_args, enum neon_shape rs)
21851 enum vcx_reg_type reg_type = vcx_get_reg_type (rs);
21868 enum neon_shape rs = neon_select_shape (NS_PQI, NS_PDI, NS_PFI, NS_NULL);
21869 vcx_handle_common_checks (1, rs);
21875 if (rs != NS_PQI)
21884 enum neon_shape rs = neon_select_shape (NS_PQQI, NS_PDDI, NS_PFFI, NS_NULL);
21885 vcx_handle_common_checks (2, rs);
21891 if (rs != NS_PQQI)
21900 enum neon_shape rs = neon_select_shape (NS_PQQQI, NS_PDDDI, NS_PFFFI, NS_NULL);
21901 vcx_handle_common_checks (3, rs);
21906 if (rs != NS_PQQQI)
22104 enum neon_shape rs;
22109 rs = neon_select_shape (NS_DDS, NS_QQS, NS_NULL);
22110 neon_check_type (3, rs, N_EQK, N_EQK, N_BF16 | N_KEY);
22118 neon_three_args (rs == NS_QQS);
22123 rs = neon_select_shape (NS_DDD, NS_QQQ, NS_NULL);
22124 neon_check_type (3, rs, N_EQK, N_EQK, N_BF16 | N_KEY);
22125 neon_three_args (rs == NS_QQQ);
22132 enum neon_shape rs = neon_select_shape (NS_QQQ, NS_NULL);
22133 neon_check_type (3, rs, N_EQK, N_EQK, N_BF16 | N_KEY);
28702 0x000F Rs
28707 int rs = newval & 0xf;
28712 if ((rd > 7 && (rd != REG_SP || rs != REG_SP))
28713 || (rs > 7 && rs != REG_SP && rs != REG_PC))
28735 else if (rs == REG_PC || rs == REG_SP)
28780 newval = (rs == REG_PC ? T_OPCODE_ADD_PC : T_OPCODE_ADD_SP);
28784 else if (rs == rd)
28798 newval |= rd | (rs << 3) | (value << 6);
28905 int rd, rs;
28911 0x000F Rs
28915 - Rd == Rs
28919 rs = insn & 0xf;
28920 if ((insn & 0x8000) || (rd != rs) || rd > 7)