Home | History | Annotate | Download | only in priv

Lines Matching defs:cc_dep1

962 #define S390_CC_FOR_BINARY(opcode,cc_dep1,cc_dep2) \
966 "ipm %[psw]\n\t" : [psw] "=d"(psw), [op1] "+d"(cc_dep1) \
972 #define S390_CC_FOR_TERNARY_SUBB(opcode,cc_dep1,cc_dep2,cc_ndep) \
981 "ipm %[psw]\n\t" : [psw] "=d"(psw), [op1] "+&d"(cc_dep1) \
987 #define S390_CC_FOR_TERNARY_ADDC(opcode,cc_dep1,cc_dep2,cc_ndep) \
996 "ipm %[psw]\n\t" : [psw] "=d"(psw), [op1] "+&d"(cc_dep1) \
1003 #define S390_CC_FOR_BFP_RESULT(opcode,cc_dep1) \
1008 : [op] "f"(cc_dep1) \
1025 #define S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,rounding_mode) \
1030 : [op] "f"(cc_dep1) \
1035 #define S390_CC_FOR_BFP_CONVERT(opcode,cc_dep1,cc_dep2) \
1040 cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,4); \
1043 cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,5); \
1046 cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,6); \
1049 cc = S390_CC_FOR_BFP_CONVERT_AUX(opcode,cc_dep1,7); \
1057 #define S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,rounding_mode) \
1062 cc_dep1) \
1067 #define S390_CC_FOR_BFP_UCONVERT(opcode,cc_dep1,cc_dep2) \
1072 cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,4); \
1075 cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,5); \
1078 cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,6); \
1081 cc = S390_CC_FOR_BFP_UCONVERT_AUX(opcode,cc_dep1,7); \
1101 #define S390_CC_FOR_BFP128_CONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
1109 cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
1112 cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
1115 cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
1118 cc = S390_CC_FOR_BFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
1138 #define S390_CC_FOR_BFP128_UCONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
1146 cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
1149 cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
1152 cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
1155 cc = S390_CC_FOR_BFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
1163 #define S390_CC_FOR_BFP_TDC(opcode,cc_dep1,cc_dep2) \
1168 : [value] "f"(cc_dep1), \
1174 #define S390_CC_FOR_BFP128_TDC(cc_dep1,cc_dep2,cc_ndep) \
1184 : [high] "f"(cc_dep1), [low] "f"(cc_dep2), \
1217 #define S390_CC_FOR_DFP_RESULT(cc_dep1) \
1222 : [op] "f"(cc_dep1) \
1239 #define S390_CC_FOR_DFP_TD(opcode,cc_dep1,cc_dep2) \
1244 : [value] "f"(cc_dep1), \
1250 #define S390_CC_FOR_DFP128_TD(opcode,cc_dep1,cc_dep2,cc_ndep) \
1260 : [high] "f"(cc_dep1), [low] "f"(cc_dep2), \
1266 #define S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,rounding_mode) \
1271 : [op] "f"(cc_dep1) \
1276 #define S390_CC_FOR_DFP_CONVERT(opcode,cc_dep1,cc_dep2) \
1282 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,1); \
1286 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,3); \
1290 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,4); \
1294 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,5); \
1298 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,6); \
1302 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,7); \
1305 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,13); \
1308 cc = S390_CC_FOR_DFP_CONVERT_AUX(opcode,cc_dep1,14); \
1316 #define S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,rounding_mode) \
1321 : [op] "f"(cc_dep1) \
1326 #define S390_CC_FOR_DFP_UCONVERT(opcode,cc_dep1,cc_dep2) \
1332 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,1); \
1336 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,3); \
1340 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,4); \
1344 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,5); \
1348 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,6); \
1352 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,7); \
1355 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,13); \
1358 cc = S390_CC_FOR_DFP_UCONVERT_AUX(opcode,cc_dep1,14); \
1378 #define S390_CC_FOR_DFP128_CONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
1387 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,1); \
1391 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,3); \
1395 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
1399 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
1403 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
1407 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
1410 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,13); \
1413 cc = S390_CC_FOR_DFP128_CONVERT_AUX(opcode,cc_dep1,cc_dep2,14); \
1433 #define S390_CC_FOR_DFP128_UCONVERT(opcode,cc_dep1,cc_dep2,cc_ndep) \
1442 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,1); \
1446 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,3); \
1450 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,4); \
1454 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,5); \
1458 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,6); \
1462 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,7); \
1465 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,13); \
1468 cc = S390_CC_FOR_DFP128_UCONVERT_AUX(opcode,cc_dep1,cc_dep2,14); \
1481 s390_calculate_cc(ULong cc_op, ULong cc_dep1, ULong cc_dep2, ULong cc_ndep)
1489 return S390_CC_FOR_BINARY("ogr", cc_dep1, (ULong)0);
1492 return S390_CC_FOR_BINARY("cgr", cc_dep1, cc_dep2);
1495 return S390_CC_FOR_BINARY("clgr", cc_dep1, cc_dep2);
1498 return S390_CC_FOR_BINARY("agr", cc_dep1, cc_dep2);
1501 return S390_CC_FOR_BINARY("ar", cc_dep1, cc_dep2);
1504 return S390_CC_FOR_BINARY("sgr", cc_dep1, cc_dep2);
1507 return S390_CC_FOR_BINARY("sr", cc_dep1, cc_dep2);
1510 return S390_CC_FOR_BINARY("algr", cc_dep1, cc_dep2);
1513 return S390_CC_FOR_BINARY("alr", cc_dep1, cc_dep2);
1516 return S390_CC_FOR_TERNARY_ADDC("alcgr", cc_dep1, cc_dep2, cc_ndep);
1519 return S390_CC_FOR_TERNARY_ADDC("alcr", cc_dep1, cc_dep2, cc_ndep);
1522 return S390_CC_FOR_BINARY("slgr", cc_dep1, cc_dep2);
1525 return S390_CC_FOR_BINARY("slr", cc_dep1, cc_dep2);
1528 return S390_CC_FOR_TERNARY_SUBB("slbgr", cc_dep1, cc_dep2, cc_ndep);
1531 return S390_CC_FOR_TERNARY_SUBB("slbr", cc_dep1, cc_dep2, cc_ndep);
1535 return S390_CC_FOR_BINARY("cgr", cc_dep1, (Long)0);
1540 "ipm %[psw]\n\t" : [psw] "=d"(psw), [result] "=d"(cc_dep1)
1541 : [op] "d"(cc_dep1)
1548 "ipm %[psw]\n\t" : [psw] "=d"(psw), [result] "=d"(cc_dep1)
1549 : [op] "d"(cc_dep1)
1554 UChar value = cc_dep1;
1570 UInt value = cc_dep1;
1585 "ipm %[psw]\n\t" : [psw] "=d"(psw), [op] "+d"(cc_dep1)
1591 Int high = (Int)(cc_dep1 >> 32);
1592 Int low = (Int)(cc_dep1 & 0xFFFFFFFF);
1610 inserted |= cc_dep1 & 0xff;
1614 inserted |= cc_dep1 & 0xff00;
1618 inserted |= cc_dep1 & 0xff0000;
1622 inserted |= cc_dep1 & 0xff000000;
1634 return S390_CC_FOR_BFP_RESULT("ltebr", cc_dep1);
1637 return S390_CC_FOR_BFP_RESULT("ltdbr", cc_dep1);
1640 return S390_CC_FOR_BFP128_RESULT(cc_dep1, cc_dep2);
1643 return S390_CC_FOR_BFP_CONVERT("cfebr", cc_dep1, cc_dep2);
1646 return S390_CC_FOR_BFP_CONVERT("cfdbr", cc_dep1, cc_dep2);
1649 return S390_CC_FOR_BFP128_CONVERT("cfxbr", cc_dep1, cc_dep2, cc_ndep);
1652 return S390_CC_FOR_BFP_CONVERT("cgebr", cc_dep1, cc_dep2);
1655 return S390_CC_FOR_BFP_CONVERT("cgdbr", cc_dep1, cc_dep2);
1658 return S390_CC_FOR_BFP128_CONVERT("cgxbr", cc_dep1, cc_dep2, cc_ndep);
1661 return S390_CC_FOR_BFP_TDC("tceb", cc_dep1, cc_dep2);
1664 return S390_CC_FOR_BFP_TDC("tcdb", cc_dep1, cc_dep2);
1667 return S390_CC_FOR_BFP128_TDC(cc_dep1, cc_dep2, cc_ndep);
1670 return cc_dep1;
1673 return S390_CC_FOR_BFP_UCONVERT(".insn rrf,0xb39c0000", cc_dep1, cc_dep2);
1676 return S390_CC_FOR_BFP_UCONVERT(".insn rrf,0xb39d0000", cc_dep1, cc_dep2);
1679 return S390_CC_FOR_BFP128_UCONVERT(".insn rrf,0xb39e0000", cc_dep1,
1683 return S390_CC_FOR_BFP_UCONVERT(".insn rrf,0xb3ac0000", cc_dep1, cc_dep2);
1686 return S390_CC_FOR_BFP_UCONVERT(".insn rrf,0xb3ad0000", cc_dep1, cc_dep2);
1689 return S390_CC_FOR_BFP128_UCONVERT(".insn rrf,0xb3ae0000", cc_dep1,
1693 return S390_CC_FOR_DFP_RESULT(cc_dep1);
1696 return S390_CC_FOR_DFP128_RESULT(cc_dep1, cc_dep2);
1699 return S390_CC_FOR_DFP_TD(".insn rxe, 0xed0000000050", cc_dep1, cc_dep2);
1702 return S390_CC_FOR_DFP_TD(".insn rxe, 0xed0000000054", cc_dep1, cc_dep2);
1705 return S390_CC_FOR_DFP128_TD(".insn rxe, 0xed0000000058", cc_dep1,
1709 return S390_CC_FOR_DFP_TD(".insn rxe, 0xed0000000051", cc_dep1, cc_dep2);
1712 return S390_CC_FOR_DFP_TD(".insn rxe, 0xed0000000055", cc_dep1, cc_dep2);
1715 return S390_CC_FOR_DFP128_TD(".insn rxe, 0xed0000000059", cc_dep1,
1719 return S390_CC_FOR_DFP_CONVERT(".insn rrf,0xb9410000", cc_dep1, cc_dep2);
1722 return S390_CC_FOR_DFP128_CONVERT(".insn rrf,0xb9490000", cc_dep1,
1726 return S390_CC_FOR_DFP_CONVERT(".insn rrf,0xb3e10000", cc_dep1, cc_dep2);
1729 return S390_CC_FOR_DFP128_CONVERT(".insn rrf,0xb3e90000", cc_dep1,
1733 return S390_CC_FOR_DFP_UCONVERT(".insn rrf,0xb9430000", cc_dep1, cc_dep2);
1736 return S390_CC_FOR_DFP128_UCONVERT(".insn rrf,0xb94b0000", cc_dep1,
1740 return S390_CC_FOR_DFP_UCONVERT(".insn rrf,0xb9420000", cc_dep1, cc_dep2);
1743 return S390_CC_FOR_DFP128_UCONVERT(".insn rrf,0xb94a0000", cc_dep1,
1748 "ler 4, %[cc_dep1]\n\t" /* 32 bit FR move */
1752 : [cc_dep1] "f"(cc_dep1),
1760 "ldr 4, %[cc_dep1]\n\t"
1764 : [cc_dep1] "f"(cc_dep1),
1772 "ldr 4,%[cc_dep1]\n\t"
1777 : [cc_dep1] "f"(cc_dep1),
1847 IRExpr *cond_expr, *cc_op_expr, *cc_dep1, *cc_dep2;
1871 cc_dep1 = args[2];
1877 cc == 0 --> cc_dep1 == cc_dep2 (cond == 8)
1878 cc == 1 --> cc_dep1 < cc_dep2 (cond == 4)
1879 cc == 2 --> cc_dep1 > cc_dep2 (cond == 2)
1885 return unop(Iop_1Uto32, binop(Iop_CmpEQ64, cc_dep1, cc_dep2));
1888 return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, cc_dep2));
1891 return unop(Iop_1Uto32, binop(Iop_CmpLT64S, cc_dep1, cc_dep2));
1894 return unop(Iop_1Uto32, binop(Iop_CmpLE64S, cc_dep1, cc_dep2));
1896 /* cc_dep1 > cc_dep2 ----> cc_dep2 < cc_dep1 */
1898 return unop(Iop_1Uto32, binop(Iop_CmpLT64S, cc_dep2, cc_dep1));
1901 return unop(Iop_1Uto32, binop(Iop_CmpLE64S, cc_dep2, cc_dep1));
1913 cc == 0 --> cc_dep1 == cc_dep2 (cond == 8)
1914 cc == 1 --> cc_dep1 < cc_dep2 (cond == 4)
1915 cc == 2 --> cc_dep1 > cc_dep2 (cond == 2)
1921 return unop(Iop_1Uto32, binop(Iop_CmpEQ64, cc_dep1, cc_dep2));
1924 return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, cc_dep2));
1927 return unop(Iop_1Uto32, binop(Iop_CmpLT64U, cc_dep1, cc_dep2));
1930 return unop(Iop_1Uto32, binop(Iop_CmpLE64U, cc_dep1, cc_dep2));
1932 /* cc_dep1 > cc_dep2 ----> cc_dep2 < cc_dep1 */
1934 return unop(Iop_1Uto32, binop(Iop_CmpLT64U, cc_dep2, cc_dep1));
1937 return unop(Iop_1Uto32, binop(Iop_CmpLE64U, cc_dep2, cc_dep1));
1949 cc == 0 --> cc_dep1 == 0 (cond == 8)
1950 cc == 1 --> cc_dep1 < 0 (cond == 4)
1951 cc == 2 --> cc_dep1 > 0 (cond == 2)
1957 return unop(Iop_1Uto32, binop(Iop_CmpEQ64, cc_dep1, mkU64(0)));
1960 return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, mkU64(0)));
1966 return unop(Iop_64to32, binop(Iop_Shr64, cc_dep1, mkU8(63)));
1969 return unop(Iop_1Uto32, binop(Iop_CmpLE64S, cc_dep1, mkU64(0)));
1971 /* cc_dep1 > 0 ----> 0 < cc_dep1 */
1973 return unop(Iop_1Uto32, binop(Iop_CmpLT64S, mkU64(0), cc_dep1));
1980 binop(Iop_Shr64, cc_dep1, mkU8(63)),
1993 cc_dep1 is the result of the boolean operation.
1995 cc == 0 --> cc_dep1 == 0 (cond == 8)
1996 cc == 1 --> cc_dep1 != 0 (cond == 4)
2010 return unop(Iop_1Uto32, binop(Iop_CmpEQ64, cc_dep1, mkU64(0)));
2013 return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, mkU64(0)));
2033 word = unop(Iop_64to32, cc_dep1);
2115 binop(Iop_And64, cc_dep1, cc_dep2),
2120 binop(Iop_And64, cc_dep1, cc_dep2),
2125 binop(Iop_And64, cc_dep1, cc_dep2),
2130 binop(Iop_And64, cc_dep1, cc_dep2),
2158 cc_dep1, cc_dep2),
2163 binop(Iop_And64, cc_dep1, cc_dep2),
2168 binop(Iop_And64, cc_dep1, cc_dep2),
2173 binop(Iop_And64, cc_dep1, cc_dep2),
2187 binop(Iop_And64, cc_dep1, mkU64(msb)), mkU64(0));
2189 binop(Iop_And64, cc_dep1, cc_dep2),
2200 binop(Iop_And64, cc_dep1, mkU64(msb)), mkU64(0));
2202 binop(Iop_And64, cc_dep1, cc_dep2),
2212 binop(Iop_And64, cc_dep1, mkU64(msb)), mkU64(0));
2214 binop(Iop_And64, cc_dep1, cc_dep2),
2223 binop(Iop_And64, cc_dep1, mkU64(msb)),
2229 binop(Iop_And64, cc_dep1, mkU64(msb)),
2235 c01 = binop(Iop_CmpEQ64, binop(Iop_And64, cc_dep1, mkU64(msb)),
2237 c3 = binop(Iop_CmpEQ64, binop(Iop_And64, cc_dep1, cc_dep2),
2251 cc_dep1, cc_dep2 are the zero extended left and right operands
2257 cc = (cc_dep1 == cc_dep2) ? 2
2258 : (cc_dep1 > cc_dep2) ? 3 : 1;
2264 return unop(Iop_1Uto32, binop(Iop_CmpLT64U, cc_dep2, cc_dep1));
2267 return unop(Iop_1Uto32, binop(Iop_CmpEQ64, cc_dep1, cc_dep2));
2270 return unop(Iop_1Uto32, binop(Iop_CmpLT64U, cc_dep1, cc_dep2));
2273 return unop(Iop_1Uto32, binop(Iop_CmpLE64U, cc_dep2, cc_dep1));
2276 return unop(Iop_1Uto32, binop(Iop_CmpLE64U, cc_dep1, cc_dep2));
2280 return unop(Iop_1Uto32, binop(Iop_CmpNE64, cc_dep1, cc_dep2));
2292 cc_dep1, cc_dep2 are the zero extended left and right operands
2302 binop(Iop_Or64, cc_dep1, cc_dep2),
2308 binop(Iop_Or64, cc_dep1, cc_dep2),
2313 binop(Iop_Add64, cc_dep1, cc_dep2),
2318 binop(Iop_Add64, cc_dep1, cc_dep2),
2327 cc_dep1, cc_dep2 are the zero extended left and right operands
2337 binop(Iop_Or64, cc_dep1, cc_dep2),
2343 binop(Iop_Or64, cc_dep1, cc_dep2),
2349 unop(Iop_64to32, cc_dep1),
2356 unop(Iop_64to32, cc_dep1),
2365 /* cc_dep1 is the condition code
2367 Return 1, if ((cond << cc_dep1) & 0x8) != 0 */
2373 unop(Iop_64to8, cc_dep1)),
2384 IRExpr *cc_op_expr, *cc_dep1;
2396 cc_dep1 = args[1];
2400 binop(Iop_CmpNE64, cc_dep1, mkU64(0)));
2404 return unop(Iop_64to32, cc_dep1);