Lines Matching full:i
154 * i.e. ((0x00 - 0x01) & ~(0x00)) & 0x80
206 int i; in helper_BPERMD() local
209 for (i = 0; i < 8; i++) { in helper_BPERMD()
210 int index = (rs >> (i * 8)) & 0xFF; in helper_BPERMD()
213 ra |= 1 << i; in helper_BPERMD()
226 int i; in helper_CMPB() local
228 for (i = 0; i < sizeof(target_ulong); i++) { in helper_CMPB()
338 unsigned int n, i = 64; in helper_CFUGED() local
346 while (i) { in helper_CFUGED()
349 if (n > i) { in helper_CFUGED()
350 n = i; in helper_CFUGED()
373 i -= n; in helper_CFUGED()
393 int i, o; in helper_PDEPD() local
400 for (i = 0; mask != 0; i++) { in helper_PDEPD()
403 result |= ((src >> i) & 1) << o; in helper_PDEPD()
411 int i, o; in helper_PEXTD() local
419 i = ctz64(mask); in helper_PEXTD()
421 result |= ((src >> i) & 1) << o; in helper_PEXTD()
511 int i; \
513 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
514 r->f32[i] = func(a->f32[i], b->f32[i], &env->vec_status); \
527 int i; \
528 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
529 r->f32[i] = float32_muladd(a->f32[i], c->f32[i], b->f32[i], \
539 type result = (type)a->element[i] op (type)b->element[i]; \
540 r->element[i] = cvt(result, &sat); \
548 int i; \
550 for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
577 int i; \ in VARITHSAT_SIGNED()
579 for (i = 0; i < ARRAY_SIZE(r->element); i++) { \ in VARITHSAT_SIGNED()
580 etype x = (etype)a->element[i] + (etype)b->element[i] + 1; \ in VARITHSAT_SIGNED()
581 r->element[i] = x >> 1; \ in VARITHSAT_SIGNED()
596 int i; \
598 for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
599 r->element[i] = (a->element[i] > b->element[i]) ? \
600 (a->element[i] - b->element[i]) : \
601 (b->element[i] - a->element[i]); \
619 int i; \
621 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
622 float32 t = cvt(b->element[i], &env->vec_status); \
623 r->f32[i] = float32_scalbn(t, -uim, &env->vec_status); \
633 for (int i = 0; i < ARRAY_SIZE(t->ELEM); i++) { \
634 t->ELEM[i] = ((a->ELEM[i] == 0) || (b->ELEM[i] == 0) || \
635 (a->ELEM[i] != b->ELEM[i])) ? -1 : 0; \
650 int i; \
652 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
655 float32_compare_quiet(a->f32[i], b->f32[i], \
664 r->u32[i] = result; \
684 int i; local
687 for (i = 0; i < ARRAY_SIZE(r->f32); i++) {
688 FloatRelation le_rel = float32_compare_quiet(a->f32[i], b->f32[i],
691 r->u32[i] = 0xc0000000;
694 float32 bneg = float32_chs(b->f32[i]);
695 FloatRelation ge_rel = float32_compare_quiet(a->f32[i], bneg,
700 r->u32[i] = ((!le) << 31) | ((!ge) << 30);
724 int i; \
729 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
730 if (float32_is_any_nan(b->f32[i])) { \
731 r->element[i] = 0; \
733 float64 t = float32_to_float64(b->f32[i], &s); \
738 r->element[i] = satcvt(j, &sat); \
754 for (int i = 0; i < 8; i++, mask >>= 1) { in ger_rank8() local
756 psum += (int64_t)sextract32(a, 4 * i, 4) * sextract32(b, 4 * i, 4); in ger_rank8()
765 for (int i = 0; i < 4; i++, mask >>= 1) { in ger_rank4() local
767 psum += sextract32(a, 8 * i, 8) * (int64_t)extract32(b, 8 * i, 8); in ger_rank4()
776 for (int i = 0; i < 2; i++, mask >>= 1) { in ger_rank2() local
778 psum += (int64_t)sextract32(a, 16 * i, 16) * in ger_rank2()
779 sextract32(b, 16 * i, 16); in ger_rank2()
793 int i, j; in xviger() local
794 for (i = 0, xmsk_bit = 1 << 3; i < 4; i++, xmsk_bit >>= 1) { in xviger()
797 psum = ger(a->VsrW(i), b->VsrW(j), pmsk); in xviger()
799 psum += at[i].VsrSW(j); in xviger()
803 at[i].VsrSW(j) = INT32_MAX; in xviger()
806 at[i].VsrSW(j) = INT32_MIN; in xviger()
808 at[i].VsrSW(j) = (int32_t) psum; in xviger()
811 at[i].VsrSW(j) = 0; in xviger()
883 int i; in helper_vclzlsbb() local
884 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_vclzlsbb()
885 if (r->VsrB(i) & 0x01) { in helper_vclzlsbb()
896 int i; in helper_vctzlsbb() local
897 for (i = ARRAY_SIZE(r->u8) - 1; i >= 0; i--) { in helper_vctzlsbb()
898 if (r->VsrB(i) & 0x01) { in helper_vctzlsbb()
910 int i; in helper_VMHADDSHS() local
912 for (i = 0; i < ARRAY_SIZE(r->s16); i++) { in helper_VMHADDSHS()
913 int32_t prod = a->s16[i] * b->s16[i]; in helper_VMHADDSHS()
914 int32_t t = (int32_t)c->s16[i] + (prod >> 15); in helper_VMHADDSHS()
916 r->s16[i] = cvtswsh(t, &sat); in helper_VMHADDSHS()
928 int i; in helper_VMHRADDSHS() local
930 for (i = 0; i < ARRAY_SIZE(r->s16); i++) { in helper_VMHRADDSHS()
931 int32_t prod = a->s16[i] * b->s16[i] + 0x00004000; in helper_VMHRADDSHS()
932 int32_t t = (int32_t)c->s16[i] + (prod >> 15); in helper_VMHRADDSHS()
933 r->s16[i] = cvtswsh(t, &sat); in helper_VMHRADDSHS()
944 int i; in helper_VMLADDUHM() local
946 for (i = 0; i < ARRAY_SIZE(r->s16); i++) { in helper_VMLADDUHM()
947 int32_t prod = a->s16[i] * b->s16[i]; in helper_VMLADDUHM()
948 r->s16[i] = (int16_t) (prod + c->s16[i]); in helper_VMLADDUHM()
956 int i, half = ARRAY_SIZE(r->element) / 2; \
958 for (i = 0; i < half; i++) { \
959 result.access(i * 2 + 0) = a->access(i + ofs); \
960 result.access(i * 2 + 1) = b->access(i + ofs); \
977 int i; in VMRG() local
979 for (i = 0; i < ARRAY_SIZE(r->s8); i++) { in VMRG()
980 prod[i] = (int32_t)a->s8[i] * b->u8[i]; in VMRG()
983 VECTOR_FOR_INORDER_I(i, s32) { in VMRG()
984 r->s32[i] = c->s32[i] + prod[4 * i] + prod[4 * i + 1] + in VMRG()
985 prod[4 * i + 2] + prod[4 * i + 3]; in VMRG()
992 int i; in helper_VMSUMSHM() local
994 for (i = 0; i < ARRAY_SIZE(r->s16); i++) { in helper_VMSUMSHM()
995 prod[i] = a->s16[i] * b->s16[i]; in helper_VMSUMSHM()
998 VECTOR_FOR_INORDER_I(i, s32) { in helper_VMSUMSHM()
999 r->s32[i] = c->s32[i] + prod[2 * i] + prod[2 * i + 1]; in helper_VMSUMSHM()
1007 int i; in helper_VMSUMSHS() local
1010 for (i = 0; i < ARRAY_SIZE(r->s16); i++) { in helper_VMSUMSHS()
1011 prod[i] = (int32_t)a->s16[i] * b->s16[i]; in helper_VMSUMSHS()
1014 VECTOR_FOR_INORDER_I(i, s32) { in helper_VMSUMSHS()
1015 int64_t t = (int64_t)c->s32[i] + prod[2 * i] + prod[2 * i + 1]; in helper_VMSUMSHS()
1017 r->u32[i] = cvtsdsw(t, &sat); in helper_VMSUMSHS()
1028 int i; in helper_VMSUMUBM() local
1030 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_VMSUMUBM()
1031 prod[i] = a->u8[i] * b->u8[i]; in helper_VMSUMUBM()
1034 VECTOR_FOR_INORDER_I(i, u32) { in helper_VMSUMUBM()
1035 r->u32[i] = c->u32[i] + prod[4 * i] + prod[4 * i + 1] + in helper_VMSUMUBM()
1036 prod[4 * i + 2] + prod[4 * i + 3]; in helper_VMSUMUBM()
1043 int i; in helper_VMSUMUHM() local
1045 for (i = 0; i < ARRAY_SIZE(r->u16); i++) { in helper_VMSUMUHM()
1046 prod[i] = a->u16[i] * b->u16[i]; in helper_VMSUMUHM()
1049 VECTOR_FOR_INORDER_I(i, u32) { in helper_VMSUMUHM()
1050 r->u32[i] = c->u32[i] + prod[2 * i] + prod[2 * i + 1]; in helper_VMSUMUHM()
1058 int i; in helper_VMSUMUHS() local
1061 for (i = 0; i < ARRAY_SIZE(r->u16); i++) { in helper_VMSUMUHS()
1062 prod[i] = a->u16[i] * b->u16[i]; in helper_VMSUMUHS()
1065 VECTOR_FOR_INORDER_I(i, s32) { in helper_VMSUMUHS()
1066 uint64_t t = (uint64_t)c->u32[i] + prod[2 * i] + prod[2 * i + 1]; in helper_VMSUMUHS()
1068 r->u32[i] = cvtuduw(t, &sat); in helper_VMSUMUHS()
1079 int i; \
1081 for (i = 0; i < ARRAY_SIZE(r->mul_element); i += 2) { \
1082 r->prod_access(i >> 1) = (cast)a->mul_access(i) * \
1083 (cast)b->mul_access(i); \
1090 int i; \
1092 for (i = 0; i < ARRAY_SIZE(r->mul_element); i += 2) { \
1093 r->prod_access(i >> 1) = (cast)a->mul_access(i + 1) * \
1094 (cast)b->mul_access(i + 1); \
1114 int i, idx; in VMUL() local
1117 for (i = 0; i < ARRAY_SIZE(t->u8); i++) { in VMUL()
1118 if ((pcv->VsrB(i) >> 5) == uim) { in VMUL()
1119 idx = pcv->VsrB(i) & 0x1f; in VMUL()
1121 tmp.VsrB(i) = s0->VsrB(idx); in VMUL()
1123 tmp.VsrB(i) = s1->VsrB(idx - ARRAY_SIZE(t->u8)); in VMUL()
1154 int i; in helper_VDIVESD() local
1157 for (i = 0; i < 2; i++) { in helper_VDIVESD()
1158 high = a->s64[i]; in helper_VDIVESD()
1160 if (unlikely((high == INT64_MIN && b->s64[i] == -1) || !b->s64[i])) { in helper_VDIVESD()
1161 t->s64[i] = a->s64[i]; /* Undefined behavior */ in helper_VDIVESD()
1163 divs128(&low, &high, b->s64[i]); in helper_VDIVESD()
1164 t->s64[i] = low; in helper_VDIVESD()
1171 int i; in helper_VDIVEUD() local
1173 for (i = 0; i < 2; i++) { in helper_VDIVEUD()
1174 high = a->u64[i]; in helper_VDIVEUD()
1176 if (unlikely(!b->u64[i])) { in helper_VDIVEUD()
1177 t->u64[i] = a->u64[i]; /* Undefined behavior */ in helper_VDIVEUD()
1179 divu128(&low, &high, b->u64[i]); in helper_VDIVEUD()
1180 t->u64[i] = low; in helper_VDIVEUD()
1240 int i; in helper_VPERM() local
1242 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_VPERM()
1243 int s = c->VsrB(i) & 0x1f; in helper_VPERM()
1247 result.VsrB(i) = b->VsrB(index); in helper_VPERM()
1249 result.VsrB(i) = a->VsrB(index); in helper_VPERM()
1258 int i; in helper_VPERMR() local
1260 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_VPERMR()
1261 int s = c->VsrB(i) & 0x1f; in helper_VPERMR()
1265 result.VsrB(i) = a->VsrB(index); in helper_VPERMR()
1267 result.VsrB(i) = b->VsrB(index); in helper_VPERMR()
1283 for (int i = 0, j = 0; i < ARRAY_SIZE(b->u8); i += SZ) { \
1284 if (b->VsrB(i) & 0x80) { \
1287 tmp.VsrB(i + k) = j + k; \
1302 for (int i = 0, j = 0; i < ARRAY_SIZE(b->u8); i += SZ) { \
1303 if (b->VsrB(i) & 0x80) { \
1306 tmp.VsrB(j + k) = i + k; \
1325 for (int i = 0, j = 0; i < ARRAY_SIZE(b->u8); i += SZ) { \
1326 /* Reverse indexing of "i" */ \
1327 const int idx = ARRAY_SIZE(b->u8) - i - SZ; \
1346 for (int i = 0, j = 0; i < ARRAY_SIZE(b->u8); i += SZ) { \
1347 if (b->VsrB(ARRAY_SIZE(b->u8) - i - SZ) & 0x80) { \
1352 tmp.VsrB(idx + rk) = i + k; \
1379 #define VBPERMQ_INDEX(avr, i) ((avr)->u8[(i)]) argument
1380 #define VBPERMD_INDEX(i) (i) argument
1383 #define VBPERMQ_INDEX(avr, i) ((avr)->u8[15 - (i)])
1384 #define VBPERMD_INDEX(i) (1 - i)
1387 #define EXTRACT_BIT(avr, i, index) \ argument
1388 (extract64((avr)->VsrD(i), 63 - index, 1))
1392 int i, j; in helper_vbpermd() local
1394 VECTOR_FOR_INORDER_I(i, u64) { in helper_vbpermd()
1396 int index = VBPERMQ_INDEX(b, (i * 8) + j); in helper_vbpermd()
1397 if (index < 64 && EXTRACT_BIT(a, i, index)) { in helper_vbpermd()
1398 result.u64[VBPERMD_INDEX(i)] |= (0x80 >> j); in helper_vbpermd()
1407 int i; in helper_vbpermq() local
1410 VECTOR_FOR_INORDER_I(i, u8) { in helper_vbpermq()
1411 int index = VBPERMQ_INDEX(b, i); in helper_vbpermq()
1416 perm |= (0x8000 >> i); in helper_vbpermq()
1434 for (int i = 0; i < 2; ++i) { in helper_vpmsumb() local
1435 uint64_t aa = a->u64[i], bb = b->u64[i]; in helper_vpmsumb()
1436 r->u64[i] = clmul_8x4_even(aa, bb) ^ clmul_8x4_odd(aa, bb); in helper_vpmsumb()
1442 for (int i = 0; i < 2; ++i) { in helper_vpmsumh() local
1443 uint64_t aa = a->u64[i], bb = b->u64[i]; in helper_vpmsumh()
1444 r->u64[i] = clmul_16x2_even(aa, bb) ^ clmul_16x2_odd(aa, bb); in helper_vpmsumh()
1450 for (int i = 0; i < 2; ++i) { in helper_vpmsumw() local
1451 uint64_t aa = a->u64[i], bb = b->u64[i]; in helper_vpmsumw()
1452 r->u64[i] = clmul_32(aa, bb) ^ clmul_32(aa >> 32, bb >> 32); in helper_vpmsumw()
1470 int i, j; in helper_vpkpx() local
1478 VECTOR_FOR_INORDER_I(i, u64) { in helper_vpkpx()
1480 uint32_t e = x[i]->u32[j]; in helper_vpkpx()
1482 result.u16[4 * i + j] = (((e >> 9) & 0xfc00) | in helper_vpkpx()
1494 int i; \
1500 VECTOR_FOR_INORDER_I(i, from) { \
1501 result.to[i] = cvt(a0->from[i], &sat); \
1502 result.to[i + ARRAY_SIZE(r->from)] = cvt(a1->from[i], &sat);\
1509 #define I(x, y) (x) macro
1519 VPK(uhum, u16, u8, I, 0)
1520 VPK(uwum, u32, u16, I, 0)
1521 VPK(udum, u64, u32, I, 0)
1522 #undef I
1528 int i; in helper_vrefp() local
1530 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { in helper_vrefp()
1531 r->f32[i] = float32_div(float32_one, b->f32[i], &env->vec_status); in helper_vrefp()
1539 int i; \
1543 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { \
1544 r->f32[i] = float32_round_to_int (b->f32[i], &s); \
1555 int i; in VRFI() local
1557 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { in VRFI()
1558 float32 t = float32_sqrt(b->f32[i], &env->vec_status); in VRFI()
1560 r->f32[i] = float32_div(float32_one, t, &env->vec_status); in VRFI()
1567 int i; \
1568 for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
1569 uint##size##_t src1 = a->element[i]; \
1570 uint##size##_t src2 = b->element[i]; \
1571 uint##size##_t src3 = r->element[i]; \
1580 r->element[i] = (rot_val & mask) | (src3 & ~mask); \
1582 r->element[i] = (rot_val & mask); \
1594 int i; in helper_vexptefp() local
1596 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { in helper_vexptefp()
1597 r->f32[i] = float32_exp2(b->f32[i], &env->vec_status); in helper_vexptefp()
1603 int i; in helper_vlogefp() local
1605 for (i = 0; i < ARRAY_SIZE(r->f32); i++) { in helper_vlogefp()
1606 r->f32[i] = float32_log2(b->f32[i], &env->vec_status); in helper_vlogefp()
1630 int i; in helper_vslv() local
1634 for (i = 0; i < size; i++) { in helper_vslv()
1635 shift = b->VsrB(i) & 0x7; /* extract shift value */ in helper_vslv()
1636 bytes = (a->VsrB(i) << 8) + /* extract adjacent bytes */ in helper_vslv()
1637 (((i + 1) < size) ? a->VsrB(i + 1) : 0); in helper_vslv()
1638 r->VsrB(i) = (bytes << shift) >> 8; /* shift and store result */ in helper_vslv()
1644 int i; in helper_vsrv() local
1652 for (i = ARRAY_SIZE(r->u8) - 1; i >= 0; i--) { in helper_vsrv()
1653 shift = b->VsrB(i) & 0x7; /* extract shift value */ in helper_vsrv()
1654 bytes = ((i ? a->VsrB(i - 1) : 0) << 8) + a->VsrB(i); in helper_vsrv()
1656 r->VsrB(i) = (bytes >> shift) & 0xFF; /* shift and store result */ in helper_vsrv()
1663 int i; in helper_vsldoi() local
1666 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_vsldoi()
1667 int index = sh + i; in helper_vsldoi()
1669 result.VsrB(i) = b->VsrB(index - 0x10); in helper_vsldoi()
1671 result.VsrB(i) = a->VsrB(index); in helper_vsldoi()
1787 int i, idx, crf = 0; \
1789 for (i = 0; i < NUM_ELEMS; i++) { \
1790 idx = LEFT ? i : NUM_ELEMS - i - 1; \
1799 for (; i < NUM_ELEMS; i++) { \
1800 idx = LEFT ? i : NUM_ELEMS - i - 1; \
1817 int i; local
1820 for (i = 0; i < es; i++, ext_index++) {
1821 t.VsrB(8 - es + i) = xb->VsrB(ext_index % 16);
1831 int ins_index, i = 0; in helper_XXINSERTW() local
1834 for (i = 0; i < es && ins_index < 16; i++, ins_index++) { in helper_XXINSERTW()
1835 t.VsrB(ins_index) = xb->VsrB(8 - es + i); in helper_XXINSERTW()
1886 for (int i = 0; i < ARRAY_SIZE(t->glue(u, sz)); i++) { \
1887 t->glue(u, sz)[i] = (c->glue(s, sz)[i] >> (sz - 1)) ? \
1888 b->glue(u, sz)[i] : a->glue(u, sz)[i]; \
1913 int i, upper; in helper_vsumsws() local
1919 for (i = 0; i < ARRAY_SIZE(r->s32); i++) { in helper_vsumsws()
1920 t += a->VsrSW(i); in helper_vsumsws()
1921 result.VsrSW(i) = 0; in helper_vsumsws()
1933 int i, j, upper; in helper_vsum2sws() local
1938 for (i = 0; i < ARRAY_SIZE(r->u64); i++) { in helper_vsum2sws()
1939 int64_t t = (int64_t)b->VsrSW(upper + i * 2); in helper_vsum2sws()
1941 result.VsrD(i) = 0; in helper_vsum2sws()
1943 t += a->VsrSW(2 * i + j); in helper_vsum2sws()
1945 result.VsrSW(upper + i * 2) = cvtsdsw(t, &sat); in helper_vsum2sws()
1956 int i, j; in helper_vsum4sbs() local
1959 for (i = 0; i < ARRAY_SIZE(r->s32); i++) { in helper_vsum4sbs()
1960 int64_t t = (int64_t)b->s32[i]; in helper_vsum4sbs()
1963 t += a->s8[4 * i + j]; in helper_vsum4sbs()
1965 r->s32[i] = cvtsdsw(t, &sat); in helper_vsum4sbs()
1976 int i; in helper_vsum4shs() local
1978 for (i = 0; i < ARRAY_SIZE(r->s32); i++) { in helper_vsum4shs()
1979 int64_t t = (int64_t)b->s32[i]; in helper_vsum4shs()
1981 t += a->s16[2 * i] + a->s16[2 * i + 1]; in helper_vsum4shs()
1982 r->s32[i] = cvtsdsw(t, &sat); in helper_vsum4shs()
1992 int i, j; in helper_vsum4ubs() local
1995 for (i = 0; i < ARRAY_SIZE(r->u32); i++) { in helper_vsum4ubs()
1996 uint64_t t = (uint64_t)b->u32[i]; in helper_vsum4ubs()
1999 t += a->u8[4 * i + j]; in helper_vsum4ubs()
2001 r->u32[i] = cvtuduw(t, &sat); in helper_vsum4ubs()
2019 int i; \
2022 for (i = 0; i < ARRAY_SIZE(r->u32); i++) { \
2023 uint16_t _e = b->u16[hi ? i : i + 4]; \
2029 result.u32[i] = (_a << 24) | (_r << 16) | (_g << 8) | _b; \
2040 int i; \ in VUPKPX()
2044 for (i = 0; i < ARRAY_SIZE(r->unpacked); i++) { \ in VUPKPX()
2045 result.unpacked[i] = b->packee[i]; \ in VUPKPX()
2048 for (i = ARRAY_SIZE(r->unpacked); i < ARRAY_SIZE(r->packee); \ in VUPKPX()
2049 i++) { \ in VUPKPX()
2050 result.unpacked[i - ARRAY_SIZE(r->unpacked)] = b->packee[i]; \ in VUPKPX()
2068 int i; \
2070 for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
2071 r->element[i] = name(b->element[i]); \
2250 int i; in bcd_is_valid() local
2257 for (i = 1; i < 32; i++) { in bcd_is_valid()
2258 bcd_get_digit(bcd, i, &invalid); in bcd_is_valid()
2287 int i; in bcd_cmp_mag() local
2289 for (i = 31; i > 0; i--) { in bcd_cmp_mag()
2290 uint8_t dig_a = bcd_get_digit(a, i, &invalid); in bcd_cmp_mag()
2291 uint8_t dig_b = bcd_get_digit(b, i, &invalid); in bcd_cmp_mag()
2308 int i; in bcd_add_mag() local
2311 for (i = 1; i <= 31; i++) { in bcd_add_mag()
2312 uint8_t digit = bcd_get_digit(a, i, invalid) + in bcd_add_mag()
2313 bcd_get_digit(b, i, invalid) + carry; in bcd_add_mag()
2322 bcd_put_digit(t, digit, i); in bcd_add_mag()
2333 int i; in bcd_sub_mag() local
2335 for (i = 1; i <= 31; i++) { in bcd_sub_mag()
2336 uint8_t digit = bcd_get_digit(a, i, invalid) - in bcd_sub_mag()
2337 bcd_get_digit(b, i, invalid) + carry; in bcd_sub_mag()
2345 bcd_put_digit(t, digit, i); in bcd_sub_mag()
2414 int i; in helper_bcdcfn() local
2421 for (i = 1; i < 8; i++) { in helper_bcdcfn()
2422 national = get_national_digit(b, i); in helper_bcdcfn()
2428 bcd_put_digit(&ret, national & 0xf, i); in helper_bcdcfn()
2450 int i; in helper_bcdctn() local
2458 for (i = 1; i < 8; i++) { in helper_bcdctn()
2459 set_national_digit(&ret, 0x30 + bcd_get_digit(b, i, &invalid), i); in helper_bcdctn()
2484 int i; in helper_bcdcfz() local
2497 for (i = 0; i < 16; i++) { in helper_bcdcfz()
2498 zone_digit = i ? b->VsrB(BCD_DIG_BYTE(i * 2)) >> 4 : zone_lead; in helper_bcdcfz()
2499 digit = b->VsrB(BCD_DIG_BYTE(i * 2)) & 0xF; in helper_bcdcfz()
2505 bcd_put_digit(&ret, digit, i + 1); in helper_bcdcfz()
2528 int i; in helper_bcdctz() local
2538 for (i = 0; i < 16; i++) { in helper_bcdctz()
2539 digit = bcd_get_digit(b, i + 1, &invalid); in helper_bcdctz()
2545 ret.VsrB(BCD_DIG_BYTE(i * 2)) = zone_lead + digit; in helper_bcdctz()
2587 int i; in helper_bcdcfsq() local
2629 for (i = 1; i < 16; rem /= 10, i++) { in helper_bcdcfsq()
2630 bcd_put_digit(&ret, rem % 10, i); in helper_bcdcfsq()
2633 for (; i < 32; lo_value /= 10, i++) { in helper_bcdcfsq()
2634 bcd_put_digit(&ret, lo_value % 10, i); in helper_bcdcfsq()
2645 uint8_t i; in helper_bcdctsq() local
2655 for (i = 30; i > 0; i--) { in helper_bcdctsq()
2658 lo_value += bcd_get_digit(b, i, &invalid); in helper_bcdctsq()
2685 int i; in helper_bcdcpsgn() local
2695 for (i = 1; i < 32; i++) { in helper_bcdcpsgn()
2696 bcd_get_digit(a, i, &invalid); in helper_bcdcpsgn()
2697 bcd_get_digit(b, i, &invalid); in helper_bcdcpsgn()
2723 int i = a->VsrSB(7); in helper_bcds() local
2733 if (unlikely(i > 31)) { in helper_bcds()
2734 i = 31; in helper_bcds()
2735 } else if (unlikely(i < -31)) { in helper_bcds()
2736 i = -31; in helper_bcds()
2739 if (i > 0) { in helper_bcds()
2740 ulshift(&ret.VsrD(1), &ret.VsrD(0), i * 4, &ox_flag); in helper_bcds()
2742 urshift(&ret.VsrD(1), &ret.VsrD(0), -i * 4); in helper_bcds()
2759 int i; in helper_bcdus() local
2764 for (i = 0; i < 32; i++) { in helper_bcdus()
2765 bcd_get_digit(b, i, &invalid); in helper_bcdus()
2772 i = a->VsrSB(7); in helper_bcdus()
2773 if (i >= 32) { in helper_bcdus()
2776 } else if (i <= -32) { in helper_bcdus()
2778 } else if (i > 0) { in helper_bcdus()
2779 ulshift(&ret.VsrD(1), &ret.VsrD(0), i * 4, &ox_flag); in helper_bcdus()
2781 urshift(&ret.VsrD(1), &ret.VsrD(0), -i * 4); in helper_bcdus()
2803 int i = a->VsrSB(7); in helper_bcdsr() local
2813 if (unlikely(i > 31)) { in helper_bcdsr()
2814 i = 31; in helper_bcdsr()
2815 } else if (unlikely(i < -31)) { in helper_bcdsr()
2816 i = -31; in helper_bcdsr()
2819 if (i > 0) { in helper_bcdsr()
2820 ulshift(&ret.VsrD(1), &ret.VsrD(0), i * 4, &ox_flag); in helper_bcdsr()
2822 urshift(&ret.VsrD(1), &ret.VsrD(0), -i * 4); in helper_bcdsr()
2843 int i = a->VsrSH(3) + 1; in helper_bcdtrunc() local
2850 if (i > 16 && i < 32) { in helper_bcdtrunc()
2851 mask = (uint64_t)-1 >> (128 - i * 4); in helper_bcdtrunc()
2857 } else if (i >= 0 && i <= 16) { in helper_bcdtrunc()
2858 mask = (uint64_t)-1 >> (64 - i * 4); in helper_bcdtrunc()
2874 int i; in helper_bcdutrunc() local
2880 for (i = 0; i < 32; i++) { in helper_bcdutrunc()
2881 bcd_get_digit(b, i, &invalid); in helper_bcdutrunc()
2888 i = a->VsrSH(3); in helper_bcdutrunc()
2889 if (i > 16 && i < 33) { in helper_bcdutrunc()
2890 mask = (uint64_t)-1 >> (128 - i * 4); in helper_bcdutrunc()
2896 } else if (i > 0 && i <= 16) { in helper_bcdutrunc()
2897 mask = (uint64_t)-1 >> (64 - i * 4); in helper_bcdutrunc()
2904 } else if (i == 0) { in helper_bcdutrunc()
2921 int i; in helper_vsbox() local
2922 VECTOR_FOR_INORDER_I(i, u8) { in helper_vsbox()
2923 r->u8[i] = AES_sbox[a->u8[i]]; in helper_vsbox()
2959 int i; in helper_vshasigmaw() local
2961 for (i = 0; i < ARRAY_SIZE(r->u32); i++) { in helper_vshasigmaw()
2963 if ((six & (0x8 >> i)) == 0) { in helper_vshasigmaw()
2964 r->VsrW(i) = ror32(a->VsrW(i), 7) ^ in helper_vshasigmaw()
2965 ror32(a->VsrW(i), 18) ^ in helper_vshasigmaw()
2966 (a->VsrW(i) >> 3); in helper_vshasigmaw()
2967 } else { /* six.bit[i] == 1 */ in helper_vshasigmaw()
2968 r->VsrW(i) = ror32(a->VsrW(i), 17) ^ in helper_vshasigmaw()
2969 ror32(a->VsrW(i), 19) ^ in helper_vshasigmaw()
2970 (a->VsrW(i) >> 10); in helper_vshasigmaw()
2973 if ((six & (0x8 >> i)) == 0) { in helper_vshasigmaw()
2974 r->VsrW(i) = ror32(a->VsrW(i), 2) ^ in helper_vshasigmaw()
2975 ror32(a->VsrW(i), 13) ^ in helper_vshasigmaw()
2976 ror32(a->VsrW(i), 22); in helper_vshasigmaw()
2977 } else { /* six.bit[i] == 1 */ in helper_vshasigmaw()
2978 r->VsrW(i) = ror32(a->VsrW(i), 6) ^ in helper_vshasigmaw()
2979 ror32(a->VsrW(i), 11) ^ in helper_vshasigmaw()
2980 ror32(a->VsrW(i), 25); in helper_vshasigmaw()
2990 int i; in helper_vshasigmad() local
2992 for (i = 0; i < ARRAY_SIZE(r->u64); i++) { in helper_vshasigmad()
2994 if ((six & (0x8 >> (2 * i))) == 0) { in helper_vshasigmad()
2995 r->VsrD(i) = ror64(a->VsrD(i), 1) ^ in helper_vshasigmad()
2996 ror64(a->VsrD(i), 8) ^ in helper_vshasigmad()
2997 (a->VsrD(i) >> 7); in helper_vshasigmad()
2998 } else { /* six.bit[2*i] == 1 */ in helper_vshasigmad()
2999 r->VsrD(i) = ror64(a->VsrD(i), 19) ^ in helper_vshasigmad()
3000 ror64(a->VsrD(i), 61) ^ in helper_vshasigmad()
3001 (a->VsrD(i) >> 6); in helper_vshasigmad()
3004 if ((six & (0x8 >> (2 * i))) == 0) { in helper_vshasigmad()
3005 r->VsrD(i) = ror64(a->VsrD(i), 28) ^ in helper_vshasigmad()
3006 ror64(a->VsrD(i), 34) ^ in helper_vshasigmad()
3007 ror64(a->VsrD(i), 39); in helper_vshasigmad()
3008 } else { /* six.bit[2*i] == 1 */ in helper_vshasigmad()
3009 r->VsrD(i) = ror64(a->VsrD(i), 14) ^ in helper_vshasigmad()
3010 ror64(a->VsrD(i), 18) ^ in helper_vshasigmad()
3011 ror64(a->VsrD(i), 41); in helper_vshasigmad()
3020 int i; in helper_vpermxor() local
3022 for (i = 0; i < ARRAY_SIZE(r->u8); i++) { in helper_vpermxor()
3023 int indexA = c->VsrB(i) >> 4; in helper_vpermxor()
3024 int indexB = c->VsrB(i) & 0xF; in helper_vpermxor()
3026 result.VsrB(i) = a->VsrB(indexA) ^ b->VsrB(indexB); in helper_vpermxor()
3083 int i; in helper_dlmzb() local
3085 i = 1; in helper_dlmzb()
3093 i++; in helper_dlmzb()
3102 i++; in helper_dlmzb()
3104 i = 8; in helper_dlmzb()
3109 env->xer = (env->xer & ~0x7F) | i; in helper_dlmzb()
3113 return i; in helper_dlmzb()