Lines Matching defs:imm

1931     uint32_t imm = operand.GetImmediate();
1933 ImmediateT32 immediate_t32(imm);
1945 ImmediateA32 immediate_a32(imm);
2019 uint32_t imm = operand.GetImmediate();
2021 ImmediateT32 immediate_t32(imm);
2033 ImmediateA32 immediate_a32(imm);
2107 uint32_t imm = operand.GetImmediate();
2109 ImmediateT32 immediate_t32(imm);
2111 if (!size.IsWide() && rd.IsLow() && rn.Is(pc) && (imm <= 1020) &&
2112 ((imm % 4) == 0)) {
2113 uint32_t imm_ = imm >> 2;
2120 (imm <= 7)) {
2121 EmitT32_16(0x1c00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
2127 (imm <= 255)) {
2128 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2133 if (!size.IsWide() && rd.IsLow() && rn.Is(sp) && (imm <= 1020) &&
2134 ((imm % 4) == 0)) {
2135 uint32_t imm_ = imm >> 2;
2141 if (!size.IsWide() && rd.Is(sp) && rn.Is(sp) && (imm <= 508) &&
2142 ((imm % 4) == 0)) {
2143 uint32_t imm_ = imm >> 2;
2149 if (!size.IsNarrow() && rn.Is(pc) && (imm <= 4095) &&
2151 EmitT32_32(0xf20f0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2152 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2167 if (!size.IsNarrow() && (imm <= 4095) && ((rn.GetCode() & 0xd) != 0xd) &&
2170 (imm & 0xff) | ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2185 if (!size.IsNarrow() && rn.Is(sp) && (imm <= 4095) &&
2187 EmitT32_32(0xf20d0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2188 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2193 ImmediateA32 immediate_a32(imm);
2320 uint32_t imm = operand.GetImmediate();
2323 if (InITBlock() && rd.IsLow() && (imm <= 255)) {
2324 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2356 uint32_t imm = operand.GetImmediate();
2358 ImmediateT32 immediate_t32(imm);
2361 (imm <= 7)) {
2362 EmitT32_16(0x1c00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
2368 (imm <= 255)) {
2369 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2394 ImmediateA32 immediate_a32(imm);
2489 uint32_t imm = operand.GetImmediate();
2492 if (OutsideITBlock() && rd.IsLow() && (imm <= 255)) {
2493 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2509 uint32_t imm = operand.GetImmediate();
2512 if (rn.Is(pc) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
2513 EmitT32_32(0xf20f0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2514 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2519 if ((imm <= 4095) && ((rn.GetCode() & 0xd) != 0xd) &&
2522 (imm & 0xff) | ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2527 if (rn.Is(sp) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
2528 EmitT32_32(0xf20d0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2529 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
2705 uint32_t imm = operand.GetImmediate();
2707 ImmediateT32 immediate_t32(imm);
2719 ImmediateA32 immediate_a32(imm);
2793 uint32_t imm = operand.GetImmediate();
2795 ImmediateT32 immediate_t32(imm);
2807 ImmediateA32 immediate_a32(imm);
2881 uint32_t imm = operand.GetImmediate();
2883 // ASR<c>{<q>} {<Rd>}, <Rm>, #<imm> ; T2
2885 (imm >= 1) && (imm <= 32)) {
2886 uint32_t amount_ = imm % 32;
2892 // ASR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
2893 if (!size.IsNarrow() && (imm >= 1) && (imm <= 32) &&
2895 uint32_t amount_ = imm % 32;
2902 // ASR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
2903 if ((imm >= 1) && (imm <= 32) && cond.IsNotNever()) {
2904 uint32_t amount_ = imm % 32;
2950 uint32_t imm = operand.GetImmediate();
2952 // ASRS{<q>} {<Rd>}, <Rm>, #<imm> ; T2
2954 (imm >= 1) && (imm <= 32)) {
2955 uint32_t amount_ = imm % 32;
2961 // ASRS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
2962 if (!size.IsNarrow() && (imm >= 1) && (imm <= 32) &&
2964 uint32_t amount_ = imm % 32;
2971 // ASRS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
2972 if ((imm >= 1) && (imm <= 32) && cond.IsNotNever()) {
2973 uint32_t amount_ = imm % 32;
3258 uint32_t imm = operand.GetImmediate();
3260 ImmediateT32 immediate_t32(imm);
3272 ImmediateA32 immediate_a32(imm);
3346 uint32_t imm = operand.GetImmediate();
3348 ImmediateT32 immediate_t32(imm);
3360 ImmediateA32 immediate_a32(imm);
3426 void Assembler::bkpt(Condition cond, uint32_t imm) {
3430 // BKPT{<q>} {#}<imm> ; T1
3431 if ((imm <= 255)) {
3432 EmitT32_16(0xbe00 | imm);
3437 // BKPT{<q>} {#}<imm> ; A1
3438 if ((imm <= 65535) && (cond.Is(al) || AllowUnpredictable())) {
3439 EmitA32(0x01200070U | (cond.GetCondition() << 28) | (imm & 0xf) |
3440 ((imm & 0xfff0) << 4));
3444 Delegate(kBkpt, &Assembler::bkpt, cond, imm);
3830 uint32_t imm = operand.GetImmediate();
3832 ImmediateT32 immediate_t32(imm);
3844 ImmediateA32 immediate_a32(imm);
3914 uint32_t imm = operand.GetImmediate();
3916 ImmediateT32 immediate_t32(imm);
3918 if (!size.IsWide() && rn.IsLow() && (imm <= 255)) {
3919 EmitT32_16(0x2800 | (rn.GetCode() << 8) | imm);
3934 ImmediateA32 immediate_a32(imm);
4193 uint32_t imm = operand.GetImmediate();
4195 ImmediateT32 immediate_t32(imm);
4207 ImmediateA32 immediate_a32(imm);
4281 uint32_t imm = operand.GetImmediate();
4283 ImmediateT32 immediate_t32(imm);
4295 ImmediateA32 immediate_a32(imm);
4503 void Assembler::hlt(Condition cond, uint32_t imm) {
4507 // HLT{<q>} {#}<imm> ; T1
4508 if ((imm <= 63)) {
4509 EmitT32_16(0xba80 | imm);
4514 // HLT{<q>} {#}<imm> ; A1
4515 if ((imm <= 65535) && (cond.Is(al) || AllowUnpredictable())) {
4516 EmitA32(0x01000070U | (cond.GetCondition() << 28) | (imm & 0xf) |
4517 ((imm & 0xfff0) << 4));
4521 Delegate(kHlt, &Assembler::hlt, cond, imm);
4524 void Assembler::hvc(Condition cond, uint32_t imm) {
4529 if ((imm <= 65535) && (OutsideITBlock() || AllowUnpredictable())) {
4530 EmitT32_32(0xf7e08000U | (imm & 0xfff) | ((imm & 0xf000) << 4));
4536 if ((imm <= 65535) && (cond.Is(al) || AllowUnpredictable())) {
4537 EmitA32(0x01400070U | (cond.GetCondition() << 28) | (imm & 0xf) |
4538 ((imm & 0xfff0) << 4));
4542 Delegate(kHvc, &Assembler::hvc, cond, imm);
5003 // LDR{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
5012 // LDR{<c>}{<q>} <Rt>, [SP{, #{+}<imm>}] ; T2
5064 // LDR{<c>}{<q>} <Rt>, [PC, #<_plusminus_><imm>] ; T2
5139 // LDR{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
5321 // LDRB{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
5365 // LDRB{<c>}{<q>} <Rt>, [PC, #<_plusminus_><imm>] ; T1
5442 // LDRB{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
5589 // LDRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>{, #{+/-}<imm>}] ; T1
5600 // LDRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>], #{+/-}<imm> ; T1
5611 // LDRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>{, #{+/-}<imm>}]! ; T1
5622 // LDRD{<c>}{<q>} <Rt>, <Rt2>, [PC, #<_plusminus_><imm>] ; T1
5836 // LDREX{<c>}{<q>} <Rt>, [<Rn>{, #<imm>}] ; T1
5953 // LDRH{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
5998 // LDRH{<c>}{<q>} <Rt>, [PC, #<_plusminus_><imm>] ; T1
6104 // LDRH{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
6217 // LDRSB{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
6253 // LDRSB{<c>}{<q>} <Rt>, [PC, #<_plusminus_><imm>] ; T1
6359 // LDRSB{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
6472 // LDRSH{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
6508 // LDRSH{<c>}{<q>} <Rt>, [PC, #<_plusminus_><imm>] ; T1
6614 // LDRSH{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
6725 uint32_t imm = operand.GetImmediate();
6727 // LSL<c>{<q>} {<Rd>}, <Rm>, #<imm> ; T2
6729 (imm >= 1) && (imm <= 31)) {
6730 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) | (imm << 6));
6734 // LSL{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
6735 if (!size.IsNarrow() && (imm >= 1) && (imm <= 31) &&
6738 ((imm & 0x3) << 6) | ((imm & 0x1c) << 10));
6743 // LSL{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
6744 if ((imm >= 1) && (imm <= 31) && cond.IsNotNever()) {
6746 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
6790 uint32_t imm = operand.GetImmediate();
6792 // LSLS{<q>} {<Rd>}, <Rm>, #<imm> ; T2
6794 (imm >= 1) && (imm <= 31)) {
6795 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) | (imm << 6));
6799 // LSLS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
6800 if (!size.IsNarrow() && (imm >= 1) && (imm <= 31) &&
6803 ((imm & 0x3) << 6) | ((imm & 0x1c) << 10));
6808 // LSLS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
6809 if ((imm >= 1) && (imm <= 31) && cond.IsNotNever()) {
6811 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
6855 uint32_t imm = operand.GetImmediate();
6857 // LSR<c>{<q>} {<Rd>}, <Rm>, #<imm> ; T2
6859 (imm >= 1) && (imm <= 32)) {
6860 uint32_t amount_ = imm % 32;
6866 // LSR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
6867 if (!size.IsNarrow() && (imm >= 1) && (imm <= 32) &&
6869 uint32_t amount_ = imm % 32;
6876 // LSR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
6877 if ((imm >= 1) && (imm <= 32) && cond.IsNotNever()) {
6878 uint32_t amount_ = imm % 32;
6924 uint32_t imm = operand.GetImmediate();
6926 // LSRS{<q>} {<Rd>}, <Rm>, #<imm> ; T2
6928 (imm >= 1) && (imm <= 32)) {
6929 uint32_t amount_ = imm % 32;
6935 // LSRS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
6936 if (!size.IsNarrow() && (imm >= 1) && (imm <= 32) &&
6938 uint32_t amount_ = imm % 32;
6945 // LSRS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
6946 if ((imm >= 1) && (imm <= 32) && cond.IsNotNever()) {
6947 uint32_t amount_ = imm % 32;
7163 uint32_t imm = operand.GetImmediate();
7165 ImmediateT32 immediate_t32(imm);
7167 if (InITBlock() && !size.IsWide() && rd.IsLow() && (imm <= 255)) {
7168 EmitT32_16(0x2000 | (rd.GetCode() << 8) | imm);
7183 if (!size.IsNarrow() && (imm <= 65535) &&
7185 EmitT32_32(0xf2400000U | (rd.GetCode() << 8) | (imm & 0xff) |
7186 ((imm & 0x700) << 4) | ((imm & 0x800) << 15) |
7187 ((imm & 0xf000) << 4));
7192 ImmediateA32 immediate_a32(imm);
7200 if ((imm <= 65535) && cond.IsNotNever() &&
7203 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7307 uint32_t imm = operand.GetImmediate();
7309 ImmediateT32 immediate_t32(imm);
7311 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && (imm <= 255)) {
7312 EmitT32_16(0x2000 | (rd.GetCode() << 8) | imm);
7327 ImmediateA32 immediate_a32(imm);
7343 uint32_t imm = operand.GetImmediate();
7346 if ((imm <= 65535) && (!rd.IsPC() || AllowUnpredictable())) {
7347 EmitT32_32(0xf2c00000U | (rd.GetCode() << 8) | (imm & 0xff) |
7348 ((imm & 0x700) << 4) | ((imm & 0x800) << 15) |
7349 ((imm & 0xf000) << 4));
7355 if ((imm <= 65535) && cond.IsNotNever() &&
7358 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7370 uint32_t imm = operand.GetImmediate();
7373 if ((imm <= 65535) && (!rd.IsPC() || AllowUnpredictable())) {
7374 EmitT32_32(0xf2400000U | (rd.GetCode() << 8) | (imm & 0xff) |
7375 ((imm & 0x700) << 4) | ((imm & 0x800) << 15) |
7376 ((imm & 0xf000) << 4));
7382 if ((imm <= 65535) && cond.IsNotNever() &&
7385 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7420 uint32_t imm = operand.GetImmediate();
7422 ImmediateA32 immediate_a32(imm);
7423 // MSR{<c>}{<q>} <spec_reg>, #<imm> ; A1
7517 uint32_t imm = operand.GetImmediate();
7519 ImmediateT32 immediate_t32(imm);
7531 ImmediateA32 immediate_a32(imm);
7601 uint32_t imm = operand.GetImmediate();
7603 ImmediateT32 immediate_t32(imm);
7615 ImmediateA32 immediate_a32(imm);
7711 uint32_t imm = operand.GetImmediate();
7713 ImmediateT32 immediate_t32(imm);
7753 uint32_t imm = operand.GetImmediate();
7755 ImmediateT32 immediate_t32(imm);
7796 uint32_t imm = operand.GetImmediate();
7798 ImmediateT32 immediate_t32(imm);
7810 ImmediateA32 immediate_a32(imm);
7884 uint32_t imm = operand.GetImmediate();
7886 ImmediateT32 immediate_t32(imm);
7898 ImmediateA32 immediate_a32(imm);
7975 // PKHBT{<c>}{<q>} {<Rd>}, <Rn>, <Rm> {, LSL #<imm> } ; T1
7985 // PKHBT{<c>}{<q>} {<Rd>}, <Rn>, <Rm> {, LSL #<imm> } ; A1
8009 // PKHTB{<c>}{<q>} {<Rd>}, <Rn>, <Rm> {, ASR #<imm> } ; T1
8020 // PKHTB{<c>}{<q>} {<Rd>}, <Rn>, <Rm> {, ASR #<imm> } ; A1
8123 // PLD{<c>}{<q>} [PC, #<_plusminus_><imm>] ; T1
8149 // PLD{<c>}{<q>} [<Rn>{, #{+}<imm>}] ; T1
8226 // PLDW{<c>}{<q>} [<Rn>{, #{+}<imm>}] ; T1
8303 // PLI{<c>}{<q>} [<Rn>{, #{+}<imm>}] ; T1
8971 uint32_t imm = operand.GetImmediate();
8973 // ROR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
8974 if (!size.IsNarrow() && (imm >= 1) && (imm <= 31) &&
8977 ((imm & 0x3) << 6) | ((imm & 0x1c) << 10));
8982 // ROR{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
8983 if ((imm >= 1) && (imm <= 31) && cond.IsNotNever()) {
8985 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
9029 uint32_t imm = operand.GetImmediate();
9031 // RORS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; T3
9032 if (!size.IsNarrow() && (imm >= 1) && (imm <= 31) &&
9035 ((imm & 0x3) << 6) | ((imm & 0x1c) << 10));
9040 // RORS{<c>}{<q>} {<Rd>}, <Rm>, #<imm> ; A1
9041 if ((imm >= 1) && (imm <= 31) && cond.IsNotNever()) {
9043 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
9129 uint32_t imm = operand.GetImmediate();
9131 ImmediateT32 immediate_t32(imm);
9134 (imm == 0)) {
9150 ImmediateA32 immediate_a32(imm);
9213 uint32_t imm = operand.GetImmediate();
9215 ImmediateT32 immediate_t32(imm);
9218 (imm == 0)) {
9234 ImmediateA32 immediate_a32(imm);
9296 uint32_t imm = operand.GetImmediate();
9298 ImmediateA32 immediate_a32(imm);
9349 uint32_t imm = operand.GetImmediate();
9351 ImmediateA32 immediate_a32(imm);
9472 uint32_t imm = operand.GetImmediate();
9474 ImmediateT32 immediate_t32(imm);
9486 ImmediateA32 immediate_a32(imm);
9560 uint32_t imm = operand.GetImmediate();
9562 ImmediateT32 immediate_t32(imm);
9574 ImmediateA32 immediate_a32(imm);
10795 uint32_t imm,
10804 // SSAT{<c>}{<q>} <Rd>, #<imm>, <Rn>, ASR #<amount> ; T1
10805 if ((imm >= 1) && (imm <= 32) && shift.IsASR() && (amount >= 1) &&
10808 uint32_t imm_ = imm - 1;
10815 // SSAT{<c>}{<q>} <Rd>, #<imm>, <Rn> {, LSL #<amount> } ; T1
10816 if ((imm >= 1) && (imm <= 32) && shift.IsLSL() && (amount <= 31) &&
10818 uint32_t imm_ = imm - 1;
10826 // SSAT{<c>}{<q>} <Rd>, #<imm>, <Rn>, ASR #<amount> ; A1
10827 if ((imm >= 1) && (imm <= 32) && shift.IsASR() && (amount >= 1) &&
10830 uint32_t imm_ = imm - 1;
10837 // SSAT{<c>}{<q>} <Rd>, #<imm>, <Rn> {, LSL #<amount> } ; A1
10838 if ((imm >= 1) && (imm <= 32) && shift.IsLSL() && (amount <= 31) &&
10841 uint32_t imm_ = imm - 1;
10849 Delegate(kSsat, &Assembler::ssat, cond, rd, imm, operand);
10852 void Assembler::ssat16(Condition cond, Register rd, uint32_t imm, Register rn) {
10856 // SSAT16{<c>}{<q>} <Rd>, #<imm>, <Rn> ; T1
10857 if ((imm >= 1) && (imm <= 16) &&
10859 uint32_t imm_ = imm - 1;
10866 // SSAT16{<c>}{<q>} <Rd>, #<imm>, <Rn> ; A1
10867 if ((imm >= 1) && (imm <= 16) && cond.IsNotNever() &&
10869 uint32_t imm_ = imm - 1;
10875 Delegate(kSsat16, &Assembler::ssat16, cond, rd, imm, rn);
11385 // STR{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
11394 // STR{<c>}{<q>} <Rt>, [SP{, #{+}<imm>}] ; T2
11497 // STR{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
11555 // STRB{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
11658 // STRB{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
11717 // STRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>{, #{+/-}<imm>}] ; T1
11728 // STRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>], #{+/-}<imm> ; T1
11739 // STRD{<c>}{<q>} <Rt>, <Rt2>, [<Rn>{, #{+/-}<imm>}]! ; T1
11842 // STREX{<c>}{<q>} <Rd>, <Rt>, [<Rn>{, #<imm>}] ; T1
11970 // STRH{<c>}{<q>} <Rt>, [<Rn>{, #{+}<imm>}] ; T1
12102 // STRH{<c>}{<q>} <Rt>, [<Rn>, {+}<Rm>{, LSL #<imm>}] ; T2
12124 uint32_t imm = operand.GetImmediate();
12126 ImmediateT32 immediate_t32(imm);
12129 (imm <= 7)) {
12130 EmitT32_16(0x1e00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
12136 (imm <= 255)) {
12137 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12142 if (!size.IsWide() && rd.Is(sp) && rn.Is(sp) && (imm <= 508) &&
12143 ((imm % 4) == 0)) {
12144 uint32_t imm_ = imm >> 2;
12150 if (!size.IsNarrow() && rn.Is(pc) && (imm <= 4095) &&
12152 EmitT32_32(0xf2af0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12153 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
12168 if (!size.IsNarrow() && (imm <= 4095) && ((rn.GetCode() & 0xd) != 0xd) &&
12171 (imm & 0xff) | ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
12186 if (!size.IsNarrow() && rn.Is(sp) && (imm <= 4095) &&
12188 EmitT32_32(0xf2ad0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12189 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
12194 ImmediateA32 immediate_a32(imm);
12302 uint32_t imm = operand.GetImmediate();
12305 if (InITBlock() && rd.IsLow() && (imm <= 255)) {
12306 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12323 uint32_t imm = operand.GetImmediate();
12325 ImmediateT32 immediate_t32(imm);
12328 (imm <= 7)) {
12329 EmitT32_16(0x1e00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
12335 (imm <= 255)) {
12336 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12351 if (!size.IsNarrow() && rd.Is(pc) && rn.Is(lr) && (imm <= 255) &&
12353 EmitT32_32(0xf3de8f00U | imm);
12368 ImmediateA32 immediate_a32(imm);
12463 uint32_t imm = operand.GetImmediate();
12466 if (OutsideITBlock() && rd.IsLow() && (imm <= 255)) {
12467 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12483 uint32_t imm = operand.GetImmediate();
12486 if ((imm <= 4095) && ((rn.GetCode() & 0xd) != 0xd) &&
12489 (imm & 0xff) | ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
12494 if (rn.Is(sp) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
12495 EmitT32_32(0xf2ad0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12496 ((imm & 0x700) << 4) | ((imm & 0x800) << 15));
12505 void Assembler::svc(Condition cond, uint32_t imm) {
12509 // SVC{<c>}{<q>} {#}<imm> ; T1
12510 if ((imm <= 255)) {
12511 EmitT32_16(0xdf00 | imm);
12516 // SVC{<c>}{<q>} {#}<imm> ; A1
12517 if ((imm <= 16777215) && cond.IsNotNever()) {
12518 EmitA32(0x0f000000U | (cond.GetCondition() << 28) | imm);
12522 Delegate(kSvc, &Assembler::svc, cond, imm);
12795 uint32_t imm = operand.GetImmediate();
12797 ImmediateT32 immediate_t32(imm);
12808 ImmediateA32 immediate_a32(imm);
12868 uint32_t imm = operand.GetImmediate();
12870 ImmediateT32 immediate_t32(imm);
12882 ImmediateA32 immediate_a32(imm);
13043 void Assembler::udf(Condition cond, EncodingSize size, uint32_t imm) {
13047 // UDF{<c>}{<q>} {#}<imm> ; T1
13048 if (!size.IsWide() && (imm <= 255)) {
13050 EmitT32_16(0xde00 | imm);
13055 // UDF{<c>}{<q>} {#}<imm> ; T2
13056 if (!size.IsNarrow() && (imm <= 65535)) {
13058 EmitT32_32(0xf7f0a000U | (imm & 0xfff) | ((imm & 0xf000) << 4));
13064 // UDF{<c>}{<q>} {#}<imm> ; A1
13065 if ((imm <= 65535)) {
13067 EmitA32(0xe7f000f0U | (imm & 0xf) | ((imm & 0xfff0) << 4));
13072 Delegate(kUdf, &Assembler::udf, cond, size, imm);
13541 uint32_t imm,
13550 // USAT{<c>}{<q>} <Rd>, #<imm>, <Rn>, ASR #<amount> ; T1
13551 if ((imm <= 31) && shift.IsASR() && (amount >= 1) && (amount <= 31) &&
13553 EmitT32_32(0xf3a00000U | (rd.GetCode() << 8) | imm |
13559 // USAT{<c>}{<q>} <Rd>, #<imm>, <Rn> {, LSL #<amount> } ; T1
13560 if ((imm <= 31) && shift.IsLSL() && (amount <= 31) &&
13562 EmitT32_32(0xf3800000U | (rd.GetCode() << 8) | imm |
13569 // USAT{<c>}{<q>} <Rd>, #<imm>, <Rn>, ASR #<amount> ; A1
13570 if ((imm <= 31) && shift.IsASR() && (amount >= 1) && (amount <= 32) &&
13575 (rd.GetCode() << 12) | (imm << 16) | rn.GetCode() |
13579 // USAT{<c>}{<q>} <Rd>, #<imm>, <Rn> {, LSL #<amount> } ; A1
13580 if ((imm <= 31) && shift.IsLSL() && (amount <= 31) && cond.IsNotNever() &&
13583 (rd.GetCode() << 12) | (imm << 16) | rn.GetCode() |
13589 Delegate(kUsat, &Assembler::usat, cond, rd, imm, operand);
13592 void Assembler::usat16(Condition cond, Register rd, uint32_t imm, Register rn) {
13596 // USAT16{<c>}{<q>} <Rd>, #<imm>, <Rn> ; T1
13597 if ((imm <= 15) && ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13598 EmitT32_32(0xf3a00000U | (rd.GetCode() << 8) | imm |
13604 // USAT16{<c>}{<q>} <Rd>, #<imm>, <Rn> ; A1
13605 if ((imm <= 15) && cond.IsNotNever() &&
13608 (imm << 16) | rn.GetCode());
13612 Delegate(kUsat16, &Assembler::usat16, cond, rd, imm, rn);
14665 // VAND{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; T1
14678 // VAND{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; A1
14723 // VAND{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; T1
14736 // VAND{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; A1
14781 // VBIC{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; T1
14794 // VBIC{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; A1
14839 // VBIC{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; T1
14852 // VBIC{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; A1
15040 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15044 if (encoded_dt.IsValid() && (imm == 0)) {
15056 if (encoded_dt.IsValid() && (imm == 0)) {
15080 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15084 if (encoded_dt.IsValid() && (imm == 0)) {
15096 if (encoded_dt.IsValid() && (imm == 0)) {
15212 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15216 if (encoded_dt.IsValid() && (imm == 0)) {
15228 if (encoded_dt.IsValid() && (imm == 0)) {
15252 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15256 if (encoded_dt.IsValid() && (imm == 0)) {
15268 if (encoded_dt.IsValid() && (imm == 0)) {
15386 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15390 if (encoded_dt.IsValid() && (imm == 0)) {
15402 if (encoded_dt.IsValid() && (imm == 0)) {
15426 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15430 if (encoded_dt.IsValid() && (imm == 0)) {
15442 if (encoded_dt.IsValid() && (imm == 0)) {
15560 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15564 if (encoded_dt.IsValid() && (imm == 0)) {
15576 if (encoded_dt.IsValid() && (imm == 0)) {
15600 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15604 if (encoded_dt.IsValid() && (imm == 0)) {
15616 if (encoded_dt.IsValid() && (imm == 0)) {
15788 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15792 if (encoded_dt.IsValid() && (imm == 0)) {
15804 if (encoded_dt.IsValid() && (imm == 0)) {
15828 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
15832 if (encoded_dt.IsValid() && (imm == 0)) {
15844 if (encoded_dt.IsValid() && (imm == 0)) {
17505 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
17507 // VEXT{<c>}{<q>}.8 {<Dd>}, <Dn>, <Dm>, #<imm> ; T1
17508 if (dt.Is(Untyped8) && (imm <= 7)) {
17511 rm.Encode(5, 0) | (imm << 8));
17516 // VEXT{<c>}{<q>}.<dt> {<Dd>}, <Dn>, <Dm>, #<imm> ; T1
17518 (imm <= (128 / dt.GetSize()) - 1) && ((imm % dt.GetSize()) == 0)) {
17520 uint32_t imm4 = imm / dt.GetSize();
17528 // VEXT{<c>}{<q>}.8 {<Dd>}, <Dn>, <Dm>, #<imm> ; A1
17529 if (dt.Is(Untyped8) && (imm <= 7)) {
17532 rm.Encode(5, 0) | (imm << 8));
17536 // VEXT{<c>}{<q>}.<dt> {<Dd>}, <Dn>, <Dm>, #<imm> ; A1
17538 (imm <= (128 / dt.GetSize()) - 1) && ((imm % dt.GetSize()) == 0)) {
17540 uint32_t imm4 = imm / dt.GetSize();
17562 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
17564 // VEXT{<c>}{<q>}.8 {<Qd>}, <Qn>, <Qm>, #<imm> ; T1
17565 if (dt.Is(Untyped8) && (imm <= 15)) {
17568 rm.Encode(5, 0) | (imm << 8));
17573 // VEXT{<c>}{<q>}.<dt> {<Qd>}, <Qn>, <Qm>, #<imm> ; T1
17575 (imm <= (64 / dt.GetSize()) - 1) && ((imm % dt.GetSize()) == 0)) {
17577 uint32_t imm4 = imm / dt.GetSize();
17585 // VEXT{<c>}{<q>}.8 {<Qd>}, <Qn>, <Qm>, #<imm> ; A1
17586 if (dt.Is(Untyped8) && (imm <= 15)) {
17589 rm.Encode(5, 0) | (imm << 8));
17593 // VEXT{<c>}{<q>}.<dt> {<Qd>}, <Qn>, <Qm>, #<imm> ; A1
17595 (imm <= (64 / dt.GetSize()) - 1) && ((imm % dt.GetSize()) == 0)) {
17597 uint32_t imm4 = imm / dt.GetSize();
19715 // VLDR{<c>}{<q>}{.64} <Dd>, [PC, #<_plusminus_><imm>] ; T1
19724 // VLDR{<c>}{<q>}{.64} <Dd>, [<Rn>{, #{+/-}<imm>}] ; T1
19736 // VLDR{<c>}{<q>}{.64} <Dd>, [PC, #<_plusminus_><imm>] ; A1
19746 // VLDR{<c>}{<q>}{.64} <Dd>, [<Rn>{, #{+/-}<imm>}] ; A1
19869 // VLDR{<c>}{<q>}{.32} <Sd>, [PC, #<_plusminus_><imm>] ; T2
19878 // VLDR{<c>}{<q>}{.32} <Sd>, [<Rn>{, #{+/-}<imm>}] ; T2
19890 // VLDR{<c>}{<q>}{.32} <Sd>, [PC, #<_plusminus_><imm>] ; A2
19900 // VLDR{<c>}{<q>}{.32} <Sd>, [<Rn>{, #{+/-}<imm>}] ; A2
20968 // VMOV{<c>}{<q>}.<dt> <Dd>, #<imm> ; T1
20982 // VMOV{<c>}{<q>}.<dt> <Dd>, #<imm> ; A1
20998 // VMOV{<c>}{<q>}.F64 <Dd>, #<imm> ; T2
21007 // VMOV{<c>}{<q>}.F64 <Dd>, #<imm> ; A2
21063 // VMOV{<c>}{<q>}.<dt> <Qd>, #<imm> ; T1
21077 // VMOV{<c>}{<q>}.<dt> <Qd>, #<imm> ; A1
21125 // VMOV{<c>}{<q>}.F32 <Sd>, #<imm> ; T2
21134 // VMOV{<c>}{<q>}.F32 <Sd>, #<imm> ; A2
21618 // VMVN{<c>}{<q>}.<dt> <Dd>, #<imm> ; T1
21631 // VMVN{<c>}{<q>}.<dt> <Dd>, #<imm> ; A1
21673 // VMVN{<c>}{<q>}.<dt> <Qd>, #<imm> ; T1
21686 // VMVN{<c>}{<q>}.<dt> <Qd>, #<imm> ; A1
21958 // VORN{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; T1
21971 // VORN{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; A1
22016 // VORN{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; T1
22029 // VORN{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; A1
22094 // VORR{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; T1
22107 // VORR{<c>}{<q>}.<dt> {<Ddn>}, <Ddn>, #<imm> ; A1
22152 // VORR{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; T1
22165 // VORR{<c>}{<q>}.<dt> {<Qdn>}, <Qdn>, #<imm> ; A1
23324 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23329 if (encoded_dt.IsValid() && (imm == 0)) {
23339 // VQRSHRN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; T1
23340 if (encoded_dt_2.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23342 uint32_t imm6 = dt.GetSize() / 2 - imm;
23353 if (encoded_dt.IsValid() && (imm == 0)) {
23362 // VQRSHRN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; A1
23363 if (encoded_dt_2.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23365 uint32_t imm6 = dt.GetSize() / 2 - imm;
23387 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23391 // VQRSHRUN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; T1
23392 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23394 uint32_t imm6 = dt.GetSize() / 2 - imm;
23403 if (encoded_dt_2.IsValid() && (imm == 0)) {
23412 // VQRSHRUN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; A1
23413 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23415 uint32_t imm6 = dt.GetSize() / 2 - imm;
23423 if (encoded_dt_2.IsValid() && (imm == 0)) {
23472 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23475 // VQSHL{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
23476 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23478 uint32_t imm6 = imm;
23488 // VQSHL{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
23489 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23491 uint32_t imm6 = imm;
23541 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23544 // VQSHL{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
23545 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23547 uint32_t imm6 = imm;
23557 // VQSHL{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
23558 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23560 uint32_t imm6 = imm;
23583 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23586 // VQSHLU{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
23587 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23589 uint32_t imm6 = imm;
23599 // VQSHLU{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
23600 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23602 uint32_t imm6 = imm;
23625 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23628 // VQSHLU{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
23629 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23631 uint32_t imm6 = imm;
23641 // VQSHLU{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
23642 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
23644 uint32_t imm6 = imm;
23667 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23672 if (encoded_dt.IsValid() && (imm == 0)) {
23682 // VQSHRN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; T1
23683 if (encoded_dt_2.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23685 uint32_t imm6 = dt.GetSize() / 2 - imm;
23696 if (encoded_dt.IsValid() && (imm == 0)) {
23705 // VQSHRN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; A1
23706 if (encoded_dt_2.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23708 uint32_t imm6 = dt.GetSize() / 2 - imm;
23730 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
23734 // VQSHRUN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; T1
23735 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23737 uint32_t imm6 = dt.GetSize() / 2 - imm;
23746 if (encoded_dt_2.IsValid() && (imm == 0)) {
23755 // VQSHRUN{<c>}{<q>}.<type><size> <Dd>, <Qm>, #<imm> ; A1
23756 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
23758 uint32_t imm6 = dt.GetSize() / 2 - imm;
23766 if (encoded_dt_2.IsValid() && (imm == 0)) {
24820 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
24823 // VRSHR{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
24824 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
24826 uint32_t imm6 = dt.GetSize() - imm;
24836 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
24845 // VRSHR{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
24846 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
24848 uint32_t imm6 = dt.GetSize() - imm;
24857 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
24879 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
24882 // VRSHR{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
24883 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
24885 uint32_t imm6 = dt.GetSize() - imm;
24895 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
24904 // VRSHR{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
24905 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
24907 uint32_t imm6 = dt.GetSize() - imm;
24916 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
24938 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
24942 // VRSHRN{<c>}{<q>}.I<size> <Dd>, <Qm>, #<imm> ; T1
24943 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
24945 uint32_t imm6 = dt.GetSize() / 2 - imm;
24954 if (encoded_dt_2.IsValid() && (imm == 0)) {
24963 // VRSHRN{<c>}{<q>}.I<size> <Dd>, <Qm>, #<imm> ; A1
24964 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
24966 uint32_t imm6 = dt.GetSize() / 2 - imm;
24974 if (encoded_dt_2.IsValid() && (imm == 0)) {
25114 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25117 // VRSRA{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
25118 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25120 uint32_t imm6 = dt.GetSize() - imm;
25130 // VRSRA{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
25131 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25133 uint32_t imm6 = dt.GetSize() - imm;
25156 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25159 // VRSRA{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
25160 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25162 uint32_t imm6 = dt.GetSize() - imm;
25172 // VRSRA{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
25173 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25175 uint32_t imm6 = dt.GetSize() - imm;
25402 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25405 // VSHL{<c>}{<q>}.I<size> {<Dd>}, <Dm>, #<imm> ; T1
25406 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25408 uint32_t imm6 = imm;
25418 // VSHL{<c>}{<q>}.I<size> {<Dd>}, <Dm>, #<imm> ; A1
25419 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25421 uint32_t imm6 = imm;
25471 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25474 // VSHL{<c>}{<q>}.I<size> {<Qd>}, <Qm>, #<imm> ; T1
25475 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25477 uint32_t imm6 = imm;
25487 // VSHL{<c>}{<q>}.I<size> {<Qd>}, <Qm>, #<imm> ; A1
25488 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25490 uint32_t imm6 = imm;
25540 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25544 // VSHLL{<c>}{<q>}.<type><size> <Qd>, <Dm>, #<imm> ; T1
25545 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() - 1)) {
25547 uint32_t imm6 = dt.GetSize() + imm;
25555 // VSHLL{<c>}{<q>}.<type><size> <Qd>, <Dm>, #<imm> ; T2
25556 if (encoded_dt_2.IsValid() && (imm == dt.GetSize())) {
25565 // VSHLL{<c>}{<q>}.<type><size> <Qd>, <Dm>, #<imm> ; A1
25566 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() - 1)) {
25568 uint32_t imm6 = dt.GetSize() + imm;
25575 // VSHLL{<c>}{<q>}.<type><size> <Qd>, <Dm>, #<imm> ; A2
25576 if (encoded_dt_2.IsValid() && (imm == dt.GetSize())) {
25598 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25601 // VSHR{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
25602 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25604 uint32_t imm6 = dt.GetSize() - imm;
25614 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
25623 // VSHR{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
25624 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25626 uint32_t imm6 = dt.GetSize() - imm;
25635 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
25657 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25660 // VSHR{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
25661 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25663 uint32_t imm6 = dt.GetSize() - imm;
25673 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
25682 // VSHR{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
25683 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25685 uint32_t imm6 = dt.GetSize() - imm;
25694 if ((dt.Is(kDataTypeS) || dt.Is(kDataTypeU)) && (imm == 0)) {
25716 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25720 // VSHRN{<c>}{<q>}.I<size> <Dd>, <Qm>, #<imm> ; T1
25721 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
25723 uint32_t imm6 = dt.GetSize() / 2 - imm;
25732 if (encoded_dt_2.IsValid() && (imm == 0)) {
25741 // VSHRN{<c>}{<q>}.I<size> <Dd>, <Qm>, #<imm> ; A1
25742 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize() / 2)) {
25744 uint32_t imm6 = dt.GetSize() / 2 - imm;
25752 if (encoded_dt_2.IsValid() && (imm == 0)) {
25774 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25777 // VSLI{<c>}{<q>}.<dt> {<Dd>}, <Dm>, #<imm> ; T1
25778 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25780 uint32_t imm6 = imm;
25790 // VSLI{<c>}{<q>}.<dt> {<Dd>}, <Dm>, #<imm> ; A1
25791 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25793 uint32_t imm6 = imm;
25816 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25819 // VSLI{<c>}{<q>}.<dt> {<Qd>}, <Qm>, #<imm> ; T1
25820 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25822 uint32_t imm6 = imm;
25832 // VSLI{<c>}{<q>}.<dt> {<Qd>}, <Qm>, #<imm> ; A1
25833 if (encoded_dt.IsValid() && (imm <= dt.GetSize() - 1)) {
25835 uint32_t imm6 = imm;
25900 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25903 // VSRA{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; T1
25904 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25906 uint32_t imm6 = dt.GetSize() - imm;
25916 // VSRA{<c>}{<q>}.<type><size> {<Dd>}, <Dm>, #<imm> ; A1
25917 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25919 uint32_t imm6 = dt.GetSize() - imm;
25942 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25945 // VSRA{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; T1
25946 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25948 uint32_t imm6 = dt.GetSize() - imm;
25958 // VSRA{<c>}{<q>}.<type><size> {<Qd>}, <Qm>, #<imm> ; A1
25959 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25961 uint32_t imm6 = dt.GetSize() - imm;
25984 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
25987 // VSRI{<c>}{<q>}.<dt> {<Dd>}, <Dm>, #<imm> ; T1
25988 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
25990 uint32_t imm6 = dt.GetSize() - imm;
26000 // VSRI{<c>}{<q>}.<dt> {<Dd>}, <Dm>, #<imm> ; A1
26001 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
26003 uint32_t imm6 = dt.GetSize() - imm;
26026 uint32_t imm = operand.GetNeonImmediate().GetImmediate<uint32_t>();
26029 // VSRI{<c>}{<q>}.<dt> {<Qd>}, <Qm>, #<imm> ; T1
26030 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
26032 uint32_t imm6 = dt.GetSize() - imm;
26042 // VSRI{<c>}{<q>}.<dt> {<Qd>}, <Qm>, #<imm> ; A1
26043 if (encoded_dt.IsValid() && (imm >= 1) && (imm <= dt.GetSize())) {
26045 uint32_t imm6 = dt.GetSize() - imm;
27293 // VSTR{<c>}{<q>}{.64} <Dd>, [<Rn>{, #{+/-}<imm>}] ; T1
27305 // VSTR{<c>}{<q>}{.64} <Dd>, [<Rn>{, #{+/-}<imm>}] ; A1
27329 // VSTR{<c>}{<q>}{.32} <Sd>, [<Rn>{, #{+/-}<imm>}] ; T2
27341 // VSTR{<c>}{<q>}{.32} <Sd>, [<Rn>{, #{+/-}<imm>}] ; A2