Lines Matching refs:rd

1925                     Register rd,
1936 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
1937 EmitT32_32(0xf1400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
1949 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
1960 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
1962 EmitT32_16(0x4140 | rd.GetCode() | (rm.GetCode() << 3));
1973 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
1975 EmitT32_32(0xeb400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
1986 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
1999 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2002 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2008 Delegate(kAdc, &Assembler::adc, cond, size, rd, rn, operand);
2013 Register rd,
2024 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
2025 EmitT32_32(0xf1500000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2037 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
2048 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
2050 EmitT32_16(0x4140 | rd.GetCode() | (rm.GetCode() << 3));
2061 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2063 EmitT32_32(0xeb500000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2074 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2087 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2090 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2096 Delegate(kAdcs, &Assembler::adcs, cond, size, rd, rn, operand);
2101 Register rd,
2111 if (!size.IsWide() && rd.IsLow() && rn.Is(pc) && (imm <= 1020) &&
2114 EmitT32_16(0xa000 | (rd.GetCode() << 8) | imm_);
2119 if (InITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
2121 EmitT32_16(0x1c00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
2126 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
2128 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2133 if (!size.IsWide() && rd.IsLow() && rn.Is(sp) && (imm <= 1020) &&
2136 EmitT32_16(0xa800 | (rd.GetCode() << 8) | imm_);
2141 if (!size.IsWide() && rd.Is(sp) && rn.Is(sp) && (imm <= 508) &&
2150 (!rd.IsPC() || AllowUnpredictable())) {
2151 EmitT32_32(0xf20f0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2158 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
2159 EmitT32_32(0xf1000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2168 (!rd.IsPC() || AllowUnpredictable())) {
2169 EmitT32_32(0xf2000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2176 (!rd.IsPC() || AllowUnpredictable())) {
2177 EmitT32_32(0xf10d0000U | (rd.GetCode() << 8) |
2186 (!rd.IsPC() || AllowUnpredictable())) {
2187 EmitT32_32(0xf20d0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2197 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
2204 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
2211 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
2221 if (InITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
2223 EmitT32_16(0x1800 | rd.GetCode() | (rn.GetCode() << 3) |
2229 if (!size.IsWide() && rd.Is(rn) && !rm.Is(sp) &&
2230 (((!rd.IsPC() || OutsideITBlockAndAlOrLast(cond)) &&
2231 (!rd.IsPC() || !rm.IsPC())) ||
2233 EmitT32_16(0x4400 | (rd.GetCode() & 0x7) |
2234 ((rd.GetCode() & 0x8) << 4) | (rm.GetCode() << 3));
2239 if (!size.IsWide() && rd.Is(rm) && rn.Is(sp) &&
2240 ((!rd.IsPC() || OutsideITBlockAndAlOrLast(cond)) ||
2242 EmitT32_16(0x4468 | (rd.GetCode() & 0x7) |
2243 ((rd.GetCode() & 0x8) << 4));
2248 if (!size.IsWide() && rd.Is(sp) && rn.Is(sp) && !rm.Is(sp)) {
2260 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2262 EmitT32_32(0xeb000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2270 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2272 EmitT32_32(0xeb0d0000U | (rd.GetCode() << 8) | rm.GetCode() |
2283 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2291 (rd.GetCode() << 12) | rm.GetCode() |
2304 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2307 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2313 Delegate(kAdd, &Assembler::add, cond, size, rd, rn, operand);
2316 void Assembler::add(Condition cond, Register rd, const Operand& operand) {
2323 if (InITBlock() && rd.IsLow() && (imm <= 255)) {
2324 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2335 (((!rd.IsPC() || OutsideITBlockAndAlOrLast(cond)) &&
2336 (!rd.IsPC() || !rm.IsPC())) ||
2338 EmitT32_16(0x4400 | (rd.GetCode() & 0x7) | ((rd.GetCode() & 0x8) << 4) |
2345 Delegate(kAdd, &Assembler::add, cond, rd, operand);
2350 Register rd,
2360 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
2362 EmitT32_16(0x1c00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
2367 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
2369 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2375 !rd.Is(pc) && (!rn.IsPC() || AllowUnpredictable())) {
2376 EmitT32_32(0xf1100000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2385 !rd.Is(pc)) {
2386 EmitT32_32(0xf11d0000U | (rd.GetCode() << 8) |
2398 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
2405 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
2415 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
2417 EmitT32_16(0x1800 | rd.GetCode() | (rn.GetCode() << 3) |
2429 !rd.Is(pc) && ((!rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2431 EmitT32_32(0xeb100000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2439 !rd.Is(pc) && (!rm.IsPC() || AllowUnpredictable())) {
2441 EmitT32_32(0xeb1d0000U | (rd.GetCode() << 8) | rm.GetCode() |
2452 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2460 (rd.GetCode() << 12) | rm.GetCode() |
2473 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2476 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2482 Delegate(kAdds, &Assembler::adds, cond, size, rd, rn, operand);
2485 void Assembler::adds(Register rd, const Operand& operand) {
2492 if (OutsideITBlock() && rd.IsLow() && (imm <= 255)) {
2493 EmitT32_16(0x3000 | (rd.GetCode() << 8) | imm);
2499 Delegate(kAdds, &Assembler::adds, rd, operand);
2503 Register rd,
2512 if (rn.Is(pc) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
2513 EmitT32_32(0xf20f0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2520 (!rd.IsPC() || AllowUnpredictable())) {
2521 EmitT32_32(0xf2000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2527 if (rn.Is(sp) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
2528 EmitT32_32(0xf20d0000U | (rd.GetCode() << 8) | (imm & 0xff) |
2535 Delegate(kAddw, &Assembler::addw, cond, rd, rn, operand);
2540 Register rd,
2552 if (!size.IsWide() && rd.IsLow() &&
2571 Link(0xa000 | (rd.GetCode() << 8), location, immop, &kT16DataInfo));
2577 (neg_offset <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
2578 EmitT32_32(0xf2af0000U | (rd.GetCode() << 8) | (neg_offset & 0xff) |
2586 (!rd.IsPC() || AllowUnpredictable())) {
2609 EmitT32_32(Link(0xf20f0000U | (rd.GetCode() << 8),
2646 Link(0x028f0000U | (cond.GetCondition() << 28) | (rd.GetCode() << 12),
2655 EmitA32(0x024f0000U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
2660 Delegate(kAdr, &Assembler::adr, cond, size, rd, location);
2665 Register rd,
2672 if (!size.IsWide() && rd.IsLow() && size.IsNarrow()) {
2699 Register rd,
2710 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
2711 EmitT32_32(0xf0000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2723 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
2734 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
2736 EmitT32_16(0x4000 | rd.GetCode() | (rm.GetCode() << 3));
2747 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2749 EmitT32_32(0xea000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2760 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2773 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2776 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2782 Delegate(kAnd, &Assembler::and_, cond, size, rd, rn, operand);
2787 Register rd,
2797 if (!size.IsNarrow() && immediate_t32.IsValid() && !rd.Is(pc) &&
2799 EmitT32_32(0xf0100000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2811 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
2822 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
2824 EmitT32_16(0x4000 | rd.GetCode() | (rm.GetCode() << 3));
2834 if (!size.IsNarrow() && shift.IsValidAmount(amount) && !rd.Is(pc) &&
2837 EmitT32_32(0xea100000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
2848 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2861 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
2864 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
2870 Delegate(kAnds, &Assembler::ands, cond, size, rd, rn, operand);
2875 Register rd,
2884 if (InITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
2887 EmitT32_16(0x1000 | rd.GetCode() | (rm.GetCode() << 3) |
2894 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2896 EmitT32_32(0xea4f0020U | (rd.GetCode() << 8) | rm.GetCode() |
2906 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 7));
2915 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
2917 EmitT32_16(0x4100 | rd.GetCode() | (rs.GetCode() << 3));
2923 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
2924 EmitT32_32(0xfa40f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
2932 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
2934 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
2939 Delegate(kAsr, &Assembler::asr, cond, size, rd, rm, operand);
2944 Register rd,
2953 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
2956 EmitT32_16(0x1000 | rd.GetCode() | (rm.GetCode() << 3) |
2963 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
2965 EmitT32_32(0xea5f0020U | (rd.GetCode() << 8) | rm.GetCode() |
2975 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 7));
2984 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
2986 EmitT32_16(0x4100 | rd.GetCode() | (rs.GetCode() << 3));
2992 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
2993 EmitT32_32(0xfa50f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
3001 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
3003 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
3008 Delegate(kAsrs, &Assembler::asrs, cond, size, rd, rm, operand);
3194 void Assembler::bfc(Condition cond, Register rd, uint32_t lsb, uint32_t width) {
3199 if ((lsb <= 31) && (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC()) ||
3202 EmitT32_32(0xf36f0000U | (rd.GetCode() << 8) | ((lsb & 0x3) << 6) |
3210 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC()) ||
3213 EmitA32(0x07c0001fU | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
3218 Delegate(kBfc, &Assembler::bfc, cond, rd, lsb, width);
3222 Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width) {
3228 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC()) ||
3231 EmitT32_32(0xf3600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
3239 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC()) ||
3242 EmitA32(0x07c00010U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
3247 Delegate(kBfi, &Assembler::bfi, cond, rd, rn, lsb, width);
3252 Register rd,
3263 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
3264 EmitT32_32(0xf0200000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
3276 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
3287 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
3289 EmitT32_16(0x4380 | rd.GetCode() | (rm.GetCode() << 3));
3300 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
3302 EmitT32_32(0xea200000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
3313 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
3326 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
3329 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
3335 Delegate(kBic, &Assembler::bic, cond, size, rd, rn, operand);
3340 Register rd,
3351 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
3352 EmitT32_32(0xf0300000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
3364 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
3375 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
3377 EmitT32_16(0x4380 | rd.GetCode() | (rm.GetCode() << 3));
3388 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
3390 EmitT32_32(0xea300000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
3401 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
3414 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
3417 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
3423 Delegate(kBics, &Assembler::bics, cond, size, rd, rn, operand);
3800 void Assembler::clz(Condition cond, Register rd, Register rm) {
3805 if (((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
3806 EmitT32_32(0xfab0f080U | (rd.GetCode() << 8) | rm.GetCode() |
3814 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
3815 EmitA32(0x016f0f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
3820 Delegate(kClz, &Assembler::clz, cond, rd, rm);
4005 void Assembler::crc32b(Condition cond, Register rd, Register rn, Register rm) {
4010 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4012 EmitT32_32(0xfac0f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4020 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4021 EmitA32(0x01000040U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4026 Delegate(kCrc32b, &Assembler::crc32b, cond, rd, rn, rm);
4029 void Assembler::crc32cb(Condition cond, Register rd, Register rn, Register rm) {
4034 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4036 EmitT32_32(0xfad0f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4044 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4045 EmitA32(0x01000240U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4050 Delegate(kCrc32cb, &Assembler::crc32cb, cond, rd, rn, rm);
4053 void Assembler::crc32ch(Condition cond, Register rd, Register rn, Register rm) {
4058 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4060 EmitT32_32(0xfad0f090U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4068 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4069 EmitA32(0x01200240U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4074 Delegate(kCrc32ch, &Assembler::crc32ch, cond, rd, rn, rm);
4077 void Assembler::crc32cw(Condition cond, Register rd, Register rn, Register rm) {
4082 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4084 EmitT32_32(0xfad0f0a0U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4092 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4093 EmitA32(0x01400240U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4098 Delegate(kCrc32cw, &Assembler::crc32cw, cond, rd, rn, rm);
4101 void Assembler::crc32h(Condition cond, Register rd, Register rn, Register rm) {
4106 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4108 EmitT32_32(0xfac0f090U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4116 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4117 EmitA32(0x01200040U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4122 Delegate(kCrc32h, &Assembler::crc32h, cond, rd, rn, rm);
4125 void Assembler::crc32w(Condition cond, Register rd, Register rn, Register rm) {
4130 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && OutsideITBlock()) ||
4132 EmitT32_32(0xfac0f0a0U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4140 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4141 EmitA32(0x01400040U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
4146 Delegate(kCrc32w, &Assembler::crc32w, cond, rd, rn, rm);
4187 Register rd,
4198 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
4199 EmitT32_32(0xf0800000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4211 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
4222 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
4224 EmitT32_16(0x4040 | rd.GetCode() | (rm.GetCode() << 3));
4235 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
4237 EmitT32_32(0xea800000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4248 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
4261 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
4264 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
4270 Delegate(kEor, &Assembler::eor, cond, size, rd, rn, operand);
4275 Register rd,
4285 if (!size.IsNarrow() && immediate_t32.IsValid() && !rd.Is(pc) &&
4287 EmitT32_32(0xf0900000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4299 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
4310 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
4312 EmitT32_16(0x4040 | rd.GetCode() | (rm.GetCode() << 3));
4322 if (!size.IsNarrow() && shift.IsValidAmount(amount) && !rd.Is(pc) &&
4325 EmitT32_32(0xea900000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
4336 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
4349 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
4352 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
4358 Delegate(kEors, &Assembler::eors, cond, size, rd, rn, operand);
6719 Register rd,
6728 if (InITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
6730 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) | (imm << 6));
6736 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
6737 EmitT32_32(0xea4f0000U | (rd.GetCode() << 8) | rm.GetCode() |
6746 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
6755 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
6757 EmitT32_16(0x4080 | rd.GetCode() | (rs.GetCode() << 3));
6763 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6764 EmitT32_32(0xfa00f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
6772 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6774 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
6779 Delegate(kLsl, &Assembler::lsl, cond, size, rd, rm, operand);
6784 Register rd,
6793 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
6795 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) | (imm << 6));
6801 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
6802 EmitT32_32(0xea5f0000U | (rd.GetCode() << 8) | rm.GetCode() |
6811 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
6820 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
6822 EmitT32_16(0x4080 | rd.GetCode() | (rs.GetCode() << 3));
6828 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6829 EmitT32_32(0xfa10f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
6837 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6839 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
6844 Delegate(kLsls, &Assembler::lsls, cond, size, rd, rm, operand);
6849 Register rd,
6858 if (InITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
6861 EmitT32_16(0x0800 | rd.GetCode() | (rm.GetCode() << 3) |
6868 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
6870 EmitT32_32(0xea4f0010U | (rd.GetCode() << 8) | rm.GetCode() |
6880 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 7));
6889 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
6891 EmitT32_16(0x40c0 | rd.GetCode() | (rs.GetCode() << 3));
6897 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6898 EmitT32_32(0xfa20f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
6906 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6908 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
6913 Delegate(kLsr, &Assembler::lsr, cond, size, rd, rm, operand);
6918 Register rd,
6927 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow() &&
6930 EmitT32_16(0x0800 | rd.GetCode() | (rm.GetCode() << 3) |
6937 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
6939 EmitT32_32(0xea5f0010U | (rd.GetCode() << 8) | rm.GetCode() |
6949 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 7));
6958 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
6960 EmitT32_16(0x40c0 | rd.GetCode() | (rs.GetCode() << 3));
6966 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6967 EmitT32_32(0xfa30f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
6975 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
6977 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
6982 Delegate(kLsrs, &Assembler::lsrs, cond, size, rd, rm, operand);
6986 Condition cond, Register rd, Register rn, Register rm, Register ra) {
6992 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
6993 EmitT32_32(0xfb000000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7001 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
7003 EmitA32(0x00200090U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
7008 Delegate(kMla, &Assembler::mla, cond, rd, rn, rm, ra);
7012 Condition cond, Register rd, Register rn, Register rm, Register ra) {
7018 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
7020 EmitA32(0x00300090U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
7025 Delegate(kMlas, &Assembler::mlas, cond, rd, rn, rm, ra);
7029 Condition cond, Register rd, Register rn, Register rm, Register ra) {
7034 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
7036 EmitT32_32(0xfb000010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7044 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
7046 EmitA32(0x00600090U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
7051 Delegate(kMls, &Assembler::mls, cond, rd, rn, rm, ra);
7056 Register rd,
7066 ((!rd.IsPC() || OutsideITBlockAndAlOrLast(cond)) ||
7068 EmitT32_16(0x4600 | (rd.GetCode() & 0x7) |
7069 ((rd.GetCode() & 0x8) << 4) | (rm.GetCode() << 3));
7079 if (InITBlock() && !size.IsWide() && rd.IsLow() &&
7084 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) |
7091 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7093 EmitT32_32(0xea4f0000U | (rd.GetCode() << 8) | rm.GetCode() |
7104 (rd.GetCode() << 12) | rm.GetCode() |
7116 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7118 EmitT32_16(0x4100 | rd.GetCode() | (rs.GetCode() << 3));
7123 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7125 EmitT32_16(0x4080 | rd.GetCode() | (rs.GetCode() << 3));
7130 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7132 EmitT32_16(0x40c0 | rd.GetCode() | (rs.GetCode() << 3));
7137 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7139 EmitT32_16(0x41c0 | rd.GetCode() | (rs.GetCode() << 3));
7145 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7146 EmitT32_32(0xfa00f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
7154 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7156 (rd.GetCode() << 12) | rm.GetCode() | (shift.GetType() << 5) |
7167 if (InITBlock() && !size.IsWide() && rd.IsLow() && (imm <= 255)) {
7168 EmitT32_16(0x2000 | (rd.GetCode() << 8) | imm);
7174 (!rd.IsPC() || AllowUnpredictable())) {
7175 EmitT32_32(0xf04f0000U | (rd.GetCode() << 8) |
7184 (!rd.IsPC() || AllowUnpredictable())) {
7185 EmitT32_32(0xf2400000U | (rd.GetCode() << 8) | (imm & 0xff) |
7196 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
7201 (!rd.IsPC() || AllowUnpredictable())) {
7203 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7208 Delegate(kMov, &Assembler::mov, cond, size, rd, operand);
7213 Register rd,
7223 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() &&
7227 EmitT32_16(0x0000 | rd.GetCode() | (rm.GetCode() << 3) |
7234 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7236 EmitT32_32(0xea5f0000U | (rd.GetCode() << 8) | rm.GetCode() |
7245 (!rd.IsPC() || AllowUnpredictable())) {
7248 (rd.GetCode() << 12) | rm.GetCode() |
7260 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7262 EmitT32_16(0x4100 | rd.GetCode() | (rs.GetCode() << 3));
7267 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7269 EmitT32_16(0x4080 | rd.GetCode() | (rs.GetCode() << 3));
7274 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7276 EmitT32_16(0x40c0 | rd.GetCode() | (rs.GetCode() << 3));
7281 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
7283 EmitT32_16(0x41c0 | rd.GetCode() | (rs.GetCode() << 3));
7289 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7290 EmitT32_32(0xfa10f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
7298 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7300 (rd.GetCode() << 12) | rm.GetCode() | (shift.GetType() << 5) |
7311 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && (imm <= 255)) {
7312 EmitT32_16(0x2000 | (rd.GetCode() << 8) | imm);
7318 (!rd.IsPC() || AllowUnpredictable())) {
7319 EmitT32_32(0xf05f0000U | (rd.GetCode() << 8) |
7331 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
7336 Delegate(kMovs, &Assembler::movs, cond, size, rd, operand);
7339 void Assembler::movt(Condition cond, Register rd, const Operand& operand) {
7346 if ((imm <= 65535) && (!rd.IsPC() || AllowUnpredictable())) {
7347 EmitT32_32(0xf2c00000U | (rd.GetCode() << 8) | (imm & 0xff) |
7356 (!rd.IsPC() || AllowUnpredictable())) {
7358 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7363 Delegate(kMovt, &Assembler::movt, cond, rd, operand);
7366 void Assembler::movw(Condition cond, Register rd, const Operand& operand) {
7373 if ((imm <= 65535) && (!rd.IsPC() || AllowUnpredictable())) {
7374 EmitT32_32(0xf2400000U | (rd.GetCode() << 8) | (imm & 0xff) |
7383 (!rd.IsPC() || AllowUnpredictable())) {
7385 (rd.GetCode() << 12) | (imm & 0xfff) | ((imm & 0xf000) << 4));
7390 Delegate(kMovw, &Assembler::movw, cond, rd, operand);
7393 void Assembler::mrs(Condition cond, Register rd, SpecialRegister spec_reg) {
7398 if ((!rd.IsPC() || AllowUnpredictable())) {
7399 EmitT32_32(0xf3ef8000U | (rd.GetCode() << 8) | (spec_reg.GetReg() << 20));
7405 if (cond.IsNotNever() && (!rd.IsPC() || AllowUnpredictable())) {
7406 EmitA32(0x010f0000U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
7411 Delegate(kMrs, &Assembler::mrs, cond, rd, spec_reg);
7457 Condition cond, EncodingSize size, Register rd, Register rn, Register rm) {
7462 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rn.IsLow() &&
7464 EmitT32_16(0x4340 | rd.GetCode() | (rn.GetCode() << 3));
7470 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7471 EmitT32_32(0xfb00f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7479 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7480 EmitA32(0x00000090U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
7485 Delegate(kMul, &Assembler::mul, cond, size, rd, rn, rm);
7488 void Assembler::muls(Condition cond, Register rd, Register rn, Register rm) {
7493 if (OutsideITBlock() && rd.Is(rm) && rn.IsLow() && rm.IsLow()) {
7494 EmitT32_16(0x4340 | rd.GetCode() | (rn.GetCode() << 3));
7501 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7502 EmitA32(0x00100090U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
7507 Delegate(kMuls, &Assembler::muls, cond, rd, rn, rm);
7512 Register rd,
7522 (!rd.IsPC() || AllowUnpredictable())) {
7523 EmitT32_32(0xf06f0000U | (rd.GetCode() << 8) |
7535 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
7545 if (InITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow()) {
7546 EmitT32_16(0x43c0 | rd.GetCode() | (rm.GetCode() << 3));
7557 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7559 EmitT32_32(0xea6f0000U | (rd.GetCode() << 8) | rm.GetCode() |
7570 (rd.GetCode() << 12) | rm.GetCode() |
7583 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7585 (rd.GetCode() << 12) | rm.GetCode() | (shift.GetType() << 5) |
7591 Delegate(kMvn, &Assembler::mvn, cond, size, rd, operand);
7596 Register rd,
7606 (!rd.IsPC() || AllowUnpredictable())) {
7607 EmitT32_32(0xf07f0000U | (rd.GetCode() << 8) |
7619 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
7629 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rm.IsLow()) {
7630 EmitT32_16(0x43c0 | rd.GetCode() | (rm.GetCode() << 3));
7641 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7643 EmitT32_32(0xea7f0000U | (rd.GetCode() << 8) | rm.GetCode() |
7654 (rd.GetCode() << 12) | rm.GetCode() |
7667 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
7669 (rd.GetCode() << 12) | rm.GetCode() | (shift.GetType() << 5) |
7675 Delegate(kMvns, &Assembler::mvns, cond, size, rd, operand);
7705 Register rd,
7716 (!rd.IsPC() || AllowUnpredictable())) {
7717 EmitT32_32(0xf0600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7733 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7735 EmitT32_32(0xea600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7743 Delegate(kOrn, &Assembler::orn, cond, rd, rn, operand);
7747 Register rd,
7758 (!rd.IsPC() || AllowUnpredictable())) {
7759 EmitT32_32(0xf0700000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7775 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7777 EmitT32_32(0xea700000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7785 Delegate(kOrns, &Assembler::orns, cond, rd, rn, operand);
7790 Register rd,
7801 (!rd.IsPC() || AllowUnpredictable())) {
7802 EmitT32_32(0xf0400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7814 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
7825 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
7827 EmitT32_16(0x4300 | rd.GetCode() | (rm.GetCode() << 3));
7838 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7840 EmitT32_32(0xea400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7851 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
7864 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
7867 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
7873 Delegate(kOrr, &Assembler::orr, cond, size, rd, rn, operand);
7878 Register rd,
7889 (!rd.IsPC() || AllowUnpredictable())) {
7890 EmitT32_32(0xf0500000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7902 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
7913 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
7915 EmitT32_16(0x4300 | rd.GetCode() | (rm.GetCode() << 3));
7926 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7928 EmitT32_32(0xea500000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7939 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
7952 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
7955 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
7961 Delegate(kOrrs, &Assembler::orrs, cond, size, rd, rn, operand);
7965 Register rd,
7977 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7978 EmitT32_32(0xeac00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
7987 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
7989 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
7995 Delegate(kPkhbt, &Assembler::pkhbt, cond, rd, rn, operand);
7999 Register rd,
8011 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8013 EmitT32_32(0xeac00020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8023 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8026 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
8032 Delegate(kPkhtb, &Assembler::pkhtb, cond, rd, rn, operand);
8611 void Assembler::qadd(Condition cond, Register rd, Register rm, Register rn) {
8616 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8617 EmitT32_32(0xfa80f080U | (rd.GetCode() << 8) | rm.GetCode() |
8625 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8626 EmitA32(0x01000050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8631 Delegate(kQadd, &Assembler::qadd, cond, rd, rm, rn);
8634 void Assembler::qadd16(Condition cond, Register rd, Register rn, Register rm) {
8639 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8640 EmitT32_32(0xfa90f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8648 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8649 EmitA32(0x06200f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8654 Delegate(kQadd16, &Assembler::qadd16, cond, rd, rn, rm);
8657 void Assembler::qadd8(Condition cond, Register rd, Register rn, Register rm) {
8662 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8663 EmitT32_32(0xfa80f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8671 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8672 EmitA32(0x06200f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8677 Delegate(kQadd8, &Assembler::qadd8, cond, rd, rn, rm);
8680 void Assembler::qasx(Condition cond, Register rd, Register rn, Register rm) {
8685 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8686 EmitT32_32(0xfaa0f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8694 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8695 EmitA32(0x06200f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8700 Delegate(kQasx, &Assembler::qasx, cond, rd, rn, rm);
8703 void Assembler::qdadd(Condition cond, Register rd, Register rm, Register rn) {
8708 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8709 EmitT32_32(0xfa80f090U | (rd.GetCode() << 8) | rm.GetCode() |
8717 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8718 EmitA32(0x01400050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8723 Delegate(kQdadd, &Assembler::qdadd, cond, rd, rm, rn);
8726 void Assembler::qdsub(Condition cond, Register rd, Register rm, Register rn) {
8731 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8732 EmitT32_32(0xfa80f0b0U | (rd.GetCode() << 8) | rm.GetCode() |
8740 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8741 EmitA32(0x01600050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8746 Delegate(kQdsub, &Assembler::qdsub, cond, rd, rm, rn);
8749 void Assembler::qsax(Condition cond, Register rd, Register rn, Register rm) {
8754 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8755 EmitT32_32(0xfae0f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8763 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8764 EmitA32(0x06200f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8769 Delegate(kQsax, &Assembler::qsax, cond, rd, rn, rm);
8772 void Assembler::qsub(Condition cond, Register rd, Register rm, Register rn) {
8777 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8778 EmitT32_32(0xfa80f0a0U | (rd.GetCode() << 8) | rm.GetCode() |
8786 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8787 EmitA32(0x01200050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8792 Delegate(kQsub, &Assembler::qsub, cond, rd, rm, rn);
8795 void Assembler::qsub16(Condition cond, Register rd, Register rn, Register rm) {
8800 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8801 EmitT32_32(0xfad0f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8809 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8810 EmitA32(0x06200f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8815 Delegate(kQsub16, &Assembler::qsub16, cond, rd, rn, rm);
8818 void Assembler::qsub8(Condition cond, Register rd, Register rn, Register rm) {
8823 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8824 EmitT32_32(0xfac0f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
8832 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8833 EmitA32(0x06200ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8838 Delegate(kQsub8, &Assembler::qsub8, cond, rd, rn, rm);
8841 void Assembler::rbit(Condition cond, Register rd, Register rm) {
8846 if (((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8847 EmitT32_32(0xfa90f0a0U | (rd.GetCode() << 8) | rm.GetCode() |
8855 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8856 EmitA32(0x06ff0f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8861 Delegate(kRbit, &Assembler::rbit, cond, rd, rm);
8866 Register rd,
8872 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
8873 EmitT32_16(0xba00 | rd.GetCode() | (rm.GetCode() << 3));
8879 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8880 EmitT32_32(0xfa90f080U | (rd.GetCode() << 8) | rm.GetCode() |
8888 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8889 EmitA32(0x06bf0f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8894 Delegate(kRev, &Assembler::rev, cond, size, rd, rm);
8899 Register rd,
8905 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
8906 EmitT32_16(0xba40 | rd.GetCode() | (rm.GetCode() << 3));
8912 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8913 EmitT32_32(0xfa90f090U | (rd.GetCode() << 8) | rm.GetCode() |
8921 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8922 EmitA32(0x06bf0fb0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8927 Delegate(kRev16, &Assembler::rev16, cond, size, rd, rm);
8932 Register rd,
8938 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
8939 EmitT32_16(0xbac0 | rd.GetCode() | (rm.GetCode() << 3));
8945 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8946 EmitT32_32(0xfa90f0b0U | (rd.GetCode() << 8) | rm.GetCode() |
8954 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8955 EmitA32(0x06ff0fb0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
8960 Delegate(kRevsh, &Assembler::revsh, cond, size, rd, rm);
8965 Register rd,
8975 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
8976 EmitT32_32(0xea4f0030U | (rd.GetCode() << 8) | rm.GetCode() |
8985 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
8994 if (InITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
8996 EmitT32_16(0x41c0 | rd.GetCode() | (rs.GetCode() << 3));
9002 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
9003 EmitT32_32(0xfa60f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
9011 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
9013 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
9018 Delegate(kRor, &Assembler::ror, cond, size, rd, rm, operand);
9023 Register rd,
9033 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9034 EmitT32_32(0xea5f0030U | (rd.GetCode() << 8) | rm.GetCode() |
9043 (rd.GetCode() << 12) | rm.GetCode() | (imm << 7));
9052 if (OutsideITBlock() && !size.IsWide() && rd.Is(rm) && rm.IsLow() &&
9054 EmitT32_16(0x41c0 | rd.GetCode() | (rs.GetCode() << 3));
9060 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
9061 EmitT32_32(0xfa70f000U | (rd.GetCode() << 8) | (rm.GetCode() << 16) |
9069 ((!rd.IsPC() && !rm.IsPC() && !rs.IsPC()) || AllowUnpredictable())) {
9071 (rd.GetCode() << 12) | rm.GetCode() | (rs.GetCode() << 8));
9076 Delegate(kRors, &Assembler::rors, cond, size, rd, rm, operand);
9079 void Assembler::rrx(Condition cond, Register rd, Register rm) {
9084 if (((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9085 EmitT32_32(0xea4f0030U | (rd.GetCode() << 8) | rm.GetCode());
9092 EmitA32(0x01a00060U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9097 Delegate(kRrx, &Assembler::rrx, cond, rd, rm);
9100 void Assembler::rrxs(Condition cond, Register rd, Register rm) {
9105 if (((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9106 EmitT32_32(0xea5f0030U | (rd.GetCode() << 8) | rm.GetCode());
9113 EmitA32(0x01b00060U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9118 Delegate(kRrxs, &Assembler::rrxs, cond, rd, rm);
9123 Register rd,
9133 if (InITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
9135 EmitT32_16(0x4240 | rd.GetCode() | (rn.GetCode() << 3));
9141 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
9142 EmitT32_32(0xf1c00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9154 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9167 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9169 EmitT32_32(0xebc00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9180 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9193 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9196 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9202 Delegate(kRsb, &Assembler::rsb, cond, size, rd, rn, operand);
9207 Register rd,
9217 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
9219 EmitT32_16(0x4240 | rd.GetCode() | (rn.GetCode() << 3));
9225 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
9226 EmitT32_32(0xf1d00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9238 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9251 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9253 EmitT32_32(0xebd00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9264 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9277 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9280 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9286 Delegate(kRsbs, &Assembler::rsbs, cond, size, rd, rn, operand);
9290 Register rd,
9302 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9317 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9330 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9333 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9339 Delegate(kRsc, &Assembler::rsc, cond, rd, rn, operand);
9343 Register rd,
9355 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9370 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9383 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9386 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9392 Delegate(kRscs, &Assembler::rscs, cond, rd, rn, operand);
9395 void Assembler::sadd16(Condition cond, Register rd, Register rn, Register rm) {
9400 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9401 EmitT32_32(0xfa90f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9409 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9410 EmitA32(0x06100f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9415 Delegate(kSadd16, &Assembler::sadd16, cond, rd, rn, rm);
9418 void Assembler::sadd8(Condition cond, Register rd, Register rn, Register rm) {
9423 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9424 EmitT32_32(0xfa80f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9432 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9433 EmitA32(0x06100f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9438 Delegate(kSadd8, &Assembler::sadd8, cond, rd, rn, rm);
9441 void Assembler::sasx(Condition cond, Register rd, Register rn, Register rm) {
9446 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9447 EmitT32_32(0xfaa0f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9455 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9456 EmitA32(0x06100f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9461 Delegate(kSasx, &Assembler::sasx, cond, rd, rn, rm);
9466 Register rd,
9477 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
9478 EmitT32_32(0xf1600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9490 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9501 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
9503 EmitT32_16(0x4180 | rd.GetCode() | (rm.GetCode() << 3));
9514 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9516 EmitT32_32(0xeb600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9527 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9540 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9543 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9549 Delegate(kSbc, &Assembler::sbc, cond, size, rd, rn, operand);
9554 Register rd,
9565 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
9566 EmitT32_32(0xf1700000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9578 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
9589 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
9591 EmitT32_16(0x4180 | rd.GetCode() | (rm.GetCode() << 3));
9602 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9604 EmitT32_32(0xeb700000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9615 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9628 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
9631 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
9637 Delegate(kSbcs, &Assembler::sbcs, cond, size, rd, rn, operand);
9641 Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width) {
9647 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC() && !rn.IsPC()) ||
9650 EmitT32_32(0xf3400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9658 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC() && !rn.IsPC()) ||
9661 EmitA32(0x07a00050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9666 Delegate(kSbfx, &Assembler::sbfx, cond, rd, rn, lsb, width);
9669 void Assembler::sdiv(Condition cond, Register rd, Register rn, Register rm) {
9674 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9675 EmitT32_32(0xfb90f0f0U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9683 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9684 EmitA32(0x0710f010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
9689 Delegate(kSdiv, &Assembler::sdiv, cond, rd, rn, rm);
9692 void Assembler::sel(Condition cond, Register rd, Register rn, Register rm) {
9697 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9698 EmitT32_32(0xfaa0f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9706 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9707 EmitA32(0x06800fb0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9712 Delegate(kSel, &Assembler::sel, cond, rd, rn, rm);
9715 void Assembler::shadd16(Condition cond, Register rd, Register rn, Register rm) {
9720 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9721 EmitT32_32(0xfa90f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9729 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9730 EmitA32(0x06300f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9735 Delegate(kShadd16, &Assembler::shadd16, cond, rd, rn, rm);
9738 void Assembler::shadd8(Condition cond, Register rd, Register rn, Register rm) {
9743 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9744 EmitT32_32(0xfa80f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9752 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9753 EmitA32(0x06300f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9758 Delegate(kShadd8, &Assembler::shadd8, cond, rd, rn, rm);
9761 void Assembler::shasx(Condition cond, Register rd, Register rn, Register rm) {
9766 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9767 EmitT32_32(0xfaa0f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9775 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9776 EmitA32(0x06300f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9781 Delegate(kShasx, &Assembler::shasx, cond, rd, rn, rm);
9784 void Assembler::shsax(Condition cond, Register rd, Register rn, Register rm) {
9789 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9790 EmitT32_32(0xfae0f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9798 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9799 EmitA32(0x06300f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9804 Delegate(kShsax, &Assembler::shsax, cond, rd, rn, rm);
9807 void Assembler::shsub16(Condition cond, Register rd, Register rn, Register rm) {
9812 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9813 EmitT32_32(0xfad0f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9821 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9822 EmitA32(0x06300f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9827 Delegate(kShsub16, &Assembler::shsub16, cond, rd, rn, rm);
9830 void Assembler::shsub8(Condition cond, Register rd, Register rn, Register rm) {
9835 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9836 EmitT32_32(0xfac0f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9844 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9845 EmitA32(0x06300ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
9850 Delegate(kShsub8, &Assembler::shsub8, cond, rd, rn, rm);
9854 Condition cond, Register rd, Register rn, Register rm, Register ra) {
9860 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9861 EmitT32_32(0xfb100000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9869 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
9871 EmitA32(0x01000080U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
9876 Delegate(kSmlabb, &Assembler::smlabb, cond, rd, rn, rm, ra);
9880 Condition cond, Register rd, Register rn, Register rm, Register ra) {
9886 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9887 EmitT32_32(0xfb100010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9895 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
9897 EmitA32(0x010000c0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
9902 Delegate(kSmlabt, &Assembler::smlabt, cond, rd, rn, rm, ra);
9906 Condition cond, Register rd, Register rn, Register rm, Register ra) {
9912 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9913 EmitT32_32(0xfb200000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9921 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9922 EmitA32(0x07000010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
9927 Delegate(kSmlad, &Assembler::smlad, cond, rd, rn, rm, ra);
9931 Condition cond, Register rd, Register rn, Register rm, Register ra) {
9937 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9938 EmitT32_32(0xfb200010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
9946 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
9947 EmitA32(0x07000030U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
9952 Delegate(kSmladx, &Assembler::smladx, cond, rd, rn, rm, ra);
10163 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10169 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10170 EmitT32_32(0xfb100020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10178 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10180 EmitA32(0x010000a0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10185 Delegate(kSmlatb, &Assembler::smlatb, cond, rd, rn, rm, ra);
10189 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10195 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10196 EmitT32_32(0xfb100030U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10204 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10206 EmitA32(0x010000e0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10211 Delegate(kSmlatt, &Assembler::smlatt, cond, rd, rn, rm, ra);
10215 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10221 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10222 EmitT32_32(0xfb300000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10230 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10232 EmitA32(0x01200080U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10237 Delegate(kSmlawb, &Assembler::smlawb, cond, rd, rn, rm, ra);
10241 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10247 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10248 EmitT32_32(0xfb300010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10256 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10258 EmitA32(0x012000c0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10263 Delegate(kSmlawt, &Assembler::smlawt, cond, rd, rn, rm, ra);
10267 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10273 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10274 EmitT32_32(0xfb400000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10282 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10283 EmitA32(0x07000050U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10288 Delegate(kSmlsd, &Assembler::smlsd, cond, rd, rn, rm, ra);
10292 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10298 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10299 EmitT32_32(0xfb400010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10307 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10308 EmitA32(0x07000070U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10313 Delegate(kSmlsdx, &Assembler::smlsdx, cond, rd, rn, rm, ra);
10371 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10377 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10378 EmitT32_32(0xfb500000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10386 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10387 EmitA32(0x07500010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10392 Delegate(kSmmla, &Assembler::smmla, cond, rd, rn, rm, ra);
10396 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10402 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10403 EmitT32_32(0xfb500010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10411 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10412 EmitA32(0x07500030U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10417 Delegate(kSmmlar, &Assembler::smmlar, cond, rd, rn, rm, ra);
10421 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10426 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10428 EmitT32_32(0xfb600000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10436 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10438 EmitA32(0x075000d0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10443 Delegate(kSmmls, &Assembler::smmls, cond, rd, rn, rm, ra);
10447 Condition cond, Register rd, Register rn, Register rm, Register ra) {
10452 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10454 EmitT32_32(0xfb600010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10462 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !ra.IsPC()) ||
10464 EmitA32(0x075000f0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10469 Delegate(kSmmlsr, &Assembler::smmlsr, cond, rd, rn, rm, ra);
10472 void Assembler::smmul(Condition cond, Register rd, Register rn, Register rm) {
10477 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10478 EmitT32_32(0xfb50f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10486 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10487 EmitA32(0x0750f010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10492 Delegate(kSmmul, &Assembler::smmul, cond, rd, rn, rm);
10495 void Assembler::smmulr(Condition cond, Register rd, Register rn, Register rm) {
10500 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10501 EmitT32_32(0xfb50f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10509 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10510 EmitA32(0x0750f030U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10515 Delegate(kSmmulr, &Assembler::smmulr, cond, rd, rn, rm);
10518 void Assembler::smuad(Condition cond, Register rd, Register rn, Register rm) {
10523 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10524 EmitT32_32(0xfb20f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10532 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10533 EmitA32(0x0700f010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10538 Delegate(kSmuad, &Assembler::smuad, cond, rd, rn, rm);
10541 void Assembler::smuadx(Condition cond, Register rd, Register rn, Register rm) {
10546 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10547 EmitT32_32(0xfb20f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10555 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10556 EmitA32(0x0700f030U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10561 Delegate(kSmuadx, &Assembler::smuadx, cond, rd, rn, rm);
10564 void Assembler::smulbb(Condition cond, Register rd, Register rn, Register rm) {
10569 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10570 EmitT32_32(0xfb10f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10578 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10579 EmitA32(0x01600080U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10584 Delegate(kSmulbb, &Assembler::smulbb, cond, rd, rn, rm);
10587 void Assembler::smulbt(Condition cond, Register rd, Register rn, Register rm) {
10592 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10593 EmitT32_32(0xfb10f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10601 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10602 EmitA32(0x016000c0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10607 Delegate(kSmulbt, &Assembler::smulbt, cond, rd, rn, rm);
10655 void Assembler::smultb(Condition cond, Register rd, Register rn, Register rm) {
10660 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10661 EmitT32_32(0xfb10f020U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10669 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10670 EmitA32(0x016000a0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10675 Delegate(kSmultb, &Assembler::smultb, cond, rd, rn, rm);
10678 void Assembler::smultt(Condition cond, Register rd, Register rn, Register rm) {
10683 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10684 EmitT32_32(0xfb10f030U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10692 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10693 EmitA32(0x016000e0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10698 Delegate(kSmultt, &Assembler::smultt, cond, rd, rn, rm);
10701 void Assembler::smulwb(Condition cond, Register rd, Register rn, Register rm) {
10706 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10707 EmitT32_32(0xfb30f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10715 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10716 EmitA32(0x012000a0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10721 Delegate(kSmulwb, &Assembler::smulwb, cond, rd, rn, rm);
10724 void Assembler::smulwt(Condition cond, Register rd, Register rn, Register rm) {
10729 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10730 EmitT32_32(0xfb30f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10738 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10739 EmitA32(0x012000e0U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10744 Delegate(kSmulwt, &Assembler::smulwt, cond, rd, rn, rm);
10747 void Assembler::smusd(Condition cond, Register rd, Register rn, Register rm) {
10752 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10753 EmitT32_32(0xfb40f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10761 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10762 EmitA32(0x0700f050U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10767 Delegate(kSmusd, &Assembler::smusd, cond, rd, rn, rm);
10770 void Assembler::smusdx(Condition cond, Register rd, Register rn, Register rm) {
10775 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10776 EmitT32_32(0xfb40f010U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10784 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10785 EmitA32(0x0700f070U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
10790 Delegate(kSmusdx, &Assembler::smusdx, cond, rd, rn, rm);
10794 Register rd,
10807 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10809 EmitT32_32(0xf3200000U | (rd.GetCode() << 8) | imm_ |
10817 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10819 EmitT32_32(0xf3000000U | (rd.GetCode() << 8) | imm_ |
10829 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10833 (rd.GetCode() << 12) | (imm_ << 16) | rn.GetCode() |
10840 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10843 (rd.GetCode() << 12) | (imm_ << 16) | rn.GetCode() |
10849 Delegate(kSsat, &Assembler::ssat, cond, rd, imm, operand);
10852 void Assembler::ssat16(Condition cond, Register rd, uint32_t imm, Register rn) {
10858 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10860 EmitT32_32(0xf3200000U | (rd.GetCode() << 8) | imm_ |
10868 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
10870 EmitA32(0x06a00f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
10875 Delegate(kSsat16, &Assembler::ssat16, cond, rd, imm, rn);
10878 void Assembler::ssax(Condition cond, Register rd, Register rn, Register rm) {
10883 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10884 EmitT32_32(0xfae0f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10892 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10893 EmitA32(0x06100f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
10898 Delegate(kSsax, &Assembler::ssax, cond, rd, rn, rm);
10901 void Assembler::ssub16(Condition cond, Register rd, Register rn, Register rm) {
10906 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10907 EmitT32_32(0xfad0f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10915 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10916 EmitA32(0x06100f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
10921 Delegate(kSsub16, &Assembler::ssub16, cond, rd, rn, rm);
10924 void Assembler::ssub8(Condition cond, Register rd, Register rn, Register rm) {
10929 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10930 EmitT32_32(0xfac0f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
10938 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
10939 EmitA32(0x06100ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
10944 Delegate(kSsub8, &Assembler::ssub8, cond, rd, rn, rm);
11000 Register rd,
11010 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11011 EmitT32_32(0xe8c00fe0U | rd.GetCode() | (rt.GetCode() << 12) |
11019 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11021 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11026 Delegate(kStlex, &Assembler::stlex, cond, rd, rt, operand);
11030 Register rd,
11040 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11041 EmitT32_32(0xe8c00fc0U | rd.GetCode() | (rt.GetCode() << 12) |
11049 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11051 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11056 Delegate(kStlexb, &Assembler::stlexb, cond, rd, rt, operand);
11060 Register rd,
11071 ((!rd.IsPC() && !rt.IsPC() && !rt2.IsPC() && !rn.IsPC()) ||
11073 EmitT32_32(0xe8c000f0U | rd.GetCode() | (rt.GetCode() << 12) |
11082 ((!rd.IsPC() && ((rt.GetCode() & 1) == 0) && !rt2.IsPC() &&
11086 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11091 Delegate(kStlexd, &Assembler::stlexd, cond, rd, rt, rt2, operand);
11095 Register rd,
11105 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11106 EmitT32_32(0xe8c00fd0U | rd.GetCode() | (rt.GetCode() << 12) |
11114 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11116 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11121 Delegate(kStlexh, &Assembler::stlexh, cond, rd, rt, operand);
11833 Register rd,
11845 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11847 EmitT32_32(0xe8400000U | (rd.GetCode() << 8) | (rt.GetCode() << 12) |
11855 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11857 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11862 Delegate(kStrex, &Assembler::strex, cond, rd, rt, operand);
11866 Register rd,
11876 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11877 EmitT32_32(0xe8c00f40U | rd.GetCode() | (rt.GetCode() << 12) |
11885 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11887 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11892 Delegate(kStrexb, &Assembler::strexb, cond, rd, rt, operand);
11896 Register rd,
11907 ((!rd.IsPC() && !rt.IsPC() && !rt2.IsPC() && !rn.IsPC()) ||
11909 EmitT32_32(0xe8c00070U | rd.GetCode() | (rt.GetCode() << 12) |
11918 ((!rd.IsPC() && ((rt.GetCode() & 1) == 0) && !rt2.IsPC() &&
11922 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11927 Delegate(kStrexd, &Assembler::strexd, cond, rd, rt, rt2, operand);
11931 Register rd,
11941 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11942 EmitT32_32(0xe8c00f50U | rd.GetCode() | (rt.GetCode() << 12) |
11950 ((!rd.IsPC() && !rt.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
11952 (rd.GetCode() << 12) | rt.GetCode() | (rn.GetCode() << 16));
11957 Delegate(kStrexh, &Assembler::strexh, cond, rd, rt, operand);
12118 Register rd,
12128 if (InITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
12130 EmitT32_16(0x1e00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
12135 if (InITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
12137 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12142 if (!size.IsWide() && rd.Is(sp) && rn.Is(sp) && (imm <= 508) &&
12151 (!rd.IsPC() || AllowUnpredictable())) {
12152 EmitT32_32(0xf2af0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12159 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
12160 EmitT32_32(0xf1a00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12169 (!rd.IsPC() || AllowUnpredictable())) {
12170 EmitT32_32(0xf2a00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12177 (!rd.IsPC() || AllowUnpredictable())) {
12178 EmitT32_32(0xf1ad0000U | (rd.GetCode() << 8) |
12187 (!rd.IsPC() || AllowUnpredictable())) {
12188 EmitT32_32(0xf2ad0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12198 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
12205 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
12212 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
12222 if (InITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
12224 EmitT32_16(0x1a00 | rd.GetCode() | (rn.GetCode() << 3) |
12230 if (rn.Is(sp) && ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12231 EmitT32_32(0xebad0000U | (rd.GetCode() << 8) | rm.GetCode());
12242 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12244 EmitT32_32(0xeba00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12252 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12254 EmitT32_32(0xebad0000U | (rd.GetCode() << 8) | rm.GetCode() |
12265 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12273 (rd.GetCode() << 12) | rm.GetCode() |
12286 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
12289 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12295 Delegate(kSub, &Assembler::sub, cond, size, rd, rn, operand);
12298 void Assembler::sub(Condition cond, Register rd, const Operand& operand) {
12305 if (InITBlock() && rd.IsLow() && (imm <= 255)) {
12306 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12312 Delegate(kSub, &Assembler::sub, cond, rd, operand);
12317 Register rd,
12327 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
12329 EmitT32_16(0x1e00 | rd.GetCode() | (rn.GetCode() << 3) | (imm << 6));
12334 if (OutsideITBlock() && !size.IsWide() && rd.Is(rn) && rn.IsLow() &&
12336 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12342 !rd.Is(pc) && (!rn.IsPC() || AllowUnpredictable())) {
12343 EmitT32_32(0xf1b00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12351 if (!size.IsNarrow() && rd.Is(pc) && rn.Is(lr) && (imm <= 255) &&
12359 !rd.Is(pc)) {
12360 EmitT32_32(0xf1bd0000U | (rd.GetCode() << 8) |
12372 (rd.GetCode() << 12) | (rn.GetCode() << 16) |
12379 (rd.GetCode() << 12) | immediate_a32.GetEncodingValue());
12389 if (OutsideITBlock() && !size.IsWide() && rd.IsLow() && rn.IsLow() &&
12391 EmitT32_16(0x1a00 | rd.GetCode() | (rn.GetCode() << 3) |
12403 !rd.Is(pc) && ((!rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12405 EmitT32_32(0xebb00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12413 !rd.Is(pc) && (!rm.IsPC() || AllowUnpredictable())) {
12415 EmitT32_32(0xebbd0000U | (rd.GetCode() << 8) | rm.GetCode() |
12426 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12434 (rd.GetCode() << 12) | rm.GetCode() |
12447 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC() && !rs.IsPC()) ||
12450 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12456 Delegate(kSubs, &Assembler::subs, cond, size, rd, rn, operand);
12459 void Assembler::subs(Register rd, const Operand& operand) {
12466 if (OutsideITBlock() && rd.IsLow() && (imm <= 255)) {
12467 EmitT32_16(0x3800 | (rd.GetCode() << 8) | imm);
12473 Delegate(kSubs, &Assembler::subs, rd, operand);
12477 Register rd,
12487 (!rd.IsPC() || AllowUnpredictable())) {
12488 EmitT32_32(0xf2a00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12494 if (rn.Is(sp) && (imm <= 4095) && (!rd.IsPC() || AllowUnpredictable())) {
12495 EmitT32_32(0xf2ad0000U | (rd.GetCode() << 8) | (imm & 0xff) |
12502 Delegate(kSubw, &Assembler::subw, cond, rd, rn, operand);
12526 Register rd,
12539 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12541 EmitT32_32(0xfa40f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12550 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12553 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12559 Delegate(kSxtab, &Assembler::sxtab, cond, rd, rn, operand);
12563 Register rd,
12576 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12578 EmitT32_32(0xfa20f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12587 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12590 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12596 Delegate(kSxtab16, &Assembler::sxtab16, cond, rd, rn, operand);
12600 Register rd,
12613 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12615 EmitT32_32(0xfa00f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12624 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12627 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
12633 Delegate(kSxtah, &Assembler::sxtah, cond, rd, rn, operand);
12638 Register rd,
12647 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
12648 EmitT32_16(0xb240 | rd.GetCode() | (rm.GetCode() << 3));
12660 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12662 EmitT32_32(0xfa4ff080U | (rd.GetCode() << 8) | rm.GetCode() |
12671 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12674 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
12679 Delegate(kSxtb, &Assembler::sxtb, cond, size, rd, operand);
12682 void Assembler::sxtb16(Condition cond, Register rd, const Operand& operand) {
12693 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12695 EmitT32_32(0xfa2ff080U | (rd.GetCode() << 8) | rm.GetCode() |
12704 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12707 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
12712 Delegate(kSxtb16, &Assembler::sxtb16, cond, rd, operand);
12717 Register rd,
12726 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
12727 EmitT32_16(0xb200 | rd.GetCode() | (rm.GetCode() << 3));
12739 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12741 EmitT32_32(0xfa0ff080U | (rd.GetCode() << 8) | rm.GetCode() |
12750 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12753 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
12758 Delegate(kSxth, &Assembler::sxth, cond, size, rd, operand);
12945 void Assembler::uadd16(Condition cond, Register rd, Register rn, Register rm) {
12950 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12951 EmitT32_32(0xfa90f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12959 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12960 EmitA32(0x06500f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
12965 Delegate(kUadd16, &Assembler::uadd16, cond, rd, rn, rm);
12968 void Assembler::uadd8(Condition cond, Register rd, Register rn, Register rm) {
12973 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12974 EmitT32_32(0xfa80f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
12982 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12983 EmitA32(0x06500f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
12988 Delegate(kUadd8, &Assembler::uadd8, cond, rd, rn, rm);
12991 void Assembler::uasx(Condition cond, Register rd, Register rn, Register rm) {
12996 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
12997 EmitT32_32(0xfaa0f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13005 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13006 EmitA32(0x06500f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13011 Delegate(kUasx, &Assembler::uasx, cond, rd, rn, rm);
13015 Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width) {
13021 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC() && !rn.IsPC()) ||
13024 EmitT32_32(0xf3c00000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13032 (((width >= 1) && (width <= 32 - lsb) && !rd.IsPC() && !rn.IsPC()) ||
13035 EmitA32(0x07e00050U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13040 Delegate(kUbfx, &Assembler::ubfx, cond, rd, rn, lsb, width);
13075 void Assembler::udiv(Condition cond, Register rd, Register rn, Register rm) {
13080 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13081 EmitT32_32(0xfbb0f0f0U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13089 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13090 EmitA32(0x0730f010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
13095 Delegate(kUdiv, &Assembler::udiv, cond, rd, rn, rm);
13098 void Assembler::uhadd16(Condition cond, Register rd, Register rn, Register rm) {
13103 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13104 EmitT32_32(0xfa90f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13112 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13113 EmitA32(0x06700f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13118 Delegate(kUhadd16, &Assembler::uhadd16, cond, rd, rn, rm);
13121 void Assembler::uhadd8(Condition cond, Register rd, Register rn, Register rm) {
13126 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13127 EmitT32_32(0xfa80f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13135 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13136 EmitA32(0x06700f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13141 Delegate(kUhadd8, &Assembler::uhadd8, cond, rd, rn, rm);
13144 void Assembler::uhasx(Condition cond, Register rd, Register rn, Register rm) {
13149 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13150 EmitT32_32(0xfaa0f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13158 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13159 EmitA32(0x06700f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13164 Delegate(kUhasx, &Assembler::uhasx, cond, rd, rn, rm);
13167 void Assembler::uhsax(Condition cond, Register rd, Register rn, Register rm) {
13172 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13173 EmitT32_32(0xfae0f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13181 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13182 EmitA32(0x06700f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13187 Delegate(kUhsax, &Assembler::uhsax, cond, rd, rn, rm);
13190 void Assembler::uhsub16(Condition cond, Register rd, Register rn, Register rm) {
13195 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13196 EmitT32_32(0xfad0f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13204 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13205 EmitA32(0x06700f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13210 Delegate(kUhsub16, &Assembler::uhsub16, cond, rd, rn, rm);
13213 void Assembler::uhsub8(Condition cond, Register rd, Register rn, Register rm) {
13218 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13219 EmitT32_32(0xfac0f060U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13227 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13228 EmitA32(0x06700ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13233 Delegate(kUhsub8, &Assembler::uhsub8, cond, rd, rn, rm);
13353 void Assembler::uqadd16(Condition cond, Register rd, Register rn, Register rm) {
13358 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13359 EmitT32_32(0xfa90f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13367 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13368 EmitA32(0x06600f10U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13373 Delegate(kUqadd16, &Assembler::uqadd16, cond, rd, rn, rm);
13376 void Assembler::uqadd8(Condition cond, Register rd, Register rn, Register rm) {
13381 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13382 EmitT32_32(0xfa80f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13390 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13391 EmitA32(0x06600f90U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13396 Delegate(kUqadd8, &Assembler::uqadd8, cond, rd, rn, rm);
13399 void Assembler::uqasx(Condition cond, Register rd, Register rn, Register rm) {
13404 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13405 EmitT32_32(0xfaa0f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13413 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13414 EmitA32(0x06600f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13419 Delegate(kUqasx, &Assembler::uqasx, cond, rd, rn, rm);
13422 void Assembler::uqsax(Condition cond, Register rd, Register rn, Register rm) {
13427 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13428 EmitT32_32(0xfae0f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13436 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13437 EmitA32(0x06600f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13442 Delegate(kUqsax, &Assembler::uqsax, cond, rd, rn, rm);
13445 void Assembler::uqsub16(Condition cond, Register rd, Register rn, Register rm) {
13450 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13451 EmitT32_32(0xfad0f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13459 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13460 EmitA32(0x06600f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13465 Delegate(kUqsub16, &Assembler::uqsub16, cond, rd, rn, rm);
13468 void Assembler::uqsub8(Condition cond, Register rd, Register rn, Register rm) {
13473 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13474 EmitT32_32(0xfac0f050U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13482 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13483 EmitA32(0x06600ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13488 Delegate(kUqsub8, &Assembler::uqsub8, cond, rd, rn, rm);
13491 void Assembler::usad8(Condition cond, Register rd, Register rn, Register rm) {
13496 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13497 EmitT32_32(0xfb70f000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13505 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13506 EmitA32(0x0780f010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
13511 Delegate(kUsad8, &Assembler::usad8, cond, rd, rn, rm);
13515 Condition cond, Register rd, Register rn, Register rm, Register ra) {
13521 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13522 EmitT32_32(0xfb700000U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13530 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13531 EmitA32(0x07800010U | (cond.GetCondition() << 28) | (rd.GetCode() << 16) |
13536 Delegate(kUsada8, &Assembler::usada8, cond, rd, rn, rm, ra);
13540 Register rd,
13552 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13553 EmitT32_32(0xf3a00000U | (rd.GetCode() << 8) | imm |
13561 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13562 EmitT32_32(0xf3800000U | (rd.GetCode() << 8) | imm |
13572 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13575 (rd.GetCode() << 12) | (imm << 16) | rn.GetCode() |
13581 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
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) {
13597 if ((imm <= 15) && ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13598 EmitT32_32(0xf3a00000U | (rd.GetCode() << 8) | imm |
13606 ((!rd.IsPC() && !rn.IsPC()) || AllowUnpredictable())) {
13607 EmitA32(0x06e00f30U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13612 Delegate(kUsat16, &Assembler::usat16, cond, rd, imm, rn);
13615 void Assembler::usax(Condition cond, Register rd, Register rn, Register rm) {
13620 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13621 EmitT32_32(0xfae0f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13629 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13630 EmitA32(0x06500f50U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13635 Delegate(kUsax, &Assembler::usax, cond, rd, rn, rm);
13638 void Assembler::usub16(Condition cond, Register rd, Register rn, Register rm) {
13643 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13644 EmitT32_32(0xfad0f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13652 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13653 EmitA32(0x06500f70U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13658 Delegate(kUsub16, &Assembler::usub16, cond, rd, rn, rm);
13661 void Assembler::usub8(Condition cond, Register rd, Register rn, Register rm) {
13666 if (((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13667 EmitT32_32(0xfac0f040U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13675 ((!rd.IsPC() && !rn.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13676 EmitA32(0x06500ff0U | (cond.GetCondition() << 28) | (rd.GetCode() << 12) |
13681 Delegate(kUsub8, &Assembler::usub8, cond, rd, rn, rm);
13685 Register rd,
13698 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13700 EmitT32_32(0xfa50f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13709 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13712 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
13718 Delegate(kUxtab, &Assembler::uxtab, cond, rd, rn, operand);
13722 Register rd,
13735 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13737 EmitT32_32(0xfa30f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13746 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13749 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
13755 Delegate(kUxtab16, &Assembler::uxtab16, cond, rd, rn, operand);
13759 Register rd,
13772 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13774 EmitT32_32(0xfa10f080U | (rd.GetCode() << 8) | (rn.GetCode() << 16) |
13783 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13786 (rd.GetCode() << 12) | (rn.GetCode() << 16) | rm.GetCode() |
13792 Delegate(kUxtah, &Assembler::uxtah, cond, rd, rn, operand);
13797 Register rd,
13806 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
13807 EmitT32_16(0xb2c0 | rd.GetCode() | (rm.GetCode() << 3));
13819 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13821 EmitT32_32(0xfa5ff080U | (rd.GetCode() << 8) | rm.GetCode() |
13830 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13833 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
13838 Delegate(kUxtb, &Assembler::uxtb, cond, size, rd, operand);
13841 void Assembler::uxtb16(Condition cond, Register rd, const Operand& operand) {
13852 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13854 EmitT32_32(0xfa3ff080U | (rd.GetCode() << 8) | rm.GetCode() |
13863 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13866 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
13871 Delegate(kUxtb16, &Assembler::uxtb16, cond, rd, operand);
13876 Register rd,
13885 if (!size.IsWide() && rd.IsLow() && rm.IsLow()) {
13886 EmitT32_16(0xb280 | rd.GetCode() | (rm.GetCode() << 3));
13898 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13900 EmitT32_32(0xfa1ff080U | (rd.GetCode() << 8) | rm.GetCode() |
13909 ((!rd.IsPC() && !rm.IsPC()) || AllowUnpredictable())) {
13912 (rd.GetCode() << 12) | rm.GetCode() | (amount_ << 10));
13917 Delegate(kUxth, &Assembler::uxth, cond, size, rd, operand);
13921 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
13931 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
13942 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
13947 Delegate(kVaba, &Assembler::vaba, cond, dt, rd, rn, rm);
13951 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
13961 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
13972 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
13977 Delegate(kVaba, &Assembler::vaba, cond, dt, rd, rn, rm);
13981 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
13991 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14002 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14007 Delegate(kVabal, &Assembler::vabal, cond, dt, rd, rn, rm);
14011 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14019 EmitT32_32(0xff200d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14030 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14039 EmitA32(0xf3200d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14049 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14054 Delegate(kVabd, &Assembler::vabd, cond, dt, rd, rn, rm);
14058 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14066 EmitT32_32(0xff200d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14077 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14086 EmitA32(0xf3200d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14096 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14101 Delegate(kVabd, &Assembler::vabd, cond, dt, rd, rn, rm);
14105 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
14115 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14126 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14131 Delegate(kVabdl, &Assembler::vabdl, cond, dt, rd, rn, rm);
14134 void Assembler::vabs(Condition cond, DataType dt, DRegister rd, DRegister rm) {
14144 rd.Encode(22, 12) | rm.Encode(5, 0));
14151 EmitT32_32(0xeeb00bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
14161 rd.Encode(22, 12) | rm.Encode(5, 0));
14167 EmitA32(0x0eb00bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
14172 Delegate(kVabs, &Assembler::vabs, cond, dt, rd, rm);
14175 void Assembler::vabs(Condition cond, DataType dt, QRegister rd, QRegister rm) {
14185 rd.Encode(22, 12) | rm.Encode(5, 0));
14196 rd.Encode(22, 12) | rm.Encode(5, 0));
14201 Delegate(kVabs, &Assembler::vabs, cond, dt, rd, rm);
14204 void Assembler::vabs(Condition cond, DataType dt, SRegister rd, SRegister rm) {
14210 EmitT32_32(0xeeb00ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
14217 EmitA32(0x0eb00ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
14222 Delegate(kVabs, &Assembler::vabs, cond, dt, rd, rm);
14226 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14233 EmitT32_32(0xff000e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14243 EmitA32(0xf3000e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14249 Delegate(kVacge, &Assembler::vacge, cond, dt, rd, rn, rm);
14253 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14260 EmitT32_32(0xff000e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14270 EmitA32(0xf3000e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14276 Delegate(kVacge, &Assembler::vacge, cond, dt, rd, rn, rm);
14280 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14287 EmitT32_32(0xff200e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14297 EmitA32(0xf3200e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14303 Delegate(kVacgt, &Assembler::vacgt, cond, dt, rd, rn, rm);
14307 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14314 EmitT32_32(0xff200e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14324 EmitA32(0xf3200e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14330 Delegate(kVacgt, &Assembler::vacgt, cond, dt, rd, rn, rm);
14334 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14341 EmitT32_32(0xff000e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14351 EmitA32(0xf3000e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14357 Delegate(kVacle, &Assembler::vacle, cond, dt, rd, rn, rm);
14361 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14368 EmitT32_32(0xff000e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14378 EmitA32(0xf3000e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14384 Delegate(kVacle, &Assembler::vacle, cond, dt, rd, rn, rm);
14388 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14395 EmitT32_32(0xff200e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14405 EmitA32(0xf3200e10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14411 Delegate(kVaclt, &Assembler::vaclt, cond, dt, rd, rn, rm);
14415 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14422 EmitT32_32(0xff200e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14432 EmitA32(0xf3200e50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14438 Delegate(kVaclt, &Assembler::vaclt, cond, dt, rd, rn, rm);
14442 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14450 EmitT32_32(0xef000d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14458 EmitT32_32(0xee300b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14467 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14476 EmitA32(0xf2000d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14483 EmitA32(0x0e300b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
14491 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14496 Delegate(kVadd, &Assembler::vadd, cond, dt, rd, rn, rm);
14500 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14508 EmitT32_32(0xef000d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14518 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14527 EmitA32(0xf2000d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14536 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14541 Delegate(kVadd, &Assembler::vadd, cond, dt, rd, rn, rm);
14545 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
14551 EmitT32_32(0xee300a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14559 EmitA32(0x0e300a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
14564 Delegate(kVadd, &Assembler::vadd, cond, dt, rd, rn, rm);
14568 Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm) {
14577 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14587 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14592 Delegate(kVaddhn, &Assembler::vaddhn, cond, dt, rd, rn, rm);
14596 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
14606 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14617 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14622 Delegate(kVaddl, &Assembler::vaddl, cond, dt, rd, rn, rm);
14626 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm) {
14636 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14647 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
14652 Delegate(kVaddw, &Assembler::vaddw, cond, dt, rd, rn, rm);
14657 DRegister rd,
14666 if (encoded_dt.IsValid() && rd.Is(rn)) {
14669 rd.Encode(22, 12) |
14679 if (encoded_dt.IsValid() && rd.Is(rn)) {
14682 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
14696 EmitT32_32(0xef000110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14704 EmitA32(0xf2000110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14710 Delegate(kVand, &Assembler::vand, cond, dt, rd, rn, operand);
14715 QRegister rd,
14724 if (encoded_dt.IsValid() && rd.Is(rn)) {
14727 rd.Encode(22, 12) |
14737 if (encoded_dt.IsValid() && rd.Is(rn)) {
14740 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
14754 EmitT32_32(0xef000150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14762 EmitA32(0xf2000150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14768 Delegate(kVand, &Assembler::vand, cond, dt, rd, rn, operand);
14773 DRegister rd,
14782 if (encoded_dt.IsValid() && rd.Is(rn)) {
14785 rd.Encode(22, 12) |
14795 if (encoded_dt.IsValid() && rd.Is(rn)) {
14798 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
14812 EmitT32_32(0xef100110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14820 EmitA32(0xf2100110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14826 Delegate(kVbic, &Assembler::vbic, cond, dt, rd, rn, operand);
14831 QRegister rd,
14840 if (encoded_dt.IsValid() && rd.Is(rn)) {
14843 rd.Encode(22, 12) |
14853 if (encoded_dt.IsValid() && rd.Is(rn)) {
14856 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
14870 EmitT32_32(0xef100150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14878 EmitA32(0xf2100150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14884 Delegate(kVbic, &Assembler::vbic, cond, dt, rd, rn, operand);
14888 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14895 EmitT32_32(0xff300110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14903 EmitA32(0xf3300110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14908 Delegate(kVbif, &Assembler::vbif, cond, dt, rd, rn, rm);
14912 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14919 EmitT32_32(0xff300150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14927 EmitA32(0xf3300150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14932 Delegate(kVbif, &Assembler::vbif, cond, dt, rd, rn, rm);
14936 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14943 EmitT32_32(0xff200110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14951 EmitA32(0xf3200110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14956 Delegate(kVbit, &Assembler::vbit, cond, dt, rd, rn, rm);
14960 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
14967 EmitT32_32(0xff200150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14975 EmitA32(0xf3200150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14980 Delegate(kVbit, &Assembler::vbit, cond, dt, rd, rn, rm);
14984 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
14991 EmitT32_32(0xff100110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
14999 EmitA32(0xf3100110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15004 Delegate(kVbsl, &Assembler::vbsl, cond, dt, rd, rn, rm);
15008 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15015 EmitT32_32(0xff100150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15023 EmitA32(0xf3100150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15028 Delegate(kVbsl, &Assembler::vbsl, cond, dt, rd, rn, rm);
15033 DRegister rd,
15049 rd.Encode(22, 12) | rm.Encode(5, 0));
15061 rd.Encode(22, 12) | rm.Encode(5, 0));
15068 Delegate(kVceq, &Assembler::vceq, cond, dt, rd, rm, operand);
15073 QRegister rd,
15089 rd.Encode(22, 12) | rm.Encode(5, 0));
15101 rd.Encode(22, 12) | rm.Encode(5, 0));
15108 Delegate(kVceq, &Assembler::vceq, cond, dt, rd, rm, operand);
15112 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
15122 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15131 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15141 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15149 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15154 Delegate(kVceq, &Assembler::vceq, cond, dt, rd, rn, rm);
15158 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15168 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15177 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15187 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15195 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15200 Delegate(kVceq, &Assembler::vceq, cond, dt, rd, rn, rm);
15205 DRegister rd,
15221 rd.Encode(22, 12) | rm.Encode(5, 0));
15233 rd.Encode(22, 12) | rm.Encode(5, 0));
15240 Delegate(kVcge, &Assembler::vcge, cond, dt, rd, rm, operand);
15245 QRegister rd,
15261 rd.Encode(22, 12) | rm.Encode(5, 0));
15273 rd.Encode(22, 12) | rm.Encode(5, 0));
15280 Delegate(kVcge, &Assembler::vcge, cond, dt, rd, rm, operand);
15284 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
15294 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15302 EmitT32_32(0xff000e00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15314 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15321 EmitA32(0xf3000e00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15327 Delegate(kVcge, &Assembler::vcge, cond, dt, rd, rn, rm);
15331 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15341 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15349 EmitT32_32(0xff000e40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15361 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15368 EmitA32(0xf3000e40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15374 Delegate(kVcge, &Assembler::vcge, cond, dt, rd, rn, rm);
15379 DRegister rd,
15395 rd.Encode(22, 12) | rm.Encode(5, 0));
15407 rd.Encode(22, 12) | rm.Encode(5, 0));
15414 Delegate(kVcgt, &Assembler::vcgt, cond, dt, rd, rm, operand);
15419 QRegister rd,
15435 rd.Encode(22, 12) | rm.Encode(5, 0));
15447 rd.Encode(22, 12) | rm.Encode(5, 0));
15454 Delegate(kVcgt, &Assembler::vcgt, cond, dt, rd, rm, operand);
15458 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
15468 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15476 EmitT32_32(0xff200e00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15488 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15495 EmitA32(0xf3200e00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15501 Delegate(kVcgt, &Assembler::vcgt, cond, dt, rd, rn, rm);
15505 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15515 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15523 EmitT32_32(0xff200e40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15535 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
15542 EmitA32(0xf3200e40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
15548 Delegate(kVcgt, &Assembler::vcgt, cond, dt, rd, rn, rm);
15553 DRegister rd,
15569 rd.Encode(22, 12) | rm.Encode(5, 0));
15581 rd.Encode(22, 12) | rm.Encode(5, 0));
15588 Delegate(kVcle, &Assembler::vcle, cond, dt, rd, rm, operand);
15593 QRegister rd,
15609 rd.Encode(22, 12) | rm.Encode(5, 0));
15621 rd.Encode(22, 12) | rm.Encode(5, 0));
15628 Delegate(kVcle, &Assembler::vcle, cond, dt, rd, rm, operand);
15632 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
15642 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15650 EmitT32_32(0xff000e00U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15662 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15669 EmitA32(0xf3000e00U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15675 Delegate(kVcle, &Assembler::vcle, cond, dt, rd, rn, rm);
15679 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15689 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15697 EmitT32_32(0xff000e40U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15709 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15716 EmitA32(0xf3000e40U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15722 Delegate(kVcle, &Assembler::vcle, cond, dt, rd, rn, rm);
15725 void Assembler::vcls(Condition cond, DataType dt, DRegister rd, DRegister rm) {
15734 rd.Encode(22, 12) | rm.Encode(5, 0));
15744 rd.Encode(22, 12) | rm.Encode(5, 0));
15749 Delegate(kVcls, &Assembler::vcls, cond, dt, rd, rm);
15752 void Assembler::vcls(Condition cond, DataType dt, QRegister rd, QRegister rm) {
15761 rd.Encode(22, 12) | rm.Encode(5, 0));
15771 rd.Encode(22, 12) | rm.Encode(5, 0));
15776 Delegate(kVcls, &Assembler::vcls, cond, dt, rd, rm);
15781 DRegister rd,
15797 rd.Encode(22, 12) | rm.Encode(5, 0));
15809 rd.Encode(22, 12) | rm.Encode(5, 0));
15816 Delegate(kVclt, &Assembler::vclt, cond, dt, rd, rm, operand);
15821 QRegister rd,
15837 rd.Encode(22, 12) | rm.Encode(5, 0));
15849 rd.Encode(22, 12) | rm.Encode(5, 0));
15856 Delegate(kVclt, &Assembler::vclt, cond, dt, rd, rm, operand);
15860 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
15870 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15878 EmitT32_32(0xff200e00U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15890 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15897 EmitA32(0xf3200e00U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15903 Delegate(kVclt, &Assembler::vclt, cond, dt, rd, rn, rm);
15907 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
15917 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15925 EmitT32_32(0xff200e40U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15937 rd.Encode(22, 12) | rn.Encode(5, 0) | rm.Encode(7, 16));
15944 EmitA32(0xf3200e40U | rd.Encode(22, 12) | rn.Encode(5, 0) |
15950 Delegate(kVclt, &Assembler::vclt, cond, dt, rd, rn, rm);
15953 void Assembler::vclz(Condition cond, DataType dt, DRegister rd, DRegister rm) {
15962 rd.Encode(22, 12) | rm.Encode(5, 0));
15972 rd.Encode(22, 12) | rm.Encode(5, 0));
15977 Delegate(kVclz, &Assembler::vclz, cond, dt, rd, rm);
15980 void Assembler::vclz(Condition cond, DataType dt, QRegister rd, QRegister rm) {
15989 rd.Encode(22, 12) | rm.Encode(5, 0));
15999 rd.Encode(22, 12) | rm.Encode(5, 0));
16004 Delegate(kVclz, &Assembler::vclz, cond, dt, rd, rm);
16009 SRegister rd,
16018 EmitT32_32(0xeeb40a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16025 EmitA32(0x0eb40a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16035 EmitT32_32(0xeeb50a40U | rd.Encode(22, 12));
16042 EmitA32(0x0eb50a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12));
16047 Delegate(kVcmp, &Assembler::vcmp, cond, dt, rd, operand);
16052 DRegister rd,
16061 EmitT32_32(0xeeb40b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16068 EmitA32(0x0eb40b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16078 EmitT32_32(0xeeb50b40U | rd.Encode(22, 12));
16085 EmitA32(0x0eb50b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12));
16090 Delegate(kVcmp, &Assembler::vcmp, cond, dt, rd, operand);
16095 SRegister rd,
16104 EmitT32_32(0xeeb40ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16111 EmitA32(0x0eb40ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16121 EmitT32_32(0xeeb50ac0U | rd.Encode(22, 12));
16128 EmitA32(0x0eb50ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12));
16133 Delegate(kVcmpe, &Assembler::vcmpe, cond, dt, rd, operand);
16138 DRegister rd,
16147 EmitT32_32(0xeeb40bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16154 EmitA32(0x0eb40bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16164 EmitT32_32(0xeeb50bc0U | rd.Encode(22, 12));
16171 EmitA32(0x0eb50bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12));
16176 Delegate(kVcmpe, &Assembler::vcmpe, cond, dt, rd, operand);
16179 void Assembler::vcnt(Condition cond, DataType dt, DRegister rd, DRegister rm) {
16186 EmitT32_32(0xffb00500U | rd.Encode(22, 12) | rm.Encode(5, 0));
16195 EmitA32(0xf3b00500U | rd.Encode(22, 12) | rm.Encode(5, 0));
16200 Delegate(kVcnt, &Assembler::vcnt, cond, dt, rd, rm);
16203 void Assembler::vcnt(Condition cond, DataType dt, QRegister rd, QRegister rm) {
16210 EmitT32_32(0xffb00540U | rd.Encode(22, 12) | rm.Encode(5, 0));
16219 EmitA32(0xf3b00540U | rd.Encode(22, 12) | rm.Encode(5, 0));
16224 Delegate(kVcnt, &Assembler::vcnt, cond, dt, rd, rm);
16228 Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
16235 EmitT32_32(0xeeb70ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16242 rd.Encode(22, 12) | rm.Encode(5, 0));
16249 EmitA32(0x0eb70ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16256 (encoded_dt.GetEncodingValue() << 7) | rd.Encode(22, 12) |
16261 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16265 Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
16271 EmitT32_32(0xeeb70bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16277 EmitT32_32(0xeebc0bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16283 EmitT32_32(0xeebd0bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16290 EmitA32(0x0eb70bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16296 EmitA32(0x0ebc0bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16302 EmitA32(0x0ebd0bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16307 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16313 DRegister rd,
16328 rd.Encode(22, 12) | rm.Encode(5, 0) | (fbits_ << 16));
16334 if (dt1.Is(F64) && encoded_dt_2.IsValid() && rd.Is(rm) &&
16344 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16350 if (encoded_dt_3.IsValid() && dt2.Is(F64) && rd.Is(rm) &&
16360 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16372 rd.Encode(22, 12) | rm.Encode(5, 0) | (fbits_ << 16));
16377 if (dt1.Is(F64) && encoded_dt_2.IsValid() && rd.Is(rm) &&
16389 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16394 if (encoded_dt_3.IsValid() && dt2.Is(F64) && rd.Is(rm) &&
16406 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16411 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm, fbits);
16417 QRegister rd,
16430 rd.Encode(22, 12) | rm.Encode(5, 0) | (fbits_ << 16));
16442 rd.Encode(22, 12) | rm.Encode(5, 0) | (fbits_ << 16));
16447 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm, fbits);
16453 SRegister rd,
16462 if (dt1.Is(F32) && encoded_dt.IsValid() && rd.Is(rm) &&
16472 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16478 if (encoded_dt_2.IsValid() && dt2.Is(F32) && rd.Is(rm) &&
16488 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16495 if (dt1.Is(F32) && encoded_dt.IsValid() && rd.Is(rm) &&
16507 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16512 if (encoded_dt_2.IsValid() && dt2.Is(F32) && rd.Is(rm) &&
16524 rd.Encode(22, 12) | ((fbits_ & 0x1) << 5) |
16529 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm, fbits);
16533 Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
16542 rd.Encode(22, 12) | rm.Encode(5, 0));
16552 rd.Encode(22, 12) | rm.Encode(5, 0));
16557 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16561 Condition cond, DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
16570 rd.Encode(22, 12) | rm.Encode(5, 0));
16580 rd.Encode(22, 12) | rm.Encode(5, 0));
16585 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16589 Condition cond, DataType dt1, DataType dt2, DRegister rd, QRegister rm) {
16596 EmitT32_32(0xffb60600U | rd.Encode(22, 12) | rm.Encode(5, 0));
16605 EmitA32(0xf3b60600U | rd.Encode(22, 12) | rm.Encode(5, 0));
16610 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16614 Condition cond, DataType dt1, DataType dt2, QRegister rd, DRegister rm) {
16621 EmitT32_32(0xffb60700U | rd.Encode(22, 12) | rm.Encode(5, 0));
16630 EmitA32(0xf3b60700U | rd.Encode(22, 12) | rm.Encode(5, 0));
16635 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16639 Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
16646 EmitT32_32(0xeebc0ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16652 EmitT32_32(0xeebd0ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
16659 rd.Encode(22, 12) | rm.Encode(5, 0));
16666 EmitA32(0x0ebc0ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16672 EmitA32(0x0ebd0ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16679 (encoded_dt.GetEncodingValue() << 7) | rd.Encode(22, 12) |
16684 Delegate(kVcvt, &Assembler::vcvt, cond, dt1, dt2, rd, rm);
16687 void Assembler::vcvta(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
16695 rd.Encode(22, 12) | rm.Encode(5, 0));
16703 rd.Encode(22, 12) | rm.Encode(5, 0));
16707 Delegate(kVcvta, &Assembler::vcvta, dt1, dt2, rd, rm);
16710 void Assembler::vcvta(DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
16718 rd.Encode(22, 12) | rm.Encode(5, 0));
16726 rd.Encode(22, 12) | rm.Encode(5, 0));
16730 Delegate(kVcvta, &Assembler::vcvta, dt1, dt2, rd, rm);
16733 void Assembler::vcvta(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
16741 rd.Encode(22, 12) | rm.Encode(5, 0));
16749 rd.Encode(22, 12) | rm.Encode(5, 0));
16753 Delegate(kVcvta, &Assembler::vcvta, dt1, dt2, rd, rm);
16756 void Assembler::vcvta(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
16764 rd.Encode(22, 12) | rm.Encode(5, 0));
16772 rd.Encode(22, 12) | rm.Encode(5, 0));
16776 Delegate(kVcvta, &Assembler::vcvta, dt1, dt2, rd, rm);
16780 Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
16786 EmitT32_32(0xeeb20a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16792 EmitT32_32(0xeeb30a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16799 EmitA32(0x0eb20a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16805 EmitA32(0x0eb30a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16810 Delegate(kVcvtb, &Assembler::vcvtb, cond, dt1, dt2, rd, rm);
16814 Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
16820 EmitT32_32(0xeeb20b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16827 EmitA32(0x0eb20b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16832 Delegate(kVcvtb, &Assembler::vcvtb, cond, dt1, dt2, rd, rm);
16836 Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
16842 EmitT32_32(0xeeb30b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
16849 EmitA32(0x0eb30b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
16854 Delegate(kVcvtb, &Assembler::vcvtb, cond, dt1, dt2, rd, rm);
16857 void Assembler::vcvtm(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
16865 rd.Encode(22, 12) | rm.Encode(5, 0));
16873 rd.Encode(22, 12) | rm.Encode(5, 0));
16877 Delegate(kVcvtm, &Assembler::vcvtm, dt1, dt2, rd, rm);
16880 void Assembler::vcvtm(DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
16888 rd.Encode(22, 12) | rm.Encode(5, 0));
16896 rd.Encode(22, 12) | rm.Encode(5, 0));
16900 Delegate(kVcvtm, &Assembler::vcvtm, dt1, dt2, rd, rm);
16903 void Assembler::vcvtm(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
16911 rd.Encode(22, 12) | rm.Encode(5, 0));
16919 rd.Encode(22, 12) | rm.Encode(5, 0));
16923 Delegate(kVcvtm, &Assembler::vcvtm, dt1, dt2, rd, rm);
16926 void Assembler::vcvtm(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
16934 rd.Encode(22, 12) | rm.Encode(5, 0));
16942 rd.Encode(22, 12) | rm.Encode(5, 0));
16946 Delegate(kVcvtm, &Assembler::vcvtm, dt1, dt2, rd, rm);
16949 void Assembler::vcvtn(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
16957 rd.Encode(22, 12) | rm.Encode(5, 0));
16965 rd.Encode(22, 12) | rm.Encode(5, 0));
16969 Delegate(kVcvtn, &Assembler::vcvtn, dt1, dt2, rd, rm);
16972 void Assembler::vcvtn(DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
16980 rd.Encode(22, 12) | rm.Encode(5, 0));
16988 rd.Encode(22, 12) | rm.Encode(5, 0));
16992 Delegate(kVcvtn, &Assembler::vcvtn, dt1, dt2, rd, rm);
16995 void Assembler::vcvtn(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
17003 rd.Encode(22, 12) | rm.Encode(5, 0));
17011 rd.Encode(22, 12) | rm.Encode(5, 0));
17015 Delegate(kVcvtn, &Assembler::vcvtn, dt1, dt2, rd, rm);
17018 void Assembler::vcvtn(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
17026 rd.Encode(22, 12) | rm.Encode(5, 0));
17034 rd.Encode(22, 12) | rm.Encode(5, 0));
17038 Delegate(kVcvtn, &Assembler::vcvtn, dt1, dt2, rd, rm);
17041 void Assembler::vcvtp(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
17049 rd.Encode(22, 12) | rm.Encode(5, 0));
17057 rd.Encode(22, 12) | rm.Encode(5, 0));
17061 Delegate(kVcvtp, &Assembler::vcvtp, dt1, dt2, rd, rm);
17064 void Assembler::vcvtp(DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
17072 rd.Encode(22, 12) | rm.Encode(5, 0));
17080 rd.Encode(22, 12) | rm.Encode(5, 0));
17084 Delegate(kVcvtp, &Assembler::vcvtp, dt1, dt2, rd, rm);
17087 void Assembler::vcvtp(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
17095 rd.Encode(22, 12) | rm.Encode(5, 0));
17103 rd.Encode(22, 12) | rm.Encode(5, 0));
17107 Delegate(kVcvtp, &Assembler::vcvtp, dt1, dt2, rd, rm);
17110 void Assembler::vcvtp(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
17118 rd.Encode(22, 12) | rm.Encode(5, 0));
17126 rd.Encode(22, 12) | rm.Encode(5, 0));
17130 Delegate(kVcvtp, &Assembler::vcvtp, dt1, dt2, rd, rm);
17134 Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
17140 EmitT32_32(0xeebc0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
17146 EmitT32_32(0xeebd0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
17153 EmitA32(0x0ebc0a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17159 EmitA32(0x0ebd0a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17164 Delegate(kVcvtr, &Assembler::vcvtr, cond, dt1, dt2, rd, rm);
17168 Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
17174 EmitT32_32(0xeebc0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
17180 EmitT32_32(0xeebd0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
17187 EmitA32(0x0ebc0b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17193 EmitA32(0x0ebd0b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17198 Delegate(kVcvtr, &Assembler::vcvtr, cond, dt1, dt2, rd, rm);
17202 Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
17208 EmitT32_32(0xeeb20ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
17214 EmitT32_32(0xeeb30ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
17221 EmitA32(0x0eb20ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17227 EmitA32(0x0eb30ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17232 Delegate(kVcvtt, &Assembler::vcvtt, cond, dt1, dt2, rd, rm);
17236 Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
17242 EmitT32_32(0xeeb20bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
17249 EmitA32(0x0eb20bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17254 Delegate(kVcvtt, &Assembler::vcvtt, cond, dt1, dt2, rd, rm);
17258 Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
17264 EmitT32_32(0xeeb30bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
17271 EmitA32(0x0eb30bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17276 Delegate(kVcvtt, &Assembler::vcvtt, cond, dt1, dt2, rd, rm);
17280 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
17286 EmitT32_32(0xee800a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17294 EmitA32(0x0e800a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17299 Delegate(kVdiv, &Assembler::vdiv, cond, dt, rd, rn, rm);
17303 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17309 EmitT32_32(0xee800b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17317 EmitA32(0x0e800b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17322 Delegate(kVdiv, &Assembler::vdiv, cond, dt, rd, rn, rm);
17325 void Assembler::vdup(Condition cond, DataType dt, QRegister rd, Register rt) {
17335 rd.Encode(7, 16) | (rt.GetCode() << 12));
17348 rd.Encode(7, 16) | (rt.GetCode() << 12));
17353 Delegate(kVdup, &Assembler::vdup, cond, dt, rd, rt);
17356 void Assembler::vdup(Condition cond, DataType dt, DRegister rd, Register rt) {
17366 rd.Encode(7, 16) | (rt.GetCode() << 12));
17379 rd.Encode(7, 16) | (rt.GetCode() << 12));
17384 Delegate(kVdup, &Assembler::vdup, cond, dt, rd, rt);
17389 DRegister rd,
17399 rd.Encode(22, 12) | rm.Encode(5, 0));
17409 rd.Encode(22, 12) | rm.Encode(5, 0));
17414 Delegate(kVdup, &Assembler::vdup, cond, dt, rd, rm);
17419 QRegister rd,
17429 rd.Encode(22, 12) | rm.Encode(5, 0));
17439 rd.Encode(22, 12) | rm.Encode(5, 0));
17444 Delegate(kVdup, &Assembler::vdup, cond, dt, rd, rm);
17448 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17455 EmitT32_32(0xff000110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17463 EmitA32(0xf3000110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17468 Delegate(kVeor, &Assembler::veor, cond, dt, rd, rn, rm);
17472 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
17479 EmitT32_32(0xff000150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17487 EmitA32(0xf3000150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17492 Delegate(kVeor, &Assembler::veor, cond, dt, rd, rn, rm);
17497 DRegister rd,
17510 EmitT32_32(0xefb00000U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17521 EmitT32_32(0xefb00000U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17531 EmitA32(0xf2b00000U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17541 EmitA32(0xf2b00000U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17549 Delegate(kVext, &Assembler::vext, cond, dt, rd, rn, rm, operand);
17554 QRegister rd,
17567 EmitT32_32(0xefb00040U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17578 EmitT32_32(0xefb00040U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17588 EmitA32(0xf2b00040U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17598 EmitA32(0xf2b00040U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17606 Delegate(kVext, &Assembler::vext, cond, dt, rd, rn, rm, operand);
17610 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17617 EmitT32_32(0xef000c10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17625 EmitT32_32(0xeea00b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17634 EmitA32(0xf2000c10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17641 EmitA32(0x0ea00b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17646 Delegate(kVfma, &Assembler::vfma, cond, dt, rd, rn, rm);
17650 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
17657 EmitT32_32(0xef000c50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17667 EmitA32(0xf2000c50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17673 Delegate(kVfma, &Assembler::vfma, cond, dt, rd, rn, rm);
17677 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
17683 EmitT32_32(0xeea00a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17691 EmitA32(0x0ea00a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17696 Delegate(kVfma, &Assembler::vfma, cond, dt, rd, rn, rm);
17700 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17707 EmitT32_32(0xef200c10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17715 EmitT32_32(0xeea00b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17724 EmitA32(0xf2200c10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17731 EmitA32(0x0ea00b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17736 Delegate(kVfms, &Assembler::vfms, cond, dt, rd, rn, rm);
17740 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
17747 EmitT32_32(0xef200c50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17757 EmitA32(0xf2200c50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17763 Delegate(kVfms, &Assembler::vfms, cond, dt, rd, rn, rm);
17767 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
17773 EmitT32_32(0xeea00a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17781 EmitA32(0x0ea00a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17786 Delegate(kVfms, &Assembler::vfms, cond, dt, rd, rn, rm);
17790 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
17796 EmitT32_32(0xee900a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17804 EmitA32(0x0e900a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17809 Delegate(kVfnma, &Assembler::vfnma, cond, dt, rd, rn, rm);
17813 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17819 EmitT32_32(0xee900b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17827 EmitA32(0x0e900b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17832 Delegate(kVfnma, &Assembler::vfnma, cond, dt, rd, rn, rm);
17836 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
17842 EmitT32_32(0xee900a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17850 EmitA32(0x0e900a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17855 Delegate(kVfnms, &Assembler::vfnms, cond, dt, rd, rn, rm);
17859 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17865 EmitT32_32(0xee900b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
17873 EmitA32(0x0e900b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
17878 Delegate(kVfnms, &Assembler::vfnms, cond, dt, rd, rn, rm);
17882 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17892 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17903 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17908 Delegate(kVhadd, &Assembler::vhadd, cond, dt, rd, rn, rm);
17912 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
17922 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17933 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17938 Delegate(kVhadd, &Assembler::vhadd, cond, dt, rd, rn, rm);
17942 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
17952 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17963 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17968 Delegate(kVhsub, &Assembler::vhsub, cond, dt, rd, rn, rm);
17972 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
17982 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17993 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
17998 Delegate(kVhsub, &Assembler::vhsub, cond, dt, rd, rn, rm);
19609 DRegister rd,
19640 EmitT32_32(Link(0xed1f0b00U | rd.Encode(22, 12),
19671 Link(0x0d1f0b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12),
19678 Delegate(kVldr, &Assembler::vldr, cond, dt, rd, location);
19683 DRegister rd,
19688 USE(rd);
19707 DRegister rd,
19720 EmitT32_32(0xed1f0b00U | rd.Encode(22, 12) | offset_ | (sign << 23));
19730 EmitT32_32(0xed100b00U | rd.Encode(22, 12) | (rn.GetCode() << 16) |
19742 EmitA32(0x0d1f0b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
19752 EmitA32(0x0d100b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
19758 Delegate(kVldr, &Assembler::vldr, cond, dt, rd, operand);
19763 SRegister rd,
19794 EmitT32_32(Link(0xed1f0a00U | rd.Encode(22, 12),
19825 Link(0x0d1f0a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12),
19832 Delegate(kVldr, &Assembler::vldr, cond, dt, rd, location);
19837 SRegister rd,
19842 USE(rd);
19861 SRegister rd,
19874 EmitT32_32(0xed1f0a00U | rd.Encode(22, 12) | offset_ | (sign << 23));
19884 EmitT32_32(0xed100a00U | rd.Encode(22, 12) | (rn.GetCode() << 16) |
19896 EmitA32(0x0d1f0a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
19906 EmitA32(0x0d100a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
19912 Delegate(kVldr, &Assembler::vldr, cond, dt, rd, operand);
19916 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
19924 EmitT32_32(0xef000f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
19935 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
19944 EmitA32(0xf2000f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
19954 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
19959 Delegate(kVmax, &Assembler::vmax, cond, dt, rd, rn, rm);
19963 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
19971 EmitT32_32(0xef000f40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
19982 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
19991 EmitA32(0xf2000f40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20001 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20006 Delegate(kVmax, &Assembler::vmax, cond, dt, rd, rn, rm);
20009 void Assembler::vmaxnm(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
20015 EmitT32_32(0xff000f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20022 EmitT32_32(0xfe800b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20030 EmitA32(0xf3000f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20036 EmitA32(0xfe800b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20041 Delegate(kVmaxnm, &Assembler::vmaxnm, dt, rd, rn, rm);
20044 void Assembler::vmaxnm(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
20050 EmitT32_32(0xff000f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20058 EmitA32(0xf3000f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20063 Delegate(kVmaxnm, &Assembler::vmaxnm, dt, rd, rn, rm);
20066 void Assembler::vmaxnm(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
20072 EmitT32_32(0xfe800a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20080 EmitA32(0xfe800a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20085 Delegate(kVmaxnm, &Assembler::vmaxnm, dt, rd, rn, rm);
20089 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
20097 EmitT32_32(0xef200f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20108 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20117 EmitA32(0xf2200f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20127 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20132 Delegate(kVmin, &Assembler::vmin, cond, dt, rd, rn, rm);
20136 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
20144 EmitT32_32(0xef200f40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20155 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20164 EmitA32(0xf2200f40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20174 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20179 Delegate(kVmin, &Assembler::vmin, cond, dt, rd, rn, rm);
20182 void Assembler::vminnm(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
20188 EmitT32_32(0xff200f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20195 EmitT32_32(0xfe800b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20203 EmitA32(0xf3200f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20209 EmitA32(0xfe800b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20214 Delegate(kVminnm, &Assembler::vminnm, dt, rd, rn, rm);
20217 void Assembler::vminnm(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
20223 EmitT32_32(0xff200f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20231 EmitA32(0xf3200f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20236 Delegate(kVminnm, &Assembler::vminnm, dt, rd, rn, rm);
20239 void Assembler::vminnm(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
20245 EmitT32_32(0xfe800a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20253 EmitA32(0xfe800a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20258 Delegate(kVminnm, &Assembler::vminnm, dt, rd, rn, rm);
20262 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
20274 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20288 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20294 Delegate(kVmla, &Assembler::vmla, cond, dt, rd, rn, rm);
20298 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
20310 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20324 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20330 Delegate(kVmla, &Assembler::vmla, cond, dt, rd, rn, rm);
20334 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
20342 EmitT32_32(0xef000d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20350 EmitT32_32(0xee000b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20359 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20368 EmitA32(0xf2000d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20375 EmitA32(0x0e000b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
20383 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20388 Delegate(kVmla, &Assembler::vmla, cond, dt, rd, rn, rm);
20392 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
20400 EmitT32_32(0xef000d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20410 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20419 EmitA32(0xf2000d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20428 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20433 Delegate(kVmla, &Assembler::vmla, cond, dt, rd, rn, rm);
20437 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
20443 EmitT32_32(0xee000a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20451 EmitA32(0x0e000a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
20456 Delegate(kVmla, &Assembler::vmla, cond, dt, rd, rn, rm);
20460 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
20472 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20486 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20492 Delegate(kVmlal, &Assembler::vmlal, cond, dt, rd, rn, rm);
20496 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
20505 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20516 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20522 Delegate(kVmlal, &Assembler::vmlal, cond, dt, rd, rn, rm);
20526 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
20538 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20552 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20558 Delegate(kVmls, &Assembler::vmls, cond, dt, rd, rn, rm);
20562 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
20574 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20588 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20594 Delegate(kVmls, &Assembler::vmls, cond, dt, rd, rn, rm);
20598 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
20606 EmitT32_32(0xef200d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20614 EmitT32_32(0xee000b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20623 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20632 EmitA32(0xf2200d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20639 EmitA32(0x0e000b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
20647 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20652 Delegate(kVmls, &Assembler::vmls, cond, dt, rd, rn, rm);
20656 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
20664 EmitT32_32(0xef200d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20674 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20683 EmitA32(0xf2200d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20692 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
20697 Delegate(kVmls, &Assembler::vmls, cond, dt, rd, rn, rm);
20701 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
20707 EmitT32_32(0xee000a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
20715 EmitA32(0x0e000a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
20720 Delegate(kVmls, &Assembler::vmls, cond, dt, rd, rn, rm);
20724 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
20736 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20750 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20756 Delegate(kVmlsl, &Assembler::vmlsl, cond, dt, rd, rn, rm);
20760 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
20769 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20780 (encoded_dt.GetEncodingValue() << 20) | rd.Encode(22, 12) |
20786 Delegate(kVmlsl, &Assembler::vmlsl, cond, dt, rd, rn, rm);
20931 DRegisterLane rd,
20935 Dt_opc1_opc2_1 encoded_dt(dt, rd);
20941 rd.Encode(7, 16) | (rt.GetCode() << 12));
20951 ((encoded_dt.GetEncodingValue() & 0xc) << 19) | rd.Encode(7, 16) |
20956 Delegate(kVmov, &Assembler::vmov, cond, dt, rd, rt);
20961 DRegister rd,
20974 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
20987 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21000 EmitT32_32(0xeeb00b00U | rd.Encode(22, 12) |
21009 EmitA32(0x0eb00b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21021 EmitT32_32(0xeeb00b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
21028 EmitT32_32(0xef200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
21037 EmitA32(0x0eb00b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21044 EmitA32(0xf2200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
21051 Delegate(kVmov, &Assembler::vmov, cond, dt, rd, operand);
21056 QRegister rd,
21069 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21082 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21096 EmitT32_32(0xef200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
21106 EmitA32(0xf2200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
21113 Delegate(kVmov, &Assembler::vmov, cond, dt, rd, operand);
21118 SRegister rd,
21127 EmitT32_32(0xeeb00a00U | rd.Encode(22, 12) |
21136 EmitA32(0x0eb00a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21148 EmitT32_32(0xeeb00a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
21155 EmitA32(0x0eb00a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21161 Delegate(kVmov, &Assembler::vmov, cond, dt, rd, operand);
21196 void Assembler::vmovl(Condition cond, DataType dt, QRegister rd, DRegister rm) {
21206 rd.Encode(22, 12) | rm.Encode(5, 0));
21217 rd.Encode(22, 12) | rm.Encode(5, 0));
21222 Delegate(kVmovl, &Assembler::vmovl, cond, dt, rd, rm);
21225 void Assembler::vmovn(Condition cond, DataType dt, DRegister rd, QRegister rm) {
21234 rd.Encode(22, 12) | rm.Encode(5, 0));
21244 rd.Encode(22, 12) | rm.Encode(5, 0));
21249 Delegate(kVmovn, &Assembler::vmovn, cond, dt, rd, rm);
21297 DRegister rd,
21317 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21336 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21342 Delegate(kVmul, &Assembler::vmul, cond, dt, rd, rn, dm, index);
21347 QRegister rd,
21367 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21386 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21392 Delegate(kVmul, &Assembler::vmul, cond, dt, rd, rn, dm, index);
21396 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
21404 EmitT32_32(0xff000d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21412 EmitT32_32(0xee200b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21422 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21431 EmitA32(0xf3000d10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21438 EmitA32(0x0e200b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21447 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21452 Delegate(kVmul, &Assembler::vmul, cond, dt, rd, rn, rm);
21456 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
21464 EmitT32_32(0xff000d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21475 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21484 EmitA32(0xf3000d50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21494 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21499 Delegate(kVmul, &Assembler::vmul, cond, dt, rd, rn, rm);
21503 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
21509 EmitT32_32(0xee200a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21517 EmitA32(0x0e200a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21522 Delegate(kVmul, &Assembler::vmul, cond, dt, rd, rn, rm);
21527 QRegister rd,
21548 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21568 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
21574 Delegate(kVmull, &Assembler::vmull, cond, dt, rd, rn, dm, index);
21578 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
21589 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21601 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
21606 Delegate(kVmull, &Assembler::vmull, cond, dt, rd, rn, rm);
21611 DRegister rd,
21622 rd.Encode(22, 12) |
21635 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21649 EmitT32_32(0xffb00580U | rd.Encode(22, 12) | rm.Encode(5, 0));
21656 EmitA32(0xf3b00580U | rd.Encode(22, 12) | rm.Encode(5, 0));
21661 Delegate(kVmvn, &Assembler::vmvn, cond, dt, rd, operand);
21666 QRegister rd,
21677 rd.Encode(22, 12) |
21690 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21704 EmitT32_32(0xffb005c0U | rd.Encode(22, 12) | rm.Encode(5, 0));
21711 EmitA32(0xf3b005c0U | rd.Encode(22, 12) | rm.Encode(5, 0));
21716 Delegate(kVmvn, &Assembler::vmvn, cond, dt, rd, operand);
21719 void Assembler::vneg(Condition cond, DataType dt, DRegister rd, DRegister rm) {
21729 rd.Encode(22, 12) | rm.Encode(5, 0));
21736 EmitT32_32(0xeeb10b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
21746 rd.Encode(22, 12) | rm.Encode(5, 0));
21752 EmitA32(0x0eb10b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21757 Delegate(kVneg, &Assembler::vneg, cond, dt, rd, rm);
21760 void Assembler::vneg(Condition cond, DataType dt, QRegister rd, QRegister rm) {
21770 rd.Encode(22, 12) | rm.Encode(5, 0));
21781 rd.Encode(22, 12) | rm.Encode(5, 0));
21786 Delegate(kVneg, &Assembler::vneg, cond, dt, rd, rm);
21789 void Assembler::vneg(Condition cond, DataType dt, SRegister rd, SRegister rm) {
21795 EmitT32_32(0xeeb10a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
21802 EmitA32(0x0eb10a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21807 Delegate(kVneg, &Assembler::vneg, cond, dt, rd, rm);
21811 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
21817 EmitT32_32(0xee100a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21825 EmitA32(0x0e100a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21830 Delegate(kVnmla, &Assembler::vnmla, cond, dt, rd, rn, rm);
21834 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
21840 EmitT32_32(0xee100b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21848 EmitA32(0x0e100b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21853 Delegate(kVnmla, &Assembler::vnmla, cond, dt, rd, rn, rm);
21857 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
21863 EmitT32_32(0xee100a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21871 EmitA32(0x0e100a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21876 Delegate(kVnmls, &Assembler::vnmls, cond, dt, rd, rn, rm);
21880 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
21886 EmitT32_32(0xee100b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21894 EmitA32(0x0e100b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21899 Delegate(kVnmls, &Assembler::vnmls, cond, dt, rd, rn, rm);
21903 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
21909 EmitT32_32(0xee200a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21917 EmitA32(0x0e200a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21922 Delegate(kVnmul, &Assembler::vnmul, cond, dt, rd, rn, rm);
21926 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
21932 EmitT32_32(0xee200b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21940 EmitA32(0x0e200b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
21945 Delegate(kVnmul, &Assembler::vnmul, cond, dt, rd, rn, rm);
21950 DRegister rd,
21959 if (encoded_dt.IsValid() && rd.Is(rn)) {
21962 rd.Encode(22, 12) |
21972 if (encoded_dt.IsValid() && rd.Is(rn)) {
21975 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
21989 EmitT32_32(0xef300110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
21997 EmitA32(0xf2300110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22003 Delegate(kVorn, &Assembler::vorn, cond, dt, rd, rn, operand);
22008 QRegister rd,
22017 if (encoded_dt.IsValid() && rd.Is(rn)) {
22020 rd.Encode(22, 12) |
22030 if (encoded_dt.IsValid() && rd.Is(rn)) {
22033 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
22047 EmitT32_32(0xef300150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22055 EmitA32(0xf2300150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22061 Delegate(kVorn, &Assembler::vorn, cond, dt, rd, rn, operand);
22066 DRegister rd,
22077 EmitT32_32(0xef200110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22085 EmitA32(0xf2200110U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22095 if (encoded_dt.IsValid() && rd.Is(rn)) {
22098 rd.Encode(22, 12) |
22108 if (encoded_dt.IsValid() && rd.Is(rn)) {
22111 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
22119 Delegate(kVorr, &Assembler::vorr, cond, dt, rd, rn, operand);
22124 QRegister rd,
22135 EmitT32_32(0xef200150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22143 EmitA32(0xf2200150U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22153 if (encoded_dt.IsValid() && rd.Is(rn)) {
22156 rd.Encode(22, 12) |
22166 if (encoded_dt.IsValid() && rd.Is(rn)) {
22169 rd.Encode(22, 12) | (encoded_dt.GetEncodedImmediate() & 0xf) |
22177 Delegate(kVorr, &Assembler::vorr, cond, dt, rd, rn, operand);
22182 DRegister rd,
22193 rd.Encode(22, 12) | rm.Encode(5, 0));
22204 rd.Encode(22, 12) | rm.Encode(5, 0));
22209 Delegate(kVpadal, &Assembler::vpadal, cond, dt, rd, rm);
22214 QRegister rd,
22225 rd.Encode(22, 12) | rm.Encode(5, 0));
22236 rd.Encode(22, 12) | rm.Encode(5, 0));
22241 Delegate(kVpadal, &Assembler::vpadal, cond, dt, rd, rm);
22245 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
22253 EmitT32_32(0xff000d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22263 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22272 EmitA32(0xf3000d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22281 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22286 Delegate(kVpadd, &Assembler::vpadd, cond, dt, rd, rn, rm);
22291 DRegister rd,
22302 rd.Encode(22, 12) | rm.Encode(5, 0));
22313 rd.Encode(22, 12) | rm.Encode(5, 0));
22318 Delegate(kVpaddl, &Assembler::vpaddl, cond, dt, rd, rm);
22323 QRegister rd,
22334 rd.Encode(22, 12) | rm.Encode(5, 0));
22345 rd.Encode(22, 12) | rm.Encode(5, 0));
22350 Delegate(kVpaddl, &Assembler::vpaddl, cond, dt, rd, rm);
22354 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
22362 EmitT32_32(0xff000f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22373 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22382 EmitA32(0xf3000f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22392 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22397 Delegate(kVpmax, &Assembler::vpmax, cond, dt, rd, rn, rm);
22401 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
22409 EmitT32_32(0xff200f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22420 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22429 EmitA32(0xf3200f00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
22439 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22444 Delegate(kVpmin, &Assembler::vpmin, cond, dt, rd, rn, rm);
22549 void Assembler::vqabs(Condition cond, DataType dt, DRegister rd, DRegister rm) {
22558 rd.Encode(22, 12) | rm.Encode(5, 0));
22568 rd.Encode(22, 12) | rm.Encode(5, 0));
22573 Delegate(kVqabs, &Assembler::vqabs, cond, dt, rd, rm);
22576 void Assembler::vqabs(Condition cond, DataType dt, QRegister rd, QRegister rm) {
22585 rd.Encode(22, 12) | rm.Encode(5, 0));
22595 rd.Encode(22, 12) | rm.Encode(5, 0));
22600 Delegate(kVqabs, &Assembler::vqabs, cond, dt, rd, rm);
22604 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
22614 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22625 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22630 Delegate(kVqadd, &Assembler::vqadd, cond, dt, rd, rn, rm);
22634 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
22644 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22655 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22660 Delegate(kVqadd, &Assembler::vqadd, cond, dt, rd, rn, rm);
22664 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
22673 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22683 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22688 Delegate(kVqdmlal, &Assembler::vqdmlal, cond, dt, rd, rn, rm);
22693 QRegister rd,
22713 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
22732 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
22738 Delegate(kVqdmlal, &Assembler::vqdmlal, cond, dt, rd, rn, dm, index);
22742 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
22751 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22761 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22766 Delegate(kVqdmlsl, &Assembler::vqdmlsl, cond, dt, rd, rn, rm);
22771 QRegister rd,
22791 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
22810 rd.Encode(22, 12) | rn.Encode(7, 16) | (mvm & 0xf) |
22816 Delegate(kVqdmlsl, &Assembler::vqdmlsl, cond, dt, rd, rn, dm, index);
22820 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
22829 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22839 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22844 Delegate(kVqdmulh, &Assembler::vqdmulh, cond, dt, rd, rn, rm);
22848 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
22857 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22867 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22872 Delegate(kVqdmulh, &Assembler::vqdmulh, cond, dt, rd, rn, rm);
22876 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
22889 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
22903 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
22908 Delegate(kVqdmulh, &Assembler::vqdmulh, cond, dt, rd, rn, rm);
22912 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
22925 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
22939 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
22944 Delegate(kVqdmulh, &Assembler::vqdmulh, cond, dt, rd, rn, rm);
22948 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
22957 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22967 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
22972 Delegate(kVqdmull, &Assembler::vqdmull, cond, dt, rd, rn, rm);
22976 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
22989 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23003 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23008 Delegate(kVqdmull, &Assembler::vqdmull, cond, dt, rd, rn, rm);
23013 DRegister rd,
23024 rd.Encode(22, 12) | rm.Encode(5, 0));
23035 rd.Encode(22, 12) | rm.Encode(5, 0));
23040 Delegate(kVqmovn, &Assembler::vqmovn, cond, dt, rd, rm);
23045 DRegister rd,
23055 rd.Encode(22, 12) | rm.Encode(5, 0));
23065 rd.Encode(22, 12) | rm.Encode(5, 0));
23070 Delegate(kVqmovun, &Assembler::vqmovun, cond, dt, rd, rm);
23073 void Assembler::vqneg(Condition cond, DataType dt, DRegister rd, DRegister rm) {
23082 rd.Encode(22, 12) | rm.Encode(5, 0));
23092 rd.Encode(22, 12) | rm.Encode(5, 0));
23097 Delegate(kVqneg, &Assembler::vqneg, cond, dt, rd, rm);
23100 void Assembler::vqneg(Condition cond, DataType dt, QRegister rd, QRegister rm) {
23109 rd.Encode(22, 12) | rm.Encode(5, 0));
23119 rd.Encode(22, 12) | rm.Encode(5, 0));
23124 Delegate(kVqneg, &Assembler::vqneg, cond, dt, rd, rm);
23128 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
23137 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23147 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23152 Delegate(kVqrdmulh, &Assembler::vqrdmulh, cond, dt, rd, rn, rm);
23156 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
23165 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23175 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23180 Delegate(kVqrdmulh, &Assembler::vqrdmulh, cond, dt, rd, rn, rm);
23184 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
23197 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23211 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23216 Delegate(kVqrdmulh, &Assembler::vqrdmulh, cond, dt, rd, rn, rm);
23220 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
23233 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23247 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.EncodeX(dt, 5, 0));
23252 Delegate(kVqrdmulh, &Assembler::vqrdmulh, cond, dt, rd, rn, rm);
23256 Condition cond, DataType dt, DRegister rd, DRegister rm, DRegister rn) {
23266 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23277 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23282 Delegate(kVqrshl, &Assembler::vqrshl, cond, dt, rd, rm, rn);
23286 Condition cond, DataType dt, QRegister rd, QRegister rm, QRegister rn) {
23296 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23307 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23312 Delegate(kVqrshl, &Assembler::vqrshl, cond, dt, rd, rm, rn);
23317 DRegister rd,
23334 rd.Encode(22, 12) | rm.Encode(5, 0));
23346 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23358 rd.Encode(22, 12) | rm.Encode(5, 0));
23368 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23375 Delegate(kVqrshrn, &Assembler::vqrshrn, cond, dt, rd, rm, operand);
23380 DRegister rd,
23397 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23406 rd.Encode(22, 12) | rm.Encode(5, 0));
23418 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23426 rd.Encode(22, 12) | rm.Encode(5, 0));
23433 Delegate(kVqrshrun, &Assembler::vqrshrun, cond, dt, rd, rm, operand);
23438 DRegister rd,
23453 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23464 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23482 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23495 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23502 Delegate(kVqshl, &Assembler::vqshl, cond, dt, rd, rm, operand);
23507 QRegister rd,
23522 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23533 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
23551 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23564 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23571 Delegate(kVqshl, &Assembler::vqshl, cond, dt, rd, rm, operand);
23576 DRegister rd,
23593 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23606 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23613 Delegate(kVqshlu, &Assembler::vqshlu, cond, dt, rd, rm, operand);
23618 QRegister rd,
23635 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23648 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23655 Delegate(kVqshlu, &Assembler::vqshlu, cond, dt, rd, rm, operand);
23660 DRegister rd,
23677 rd.Encode(22, 12) | rm.Encode(5, 0));
23689 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23701 rd.Encode(22, 12) | rm.Encode(5, 0));
23711 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23718 Delegate(kVqshrn, &Assembler::vqshrn, cond, dt, rd, rm, operand);
23723 DRegister rd,
23740 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23749 rd.Encode(22, 12) | rm.Encode(5, 0));
23761 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
23769 rd.Encode(22, 12) | rm.Encode(5, 0));
23776 Delegate(kVqshrun, &Assembler::vqshrun, cond, dt, rd, rm, operand);
23780 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
23790 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23801 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23806 Delegate(kVqsub, &Assembler::vqsub, cond, dt, rd, rn, rm);
23810 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
23820 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23831 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23836 Delegate(kVqsub, &Assembler::vqsub, cond, dt, rd, rn, rm);
23840 Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm) {
23849 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23859 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
23864 Delegate(kVraddhn, &Assembler::vraddhn, cond, dt, rd, rn, rm);
23869 DRegister rd,
23880 rd.Encode(22, 12) | rm.Encode(5, 0));
23891 rd.Encode(22, 12) | rm.Encode(5, 0));
23896 Delegate(kVrecpe, &Assembler::vrecpe, cond, dt, rd, rm);
23901 QRegister rd,
23912 rd.Encode(22, 12) | rm.Encode(5, 0));
23923 rd.Encode(22, 12) | rm.Encode(5, 0));
23928 Delegate(kVrecpe, &Assembler::vrecpe, cond, dt, rd, rm);
23932 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
23939 EmitT32_32(0xef000f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
23949 EmitA32(0xf2000f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
23955 Delegate(kVrecps, &Assembler::vrecps, cond, dt, rd, rn, rm);
23959 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
23966 EmitT32_32(0xef000f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
23976 EmitA32(0xf2000f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
23982 Delegate(kVrecps, &Assembler::vrecps, cond, dt, rd, rn, rm);
23987 DRegister rd,
23997 rd.Encode(22, 12) | rm.Encode(5, 0));
24007 rd.Encode(22, 12) | rm.Encode(5, 0));
24012 Delegate(kVrev16, &Assembler::vrev16, cond, dt, rd, rm);
24017 QRegister rd,
24027 rd.Encode(22, 12) | rm.Encode(5, 0));
24037 rd.Encode(22, 12) | rm.Encode(5, 0));
24042 Delegate(kVrev16, &Assembler::vrev16, cond, dt, rd, rm);
24047 DRegister rd,
24057 rd.Encode(22, 12) | rm.Encode(5, 0));
24067 rd.Encode(22, 12) | rm.Encode(5, 0));
24072 Delegate(kVrev32, &Assembler::vrev32, cond, dt, rd, rm);
24077 QRegister rd,
24087 rd.Encode(22, 12) | rm.Encode(5, 0));
24097 rd.Encode(22, 12) | rm.Encode(5, 0));
24102 Delegate(kVrev32, &Assembler::vrev32, cond, dt, rd, rm);
24107 DRegister rd,
24117 rd.Encode(22, 12) | rm.Encode(5, 0));
24127 rd.Encode(22, 12) | rm.Encode(5, 0));
24132 Delegate(kVrev64, &Assembler::vrev64, cond, dt, rd, rm);
24137 QRegister rd,
24147 rd.Encode(22, 12) | rm.Encode(5, 0));
24157 rd.Encode(22, 12) | rm.Encode(5, 0));
24162 Delegate(kVrev64, &Assembler::vrev64, cond, dt, rd, rm);
24166 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
24176 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
24187 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
24192 Delegate(kVrhadd, &Assembler::vrhadd, cond, dt, rd, rn, rm);
24196 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
24206 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
24217 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
24222 Delegate(kVrhadd, &Assembler::vrhadd, cond, dt, rd, rn, rm);
24225 void Assembler::vrinta(DataType dt, DRegister rd, DRegister rm) {
24233 rd.Encode(22, 12) | rm.Encode(5, 0));
24239 EmitT32_32(0xfeb80b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24247 rd.Encode(22, 12) | rm.Encode(5, 0));
24252 EmitA32(0xfeb80b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24256 Delegate(kVrinta, &Assembler::vrinta, dt, rd, rm);
24259 void Assembler::vrinta(DataType dt, QRegister rd, QRegister rm) {
24267 rd.Encode(22, 12) | rm.Encode(5, 0));
24275 rd.Encode(22, 12) | rm.Encode(5, 0));
24279 Delegate(kVrinta, &Assembler::vrinta, dt, rd, rm);
24282 void Assembler::vrinta(DataType dt, SRegister rd, SRegister rm) {
24288 EmitT32_32(0xfeb80a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24295 EmitA32(0xfeb80a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24299 Delegate(kVrinta, &Assembler::vrinta, dt, rd, rm);
24302 void Assembler::vrintm(DataType dt, DRegister rd, DRegister rm) {
24310 rd.Encode(22, 12) | rm.Encode(5, 0));
24316 EmitT32_32(0xfebb0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24324 rd.Encode(22, 12) | rm.Encode(5, 0));
24329 EmitA32(0xfebb0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24333 Delegate(kVrintm, &Assembler::vrintm, dt, rd, rm);
24336 void Assembler::vrintm(DataType dt, QRegister rd, QRegister rm) {
24344 rd.Encode(22, 12) | rm.Encode(5, 0));
24352 rd.Encode(22, 12) | rm.Encode(5, 0));
24356 Delegate(kVrintm, &Assembler::vrintm, dt, rd, rm);
24359 void Assembler::vrintm(DataType dt, SRegister rd, SRegister rm) {
24365 EmitT32_32(0xfebb0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24372 EmitA32(0xfebb0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24376 Delegate(kVrintm, &Assembler::vrintm, dt, rd, rm);
24379 void Assembler::vrintn(DataType dt, DRegister rd, DRegister rm) {
24387 rd.Encode(22, 12) | rm.Encode(5, 0));
24393 EmitT32_32(0xfeb90b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24401 rd.Encode(22, 12) | rm.Encode(5, 0));
24406 EmitA32(0xfeb90b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24410 Delegate(kVrintn, &Assembler::vrintn, dt, rd, rm);
24413 void Assembler::vrintn(DataType dt, QRegister rd, QRegister rm) {
24421 rd.Encode(22, 12) | rm.Encode(5, 0));
24429 rd.Encode(22, 12) | rm.Encode(5, 0));
24433 Delegate(kVrintn, &Assembler::vrintn, dt, rd, rm);
24436 void Assembler::vrintn(DataType dt, SRegister rd, SRegister rm) {
24442 EmitT32_32(0xfeb90a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24449 EmitA32(0xfeb90a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24453 Delegate(kVrintn, &Assembler::vrintn, dt, rd, rm);
24456 void Assembler::vrintp(DataType dt, DRegister rd, DRegister rm) {
24464 rd.Encode(22, 12) | rm.Encode(5, 0));
24470 EmitT32_32(0xfeba0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24478 rd.Encode(22, 12) | rm.Encode(5, 0));
24483 EmitA32(0xfeba0b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24487 Delegate(kVrintp, &Assembler::vrintp, dt, rd, rm);
24490 void Assembler::vrintp(DataType dt, QRegister rd, QRegister rm) {
24498 rd.Encode(22, 12) | rm.Encode(5, 0));
24506 rd.Encode(22, 12) | rm.Encode(5, 0));
24510 Delegate(kVrintp, &Assembler::vrintp, dt, rd, rm);
24513 void Assembler::vrintp(DataType dt, SRegister rd, SRegister rm) {
24519 EmitT32_32(0xfeba0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24526 EmitA32(0xfeba0a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24530 Delegate(kVrintp, &Assembler::vrintp, dt, rd, rm);
24535 SRegister rd,
24542 EmitT32_32(0xeeb60a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24549 EmitA32(0x0eb60a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24554 Delegate(kVrintr, &Assembler::vrintr, cond, dt, rd, rm);
24559 DRegister rd,
24566 EmitT32_32(0xeeb60b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24573 EmitA32(0x0eb60b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24578 Delegate(kVrintr, &Assembler::vrintr, cond, dt, rd, rm);
24583 DRegister rd,
24592 rd.Encode(22, 12) | rm.Encode(5, 0));
24598 EmitT32_32(0xeeb70b40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24606 rd.Encode(22, 12) | rm.Encode(5, 0));
24611 EmitA32(0x0eb70b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24616 Delegate(kVrintx, &Assembler::vrintx, cond, dt, rd, rm);
24619 void Assembler::vrintx(DataType dt, QRegister rd, QRegister rm) {
24627 rd.Encode(22, 12) | rm.Encode(5, 0));
24635 rd.Encode(22, 12) | rm.Encode(5, 0));
24639 Delegate(kVrintx, &Assembler::vrintx, dt, rd, rm);
24644 SRegister rd,
24651 EmitT32_32(0xeeb70a40U | rd.Encode(22, 12) | rm.Encode(5, 0));
24658 EmitA32(0x0eb70a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24663 Delegate(kVrintx, &Assembler::vrintx, cond, dt, rd, rm);
24668 DRegister rd,
24677 rd.Encode(22, 12) | rm.Encode(5, 0));
24683 EmitT32_32(0xeeb60bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
24691 rd.Encode(22, 12) | rm.Encode(5, 0));
24696 EmitA32(0x0eb60bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24701 Delegate(kVrintz, &Assembler::vrintz, cond, dt, rd, rm);
24704 void Assembler::vrintz(DataType dt, QRegister rd, QRegister rm) {
24712 rd.Encode(22, 12) | rm.Encode(5, 0));
24720 rd.Encode(22, 12) | rm.Encode(5, 0));
24724 Delegate(kVrintz, &Assembler::vrintz, dt, rd, rm);
24729 SRegister rd,
24736 EmitT32_32(0xeeb60ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
24743 EmitA32(0x0eb60ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
24748 Delegate(kVrintz, &Assembler::vrintz, cond, dt, rd, rm);
24752 Condition cond, DataType dt, DRegister rd, DRegister rm, DRegister rn) {
24762 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
24773 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
24778 Delegate(kVrshl, &Assembler::vrshl, cond, dt, rd, rm, rn);
24782 Condition cond, DataType dt, QRegister rd, QRegister rm, QRegister rn) {
24792 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
24803 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
24808 Delegate(kVrshl, &Assembler::vrshl, cond, dt, rd, rm, rn);
24813 DRegister rd,
24830 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24838 EmitT32_32(0xef200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
24852 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24859 EmitA32(0xf2200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
24867 Delegate(kVrshr, &Assembler::vrshr, cond, dt, rd, rm, operand);
24872 QRegister rd,
24889 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24897 EmitT32_32(0xef200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
24911 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24918 EmitA32(0xf2200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
24926 Delegate(kVrshr, &Assembler::vrshr, cond, dt, rd, rm, operand);
24931 DRegister rd,
24948 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24957 rd.Encode(22, 12) | rm.Encode(5, 0));
24969 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
24977 rd.Encode(22, 12) | rm.Encode(5, 0));
24984 Delegate(kVrshrn, &Assembler::vrshrn, cond, dt, rd, rm, operand);
24989 DRegister rd,
25000 rd.Encode(22, 12) | rm.Encode(5, 0));
25011 rd.Encode(22, 12) | rm.Encode(5, 0));
25016 Delegate(kVrsqrte, &Assembler::vrsqrte, cond, dt, rd, rm);
25021 QRegister rd,
25032 rd.Encode(22, 12) | rm.Encode(5, 0));
25043 rd.Encode(22, 12) | rm.Encode(5, 0));
25048 Delegate(kVrsqrte, &Assembler::vrsqrte, cond, dt, rd, rm);
25052 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
25059 EmitT32_32(0xef200f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25069 EmitA32(0xf2200f10U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25075 Delegate(kVrsqrts, &Assembler::vrsqrts, cond, dt, rd, rn, rm);
25079 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
25086 EmitT32_32(0xef200f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25096 EmitA32(0xf2200f50U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25102 Delegate(kVrsqrts, &Assembler::vrsqrts, cond, dt, rd, rn, rm);
25107 DRegister rd,
25124 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25137 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25144 Delegate(kVrsra, &Assembler::vrsra, cond, dt, rd, rm, operand);
25149 QRegister rd,
25166 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25179 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25186 Delegate(kVrsra, &Assembler::vrsra, cond, dt, rd, rm, operand);
25190 Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm) {
25199 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
25209 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
25214 Delegate(kVrsubhn, &Assembler::vrsubhn, cond, dt, rd, rn, rm);
25217 void Assembler::vseleq(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
25223 EmitT32_32(0xfe000b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25231 EmitA32(0xfe000b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25236 Delegate(kVseleq, &Assembler::vseleq, dt, rd, rn, rm);
25239 void Assembler::vseleq(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
25245 EmitT32_32(0xfe000a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25253 EmitA32(0xfe000a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25258 Delegate(kVseleq, &Assembler::vseleq, dt, rd, rn, rm);
25261 void Assembler::vselge(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
25267 EmitT32_32(0xfe200b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25275 EmitA32(0xfe200b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25280 Delegate(kVselge, &Assembler::vselge, dt, rd, rn, rm);
25283 void Assembler::vselge(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
25289 EmitT32_32(0xfe200a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25297 EmitA32(0xfe200a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25302 Delegate(kVselge, &Assembler::vselge, dt, rd, rn, rm);
25305 void Assembler::vselgt(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
25311 EmitT32_32(0xfe300b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25319 EmitA32(0xfe300b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25324 Delegate(kVselgt, &Assembler::vselgt, dt, rd, rn, rm);
25327 void Assembler::vselgt(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
25333 EmitT32_32(0xfe300a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25341 EmitA32(0xfe300a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25346 Delegate(kVselgt, &Assembler::vselgt, dt, rd, rn, rm);
25349 void Assembler::vselvs(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
25355 EmitT32_32(0xfe100b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25363 EmitA32(0xfe100b00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25368 Delegate(kVselvs, &Assembler::vselvs, dt, rd, rn, rm);
25371 void Assembler::vselvs(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
25377 EmitT32_32(0xfe100a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25385 EmitA32(0xfe100a00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
25390 Delegate(kVselvs, &Assembler::vselvs, dt, rd, rn, rm);
25395 DRegister rd,
25412 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25425 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25442 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
25453 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
25459 Delegate(kVshl, &Assembler::vshl, cond, dt, rd, rm, operand);
25464 QRegister rd,
25481 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25494 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25511 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
25522 rd.Encode(22, 12) | rm.Encode(5, 0) | rn.Encode(7, 16));
25528 Delegate(kVshl, &Assembler::vshl, cond, dt, rd, rm, operand);
25533 QRegister rd,
25550 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25559 rd.Encode(22, 12) | rm.Encode(5, 0));
25571 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25579 rd.Encode(22, 12) | rm.Encode(5, 0));
25586 Delegate(kVshll, &Assembler::vshll, cond, dt, rd, rm, operand);
25591 DRegister rd,
25608 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25616 EmitT32_32(0xef200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
25630 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25637 EmitA32(0xf2200110U | rd.Encode(22, 12) | rm.Encode(7, 16) |
25645 Delegate(kVshr, &Assembler::vshr, cond, dt, rd, rm, operand);
25650 QRegister rd,
25667 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25675 EmitT32_32(0xef200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
25689 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25696 EmitA32(0xf2200150U | rd.Encode(22, 12) | rm.Encode(7, 16) |
25704 Delegate(kVshr, &Assembler::vshr, cond, dt, rd, rm, operand);
25709 DRegister rd,
25726 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25735 rd.Encode(22, 12) | rm.Encode(5, 0));
25747 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25755 rd.Encode(22, 12) | rm.Encode(5, 0));
25762 Delegate(kVshrn, &Assembler::vshrn, cond, dt, rd, rm, operand);
25767 DRegister rd,
25784 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25797 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25804 Delegate(kVsli, &Assembler::vsli, cond, dt, rd, rm, operand);
25809 QRegister rd,
25826 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25839 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25846 Delegate(kVsli, &Assembler::vsli, cond, dt, rd, rm, operand);
25849 void Assembler::vsqrt(Condition cond, DataType dt, SRegister rd, SRegister rm) {
25855 EmitT32_32(0xeeb10ac0U | rd.Encode(22, 12) | rm.Encode(5, 0));
25862 EmitA32(0x0eb10ac0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
25867 Delegate(kVsqrt, &Assembler::vsqrt, cond, dt, rd, rm);
25870 void Assembler::vsqrt(Condition cond, DataType dt, DRegister rd, DRegister rm) {
25876 EmitT32_32(0xeeb10bc0U | rd.Encode(22, 12) | rm.Encode(5, 0));
25883 EmitA32(0x0eb10bc0U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
25888 Delegate(kVsqrt, &Assembler::vsqrt, cond, dt, rd, rm);
25893 DRegister rd,
25910 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25923 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25930 Delegate(kVsra, &Assembler::vsra, cond, dt, rd, rm, operand);
25935 QRegister rd,
25952 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25965 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
25972 Delegate(kVsra, &Assembler::vsra, cond, dt, rd, rm, operand);
25977 DRegister rd,
25994 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
26007 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
26014 Delegate(kVsri, &Assembler::vsri, cond, dt, rd, rm, operand);
26019 QRegister rd,
26036 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
26049 rd.Encode(22, 12) | rm.Encode(5, 0) | (imm6 << 16));
26056 Delegate(kVsri, &Assembler::vsri, cond, dt, rd, rm, operand);
27285 DRegister rd,
27299 EmitT32_32(0xed000b00U | rd.Encode(22, 12) | (rn.GetCode() << 16) |
27310 EmitA32(0x0d000b00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
27316 Delegate(kVstr, &Assembler::vstr, cond, dt, rd, operand);
27321 SRegister rd,
27335 EmitT32_32(0xed000a00U | rd.Encode(22, 12) | (rn.GetCode() << 16) |
27346 EmitA32(0x0d000a00U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
27352 Delegate(kVstr, &Assembler::vstr, cond, dt, rd, operand);
27356 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
27364 EmitT32_32(0xef200d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27372 EmitT32_32(0xee300b40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27381 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27390 EmitA32(0xf2200d00U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27397 EmitA32(0x0e300b40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
27405 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27410 Delegate(kVsub, &Assembler::vsub, cond, dt, rd, rn, rm);
27414 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
27422 EmitT32_32(0xef200d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27432 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27441 EmitA32(0xf2200d40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27450 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27455 Delegate(kVsub, &Assembler::vsub, cond, dt, rd, rn, rm);
27459 Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm) {
27465 EmitT32_32(0xee300a40U | rd.Encode(22, 12) | rn.Encode(7, 16) |
27473 EmitA32(0x0e300a40U | (cond.GetCondition() << 28) | rd.Encode(22, 12) |
27478 Delegate(kVsub, &Assembler::vsub, cond, dt, rd, rn, rm);
27482 Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm) {
27491 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27501 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27506 Delegate(kVsubhn, &Assembler::vsubhn, cond, dt, rd, rn, rm);
27510 Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm) {
27520 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27531 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27536 Delegate(kVsubl, &Assembler::vsubl, cond, dt, rd, rn, rm);
27540 Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm) {
27550 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27561 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27566 Delegate(kVsubw, &Assembler::vsubw, cond, dt, rd, rn, rm);
27569 void Assembler::vswp(Condition cond, DataType dt, DRegister rd, DRegister rm) {
27576 EmitT32_32(0xffb20000U | rd.Encode(22, 12) | rm.Encode(5, 0));
27583 EmitA32(0xf3b20000U | rd.Encode(22, 12) | rm.Encode(5, 0));
27587 Delegate(kVswp, &Assembler::vswp, cond, dt, rd, rm);
27590 void Assembler::vswp(Condition cond, DataType dt, QRegister rd, QRegister rm) {
27597 EmitT32_32(0xffb20040U | rd.Encode(22, 12) | rm.Encode(5, 0));
27604 EmitA32(0xf3b20040U | rd.Encode(22, 12) | rm.Encode(5, 0));
27608 Delegate(kVswp, &Assembler::vswp, cond, dt, rd, rm);
27613 DRegister rd,
27625 EmitT32_32(0xffb00800U | rd.Encode(22, 12) | first.Encode(7, 16) |
27638 EmitA32(0xf3b00800U | rd.Encode(22, 12) | first.Encode(7, 16) |
27644 Delegate(kVtbl, &Assembler::vtbl, cond, dt, rd, nreglist, rm);
27649 DRegister rd,
27661 EmitT32_32(0xffb00840U | rd.Encode(22, 12) | first.Encode(7, 16) |
27674 EmitA32(0xf3b00840U | rd.Encode(22, 12) | first.Encode(7, 16) |
27680 Delegate(kVtbx, &Assembler::vtbx, cond, dt, rd, nreglist, rm);
27683 void Assembler::vtrn(Condition cond, DataType dt, DRegister rd, DRegister rm) {
27692 rd.Encode(22, 12) | rm.Encode(5, 0));
27702 rd.Encode(22, 12) | rm.Encode(5, 0));
27707 Delegate(kVtrn, &Assembler::vtrn, cond, dt, rd, rm);
27710 void Assembler::vtrn(Condition cond, DataType dt, QRegister rd, QRegister rm) {
27719 rd.Encode(22, 12) | rm.Encode(5, 0));
27729 rd.Encode(22, 12) | rm.Encode(5, 0));
27734 Delegate(kVtrn, &Assembler::vtrn, cond, dt, rd, rm);
27738 Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm) {
27747 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27757 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27762 Delegate(kVtst, &Assembler::vtst, cond, dt, rd, rn, rm);
27766 Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm) {
27775 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27785 rd.Encode(22, 12) | rn.Encode(7, 16) | rm.Encode(5, 0));
27790 Delegate(kVtst, &Assembler::vtst, cond, dt, rd, rn, rm);
27793 void Assembler::vuzp(Condition cond, DataType dt, DRegister rd, DRegister rm) {
27802 rd.Encode(22, 12) | rm.Encode(5, 0));
27810 EmitT32_32(0xffba0080U | rd.Encode(22, 12) | rm.Encode(5, 0));
27820 rd.Encode(22, 12) | rm.Encode(5, 0));
27827 EmitA32(0xf3ba0080U | rd.Encode(22, 12) | rm.Encode(5, 0));
27832 Delegate(kVuzp, &Assembler::vuzp, cond, dt, rd, rm);
27835 void Assembler::vuzp(Condition cond, DataType dt, QRegister rd, QRegister rm) {
27844 rd.Encode(22, 12) | rm.Encode(5, 0));
27854 rd.Encode(22, 12) | rm.Encode(5, 0));
27859 Delegate(kVuzp, &Assembler::vuzp, cond, dt, rd, rm);
27862 void Assembler::vzip(Condition cond, DataType dt, DRegister rd, DRegister rm) {
27871 rd.Encode(22, 12) | rm.Encode(5, 0));
27879 EmitT32_32(0xffba0080U | rd.Encode(22, 12) | rm.Encode(5, 0));
27889 rd.Encode(22, 12) | rm.Encode(5, 0));
27896 EmitA32(0xf3ba0080U | rd.Encode(22, 12) | rm.Encode(5, 0));
27901 Delegate(kVzip, &Assembler::vzip, cond, dt, rd, rm);
27904 void Assembler::vzip(Condition cond, DataType dt, QRegister rd, QRegister rm) {
27913 rd.Encode(22, 12) | rm.Encode(5, 0));
27923 rd.Encode(22, 12) | rm.Encode(5, 0));
27928 Delegate(kVzip, &Assembler::vzip, cond, dt, rd, rm);