Home | History | Annotate | Download | only in x86

Lines Matching defs:infoArray

531     compileTableEntry* infoArray = compileTable;
564 infoArray[entry].isConst = true;
565 infoArray[entry].value[0] = tmpValue[0];
737 infoArray[entry].isConst = true;
739 infoArray[entry].value[0] = -tmpValue[0];
741 infoArray[entry].value[0] = ~tmpValue[0]; //CHECK
743 infoArray[entry].value[0] = tmpValue[0];
745 infoArray[entry].value[0] = (tmpValue[0] << 24) >> 24;
747 infoArray[entry].value[0] = ((unsigned int)(tmpValue[0] << 16)) >> 16;
749 infoArray[entry].value[0] = (tmpValue[0] << 16) >> 16;
750 tmpValue[0] = infoArray[entry].value[0];
755 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
803 infoArray[entry].isConst = true;
805 infoArray[entry].value[0] = tmpValue[0] + tmpValue2[0];
807 infoArray[entry].value[0] = tmpValue[0] - tmpValue2[0];
809 infoArray[entry].value[0] = tmpValue[0] * tmpValue2[0];
811 infoArray[entry].value[0] = tmpValue[0] / tmpValue2[0];
813 infoArray[entry].value[0] = tmpValue[0] % tmpValue2[0];
815 infoArray[entry].value[0] = tmpValue[0] & tmpValue2[0];
817 infoArray[entry].value[0] = tmpValue[0] | tmpValue2[0];
819 infoArray[entry].value[0] = tmpValue[0] ^ tmpValue2[0];
821 infoArray[entry].value[0] = tmpValue[0] << tmpValue2[0];
823 infoArray[entry].value[0] = tmpValue[0] >> tmpValue2[0];
825 infoArray[entry].value[0] = (unsigned int)tmpValue[0] >> tmpValue2[0];
826 tmpValue[0] = infoArray[entry].value[0];
831 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
851 infoArray[entry].isConst = true;
853 infoArray[entry].value[0] = tmpValue[0] + tmp_s4;
855 infoArray[entry].value[0] = tmp_s4 - tmpValue[0];
857 infoArray[entry].value[0] = tmpValue[0] * tmp_s4;
859 infoArray[entry].value[0] = tmpValue[0] / tmp_s4;
861 infoArray[entry].value[0] = tmpValue[0] % tmp_s4;
863 infoArray[entry].value[0] = tmpValue[0] & tmp_s4;
865 infoArray[entry].value[0] = tmpValue[0] | tmp_s4;
867 infoArray[entry].value[0] = tmpValue[0] ^ tmp_s4;
868 tmpValue[0] = infoArray[entry].value[0];
873 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
897 infoArray[entry].isConst = true;
899 infoArray[entry].value[0] = tmpValue[0] + tmpValue2[0];
901 infoArray[entry].value[0] = tmpValue[0] - tmpValue2[0];
903 infoArray[entry].value[0] = tmpValue[0] * tmpValue2[0];
905 infoArray[entry].value[0] = tmpValue[0] / tmpValue2[0];
907 infoArray[entry].value[0] = tmpValue[0] % tmpValue2[0];
909 infoArray[entry].value[0] = tmpValue[0] & tmpValue2[0];
911 infoArray[entry].value[0] = tmpValue[0] | tmpValue2[0];
913 infoArray[entry].value[0] = tmpValue[0] ^ tmpValue2[0];
915 infoArray[entry].value[0] = tmpValue[0] << tmpValue2[0];
917 infoArray[entry].value[0] = tmpValue[0] >> tmpValue2[0];
919 infoArray[entry].value[0] = (unsigned int)tmpValue[0] >> tmpValue2[0];
920 tmpValue[0] = infoArray[entry].value[0];
926 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
949 infoArray[entry].isConst = true;
951 infoArray[entry].value[0] = tmpValue[0] + tmp_s4;
953 infoArray[entry].value[0] = tmp_s4 - tmpValue[0];
955 infoArray[entry].value[0] = tmpValue[0] * tmp_s4;
957 infoArray[entry].value[0] = tmpValue[0] / tmp_s4;
959 infoArray[entry].value[0] = tmpValue[0] % tmp_s4;
961 infoArray[entry].value[0] = tmpValue[0] & tmp_s4;
963 infoArray[entry].value[0] = tmpValue[0] | tmp_s4;
965 infoArray[entry].value[0] = tmpValue[0] ^ tmp_s4;
967 infoArray[entry].value[0] = tmpValue[0] << tmp_s4;
969 infoArray[entry].value[0] = tmpValue[0] >> tmp_s4;
971 infoArray[entry].value[0] = (unsigned int)tmpValue[0] >> tmp_s4;
972 tmpValue[0] = infoArray[entry].value[0];
977 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
1031 infoArray[entry].isConst = true;
1032 infoArray[entry].value[0] = tmp_s4;
1033 tmpValue[0] = infoArray[entry].value[0];
1044 infoArray[entry].isConst = true;
1045 infoArray[entry].value[0] = (s2)BBBB;
1046 tmpValue[0] = infoArray[entry].value[0];
1050 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
1058 infoArray[entry].isConst = true;
1059 infoArray[entry].value[0] = (s4)tmp_u4;
1060 tmpValue[0] = infoArray[entry].value[0];
1064 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
1071 infoArray[entry].isConst = true;
1072 infoArray[entry].value[0] = (s4)tmp_u2<<16;
1073 tmpValue[0] = infoArray[entry].value[0];
1077 LOGD("getConstInfo: set VR %d to %d", vA, infoArray[entry].value[0]);
1084 infoArray[entry].isConst = true;
1085 infoArray[entry].value[0] = (s2)tmp_u2;
1086 tmpValue[0] = infoArray[entry].value[0];
1089 LOGD("getConstInfo: set VR %d to %x", vA, infoArray[entry].value[0]);
1093 infoArray[entry].isConst = true;
1094 infoArray[entry].value[0] = (s2)tmp_u2>>31;
1095 tmpValue[1] = infoArray[entry].value[0];
1099 LOGD("getConstInfo: set VR %d to %x", vA+1, infoArray[entry].value[0]);
1107 infoArray[entry].isConst = true;
1108 infoArray[entry].value[0] = (s4)tmp_u4;
1109 tmpValue[0] = infoArray[entry].value[0];
1112 LOGD("getConstInfo: set VR %d to %x", vA, infoArray[entry].value[0]);
1116 infoArray[entry].isConst = true;
1117 infoArray[entry].value[0] = (s4)tmp_u4>>31;
1118 tmpValue[1] = infoArray[entry].value[0];
1122 LOGD("getConstInfo: set VR %d to %x", vA+1, infoArray[entry].value[0]);
1130 infoArray[entry].isConst = true;
1131 infoArray[entry].value[0] = (s4)tmp_u4;
1132 tmpValue[0] = infoArray[entry].value[0];
1135 LOGD("getConstInfo: set VR %d to %x", vA, infoArray[entry].value[0]);
1141 infoArray[entry].isConst = true;
1142 infoArray[entry].value[0] = (s4)tmp_u4;
1143 tmpValue[1] = infoArray[entry].value[0];
1147 LOGD("getConstInfo: set VR %d to %x", vA+1, infoArray[entry].value[0]);
1154 infoArray[entry].isConst = true;
1155 infoArray[entry].value[0] = 0;
1156 tmpValue[0] = infoArray[entry].value[0];
1159 LOGD("getConstInfo: set VR %d to %x", vA, infoArray[entry].value[0]);
1163 infoArray[entry].isConst = true;
1164 infoArray[entry].value[0] = (s4)tmp_u2<<16;
1165 tmpValue[1] = infoArray[entry].value[0];
1169 LOGD("getConstInfo: set VR %d to %x", vA+1, infoArray[entry].value[0]);
1212 //! This function updates infoArray with virtual registers accessed when lowering the bytecode, and returns size of the bytecode in unit of u2
1214 //! uses of virtual registers are added to infoArray first
1215 int getVirtualRegInfo(VirtualRegInfo* infoArray) {
1226 //update infoArray[xx].allocConstraints
1229 infoArray[num].allocConstraints[kk].physicalReg = (PhysicalReg)kk;
1230 infoArray[num].allocConstraints[kk].count = 0;
1259 infoArray[1].regNum = vA; //dst
1260 infoArray[1].refCount = 1;
1261 infoArray[1].accessType = REGACCESS_D;
1262 infoArray[1].physicalType = LowOpndRegType_gp;
1263 infoArray[0].regNum = vB; //src
1264 infoArray[0].refCount = 1;
1265 infoArray[0].accessType = REGACCESS_U;
1266 infoArray[0].physicalType = LowOpndRegType_gp;
1287 infoArray[1].regNum = vA; //dst
1288 infoArray[1].refCount = 1;
1289 infoArray[1].accessType = REGACCESS_D;
1290 infoArray[1].physicalType = LowOpndRegType_xmm;
1291 infoArray[0].regNum = vB; //src
1292 infoArray[0].refCount = 1;
1293 infoArray[0].accessType = REGACCESS_U;
1294 infoArray[0].physicalType = LowOpndRegType_xmm;
1300 infoArray[0].regNum = vA; //dst
1301 infoArray[0].refCount = 1;
1302 infoArray[0].accessType = REGACCESS_D;
1303 infoArray[0].physicalType = LowOpndRegType_gp;
1309 infoArray[0].regNum = vA; //dst
1310 infoArray[0].refCount = 1;
1311 infoArray[0].accessType = REGACCESS_D;
1312 infoArray[0].physicalType = LowOpndRegType_xmm;
1318 infoArray[0].regNum = vA; //dst
1319 infoArray[0].refCount = 1;
1320 infoArray[0].accessType = REGACCESS_D;
1321 infoArray[0].physicalType = LowOpndRegType_gp;
1335 infoArray[0].regNum = vA; //src
1336 infoArray[0].refCount = 1;
1337 infoArray[0].accessType = REGACCESS_U;
1338 infoArray[0].physicalType = LowOpndRegType_gp;
1344 infoArray[0].regNum = vA; //src
1345 infoArray[0].refCount = 1;
1346 infoArray[0].accessType = REGACCESS_U;
1347 infoArray[0].physicalType = LowOpndRegType_xmm;
1354 infoArray[0].regNum = vA; //dst
1355 infoArray[0].refCount = 1;
1356 infoArray[0].accessType = REGACCESS_D;
1357 infoArray[0].physicalType = LowOpndRegType_gp;
1363 infoArray[0].regNum = vA; //dst
1364 infoArray[0].refCount = 1;
1365 infoArray[0].accessType = REGACCESS_D;
1366 infoArray[0].physicalType = LowOpndRegType_gp;
1374 infoArray[0].regNum = vA; //dst
1375 infoArray[0].refCount = 1;
1376 infoArray[0].accessType = REGACCESS_D;
1377 infoArray[0].physicalType = LowOpndRegType_gp;
1383 infoArray[0].regNum = vA; //dst
1384 infoArray[0].refCount = 1;
1385 infoArray[0].accessType = REGACCESS_D;
1386 infoArray[0].physicalType = LowOpndRegType_gp;
1392 infoArray[0].regNum = vA; //dst
1393 infoArray[0].refCount = 1;
1394 infoArray[0].accessType = REGACCESS_D;
1395 infoArray[0].physicalType = LowOpndRegType_gp;
1396 infoArray[1].regNum = vA+1;
1397 infoArray[1].refCount = 1;
1398 infoArray[1].accessType = REGACCESS_D;
1399 infoArray[1].physicalType = LowOpndRegType_gp;
1407 infoArray[0].regNum = vA; //dst
1408 infoArray[0].refCount = 1;
1409 infoArray[0].accessType = REGACCESS_D;
1410 infoArray[0].physicalType = LowOpndRegType_gp;
1411 infoArray[1].regNum = vA+1;
1412 infoArray[1].refCount = 1;
1413 infoArray[1].accessType = REGACCESS_D;
1414 infoArray[1].physicalType = LowOpndRegType_gp;
1422 infoArray[0].regNum = vA; //dst
1423 infoArray[0].refCount = 1;
1424 infoArray[0].accessType = REGACCESS_D;
1425 infoArray[0].physicalType = LowOpndRegType_gp;
1428 infoArray[1].regNum = vA+1;
1429 infoArray[1].refCount = 1;
1430 infoArray[1].accessType = REGACCESS_D;
1431 infoArray[1].physicalType = LowOpndRegType_gp;
1437 infoArray[0].regNum = vA; //dst
1438 infoArray[0].refCount = 1;
1439 infoArray[0].accessType = REGACCESS_D;
1440 infoArray[0].physicalType = LowOpndRegType_gp;
1441 infoArray[1].regNum = vA+1;
1442 infoArray[1].refCount = 1;
1443 infoArray[1].accessType = REGACCESS_D;
1444 infoArray[1].physicalType = LowOpndRegType_gp;
1456 infoArray[0].regNum = vA; //dst
1457 infoArray[0].refCount = 1;
1458 infoArray[0].accessType = REGACCESS_D;
1459 infoArray[0].physicalType = LowOpndRegType_gp;
1460 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1;
1467 infoArray[0].regNum = vA; //src
1468 infoArray[0].refCount = 1;
1469 infoArray[0].accessType = REGACCESS_U;
1470 infoArray[0].physicalType = LowOpndRegType_gp;
1476 infoArray[0].regNum = vA; //src
1477 infoArray[0].refCount = 1;
1478 infoArray[0].accessType = REGACCESS_U;
1479 infoArray[0].physicalType = LowOpndRegType_gp;
1487 infoArray[0].regNum = vA; //src
1488 infoArray[0].refCount = 1;
1489 infoArray[0].accessType = REGACCESS_U;
1490 infoArray[0].physicalType = LowOpndRegType_gp;
1500 infoArray[0].regNum = vB; //src
1501 infoArray[0].refCount = 1;
1502 infoArray[0].accessType = REGACCESS_U;
1503 infoArray[0].physicalType = LowOpndRegType_gp;
1504 infoArray[1].regNum = vA; //dst
1505 infoArray[1].refCount = 1;
1506 infoArray[1].accessType = REGACCESS_D;
1507 infoArray
1515 infoArray[0].regNum = vB; //src
1516 infoArray[0].refCount = 1;
1517 infoArray[0].accessType = REGACCESS_U;
1518 infoArray[0].physicalType = LowOpndRegType_gp;
1519 infoArray[1].regNum = vA; //dst
1520 infoArray[1].refCount = 1;
1521 infoArray[1].accessType = REGACCESS_D;
1522 infoArray[1].physicalType = LowOpndRegType_gp;
1529 infoArray[0].regNum = vA; //dst
1530 infoArray[0].refCount = 1;
1531 infoArray[0].accessType = REGACCESS_D;
1532 infoArray[0].physicalType = LowOpndRegType_gp;
1533 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1;
1543 infoArray[0].regNum = vB; //src
1544 infoArray[0].refCount = 1;
1545 infoArray[0].accessType = REGACCESS_U;
1546 infoArray[0].physicalType = LowOpndRegType_gp;
1547 infoArray[1].regNum = vA; //dst
1548 infoArray[1].refCount = 1;
1549 infoArray[1].accessType = REGACCESS_D;
1550 infoArray[1].physicalType = LowOpndRegType_gp;
1551 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1;
1567 infoArray[0].regNum = v1; //src
1568 infoArray[0].refCount = 1;
1569 infoArray[0].accessType = REGACCESS_U;
1570 infoArray[0].physicalType = LowOpndRegType_gp;
1573 infoArray[1].regNum = v2; //src
1574 infoArray[1].refCount = 1;
1575 infoArray[1].accessType = REGACCESS_U;
1576 infoArray[1].physicalType = LowOpndRegType_gp;
1579 infoArray[2].regNum = v3; //src
1580 infoArray[2].refCount = 1;
1581 infoArray[2].accessType = REGACCESS_U;
1582 infoArray[2].physicalType = LowOpndRegType_gp;
1585 infoArray[3].regNum = v4; //src
1586 infoArray[3].refCount = 1;
1587 infoArray[3].accessType = REGACCESS_U;
1588 infoArray[3].physicalType = LowOpndRegType_gp;
1591 infoArray[4].regNum = v5; //src
1592 infoArray[4].refCount = 1;
1593 infoArray[4].accessType = REGACCESS_U;
1594 infoArray[4].physicalType = LowOpndRegType_gp;
1606 infoArray[kk].regNum = vC+kk; //src
1607 infoArray[kk].refCount = 1;
1608 infoArray[kk].accessType = REGACCESS_U;
1609 infoArray[kk].physicalType = LowOpndRegType_gp;
1619 infoArray[0].regNum = vA; //use
1620 infoArray[0].refCount = 1;
1621 infoArray[0].accessType = REGACCESS_U;
1622 infoArray[0].physicalType = LowOpndRegType_gp;
1630 infoArray[0].regNum = vA; //use
1631 infoArray[0].refCount = 1;
1632 infoArray[0].accessType = REGACCESS_U;
1633 infoArray[0].physicalType = LowOpndRegType_gp;
1658 infoArray[0].regNum = vA; //use
1659 infoArray[0].refCount = 1;
1660 infoArray[0].accessType = REGACCESS_U;
1661 infoArray[0].physicalType = LowOpndRegType_gp;
1674 infoArray[0].regNum = v1_u4; //use ss or sd CHECK
1675 infoArray[0].refCount = 1;
1676 infoArray[0].accessType = REGACCESS_U;
1677 infoArray[0].physicalType = LowOpndRegType_ss;
1678 infoArray[1].regNum = v2_u4; //use
1679 infoArray[1].refCount = 1;
1680 infoArray[1].accessType = REGACCESS_U;
1681 infoArray[1].physicalType = LowOpndRegType_ss;
1684 infoArray[num_entry].regNum = vA; //define
1685 infoArray[num_entry].refCount = 1;
1686 infoArray[num_entry].accessType = REGACCESS_D;
1687 infoArray[num_entry].physicalType = LowOpndRegType_gp;
1698 infoArray[0].regNum = v1_u4; //use
1699 infoArray[0].refCount = 1;
1700 infoArray[0].accessType = REGACCESS_U;
1701 infoArray[0].physicalType = LowOpndRegType_gp;
1702 infoArray[1].regNum = v1_u4 + 1; //use
1703 infoArray[1].refCount = 1;
1704 infoArray[1].accessType = REGACCESS_U;
1705 infoArray[1].physicalType = LowOpndRegType_gp;
1706 infoArray[2].regNum = v2_u4; //use
1707 infoArray[2].refCount = 1;
1708 infoArray[2].accessType = REGACCESS_U;
1709 infoArray[2].physicalType = LowOpndRegType_gp;
1710 infoArray[3].regNum = v2_u4 + 1; //use
1711 infoArray[3].refCount = 1;
1712 infoArray[3].accessType = REGACCESS_U;
1713 infoArray[3].physicalType = LowOpndRegType_gp;
1716 infoArray[num_entry].regNum = vA; //define
1717 infoArray[num_entry].refCount = 2;
1718 infoArray[num_entry].accessType = REGACCESS_D;
1719 infoArray[num_entry].physicalType = LowOpndRegType_gp;
1722 infoArray[0].regNum = v1_u4; //use ss or sd CHECK
1723 infoArray[0].refCount = 1;
1724 infoArray[0].accessType = REGACCESS_U;
1725 infoArray[0].physicalType = LowOpndRegType_xmm;
1726 infoArray[1].regNum = v2_u4; //use
1727 infoArray[1].refCount = 1;
1728 infoArray[1].accessType = REGACCESS_U;
1729 infoArray[1].physicalType = LowOpndRegType_xmm;
1732 infoArray[num_entry].regNum = vA; //define
1733 infoArray[num_entry].refCount = 1;
1734 infoArray[num_entry].accessType = REGACCESS_D;
1735 infoArray[num_entry].physicalType = LowOpndRegType_gp;
1746 infoArray[0].regNum = vA; //use
1747 infoArray[0].refCount = 1;
1748 infoArray[0].accessType = REGACCESS_U;
1749 infoArray[0].physicalType = LowOpndRegType_gp;
1750 infoArray[1].regNum = vB;
1751 infoArray[1].refCount = 1;
1752 infoArray[1].accessType = REGACCESS_U;
1753 infoArray[1].physicalType = LowOpndRegType_gp;
1764 infoArray[0].regNum = vA; //use
1765 infoArray[0].refCount = 1;
1766 infoArray[0].accessType = REGACCESS_U;
1767 infoArray[0].physicalType = LowOpndRegType_gp;
1789 infoArray[2].regNum = vA;
1790 infoArray[2].refCount = 1;
1791 infoArray[2].accessType = REGACCESS_D;
1792 infoArray[2].physicalType = LowOpndRegType_xmm; //64, 128 not used in lowering
1794 infoArray[2].regNum = vA;
1795 infoArray[2].refCount = 1;
1796 infoArray[2].accessType = REGACCESS_D;
1797 infoArray[2].physicalType = LowOpndRegType_gp;
1799 infoArray[0].regNum = vref; //use
1800 infoArray[0].refCount = 1;
1801 infoArray[0].accessType = REGACCESS_U;
1802 infoArray[0].physicalType = LowOpndRegType_gp;
1803 infoArray[1].regNum = vindex; //use
1804 infoArray[1].refCount = 1;
1805 infoArray[1].accessType = REGACCESS_U;
1806 infoArray[1].physicalType = LowOpndRegType_gp;
1821 infoArray[0].regNum = vA;
1822 infoArray[0].refCount = 1;
1823 infoArray[0].accessType = REGACCESS_U;
1824 infoArray[0].physicalType = LowOpndRegType_xmm; //64, 128 not used in lowering
1826 infoArray[0].regNum = vA;
1827 infoArray[0].refCount = 1;
1828 infoArray[0].accessType = REGACCESS_U;
1829 infoArray[0].physicalType = LowOpndRegType_gp;
1831 infoArray[1].regNum = vref; //use
1832 infoArray[1].refCount = 1;
1833 infoArray[1].accessType = REGACCESS_U;
1834 infoArray[1].physicalType = LowOpndRegType_gp;
1835 infoArray[2].regNum = vindex; //use
1836 infoArray[2].refCount = 1;
1837 infoArray[2].accessType = REGACCESS_U;
1838 infoArray[2].physicalType = LowOpndRegType_gp;
1863 infoArray[1].regNum = vA;
1864 infoArray[1].refCount = 1;
1865 infoArray[1].accessType = REGACCESS_D;
1866 infoArray[1].physicalType = LowOpndRegType_xmm; //64
1868 infoArray[1].regNum = vA;
1869 infoArray[1].refCount = 1;
1870 infoArray[1].accessType = REGACCESS_D;
1871 infoArray[1].physicalType = LowOpndRegType_gp;
1872 infoArray[2].regNum = vA+1;
1873 infoArray[2].refCount = 1;
1874 infoArray[2].accessType = REGACCESS_D;
1875 infoArray[2].physicalType = LowOpndRegType_gp;
1877 infoArray[1].regNum = vA;
1878 infoArray[1].refCount = 1;
1879 infoArray[1].accessType = REGACCESS_D;
1880 infoArray[1].physicalType = LowOpndRegType_gp;
1882 infoArray[0].regNum = vB; //object instance
1883 infoArray[0].refCount = 1;
1884 infoArray[0].accessType = REGACCESS_U;
1885 infoArray[0].physicalType = LowOpndRegType_gp;
1910 infoArray[0].regNum = vA;
1911 infoArray[0].refCount = 1;
1912 infoArray[0].accessType = REGACCESS_U;
1913 infoArray[0].physicalType = LowOpndRegType_xmm; //64
1915 infoArray[0].regNum = vA;
1916 infoArray[0].refCount = 1;
1917 infoArray[0].accessType = REGACCESS_U;
1918 infoArray[0].physicalType = LowOpndRegType_gp;
1920 infoArray[1].regNum = vB; //object instance
1921 infoArray[1].refCount = 1;
1922 infoArray[1].accessType = REGACCESS_U;
1923 infoArray[1].physicalType = LowOpndRegType_gp;
1941 infoArray[0].regNum = vA;
1942 infoArray[0].refCount = 1;
1943 infoArray[0].accessType = REGACCESS_D;
1944 infoArray[0].physicalType = LowOpndRegType_xmm; //64
1946 infoArray[0].regNum = vA;
1947 infoArray[0].refCount = 1;
1948 infoArray[0].accessType = REGACCESS_D;
1949 infoArray[0].physicalType = LowOpndRegType_gp;
1950 infoArray[1].regNum = vA+1;
1951 infoArray[1].refCount = 1;
1952 infoArray[1].accessType = REGACCESS_D;
1953 infoArray[1].physicalType = LowOpndRegType_gp;
1955 infoArray[0].regNum = vA;
1956 infoArray[0].refCount = 1;
1957 infoArray[0].accessType = REGACCESS_D;
1958 infoArray[0].physicalType = LowOpndRegType_gp;
1979 infoArray[0].regNum = vA;
1980 infoArray[0].refCount = 1;
1981 infoArray[0].accessType = REGACCESS_U;
1982 infoArray[0].physicalType = LowOpndRegType_xmm; //64
1984 infoArray[0].regNum = vA;
1985 infoArray[0].refCount = 1;
1986 infoArray[0].accessType = REGACCESS_U;
1987 infoArray[0].physicalType = LowOpndRegType_gp;
2011 infoArray[0].regNum = vD;
2012 infoArray[0].refCount = 1;
2013 infoArray[0].accessType = REGACCESS_U;
2014 infoArray[0].physicalType = LowOpndRegType_gp;
2021 infoArray[0].regNum = vD;
2024 infoArray[0].refCount = 2;
2026 infoArray[0].refCount = 2;
2028 infoArray[0].refCount = 1;
2030 infoArray[0].accessType = REGACCESS_U;
2031 infoArray[0].physicalType = LowOpndRegType_gp;
2034 infoArray[1].regNum = vE;
2035 infoArray[1].refCount = 1;
2036 infoArray[1].accessType = REGACCESS_U;
2037 infoArray[1].physicalType = LowOpndRegType_gp;
2040 infoArray[2].regNum = vF;
2041 infoArray[2].refCount = 1;
2042 infoArray[2].accessType = REGACCESS_U;
2043 infoArray[2].physicalType = LowOpndRegType_gp;
2046 infoArray[3].regNum = vG;
2047 infoArray[3].refCount = 1;
2048 infoArray[3].accessType = REGACCESS_U;
2049 infoArray[3].physicalType = LowOpndRegType_gp;
2052 infoArray[4].regNum = vA;
2053 infoArray[4].refCount = 1;
2054 infoArray[4].accessType = REGACCESS_U;
2055 infoArray[4].physicalType = LowOpndRegType_gp;
2076 infoArray[0].regNum = vD;
2077 infoArray[0].refCount = 1;
2078 infoArray[0].accessType = REGACCESS_U;
2079 infoArray[0].physicalType = LowOpndRegType_gp;
2084 infoArray[kk].regNum = vD+kk; //src
2087 infoArray[kk].refCount = 2;
2091 infoArray[kk].refCount = 2;
2093 infoArray[kk].refCount = 1;
2094 infoArray[kk].accessType = REGACCESS_U;
2095 infoArray[kk].physicalType = LowOpndRegType_gp;
2109 infoArray[1].regNum = vA;
2110 infoArray[1].refCount = 1;
2111 infoArray[1].accessType = REGACCESS_D;
2112 infoArray[1].physicalType = LowOpndRegType_gp;
2113 infoArray[0].regNum = vB;
2114 infoArray[0].refCount = 1;
2115 infoArray[0].accessType = REGACCESS_U;
2116 infoArray[0].physicalType = LowOpndRegType_gp;
2126 infoArray[1].regNum = vA;
2127 infoArray[1].refCount = 1;
2128 infoArray[1].accessType = REGACCESS_D;
2129 infoArray[1].physicalType = LowOpndRegType_xmm;
2130 infoArray[0].regNum = vB;
2131 infoArray[0].refCount = 1;
2132 infoArray[0].accessType = REGACCESS_U;
2133 infoArray[0].physicalType = LowOpndRegType_xmm;
2140 infoArray[1].regNum = vA;
2141 infoArray[1].refCount = 1;
2142 infoArray[1].accessType = REGACCESS_D;
2143 infoArray[1].physicalType = LowOpndRegType_gp; //save from %eax
2144 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1;
2145 infoArray[2].regNum = vA+1;
2146 infoArray[2].refCount = 1;
2147 infoArray[2].accessType = REGACCESS_D;
2148 infoArray[2].physicalType = LowOpndRegType_gp;
2149 infoArray[2].allocConstraints[PhysicalReg_EDX].count = 1;
2150 infoArray[0].regNum = vB;
2151 infoArray[0].refCount = 1;
2152 infoArray[0].accessType = REGACCESS_U;
2153 infoArray[0].physicalType = LowOpndRegType_gp;
2154 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1;
2168 infoArray[1].regNum = vA;
2169 infoArray[1].refCount = 1;
2170 infoArray[1].accessType = REGACCESS_D;
2172 infoArray[1].physicalType = LowOpndRegType_fs;
2174 infoArray[1].physicalType = LowOpndRegType_fs_s;
2175 infoArray[0].regNum = vB;
2176 infoArray[0].refCount = 1;
2177 infoArray[0].accessType = REGACCESS_U;
2179 infoArray[0].physicalType = LowOpndRegType_fs_s; //float
2181 infoArray[0].physicalType = LowOpndRegType_fs;
2187 infoArray[1].regNum = vA;
2188 infoArray[1].refCount = 1;
2189 infoArray[1].accessType = REGACCESS_D;
2190 infoArray[1].physicalType = LowOpndRegType_gp;
2191 infoArray[0].regNum = vB;
2192 infoArray[0].refCount = 1;
2193 infoArray[0].accessType = REGACCESS_U;
2194 infoArray[0].physicalType = LowOpndRegType_gp;
2203 infoArray[2].regNum = vA;
2204 infoArray[2].refCount = 3;
2205 infoArray[2].accessType = REGACCESS_D;
2206 infoArray[2].physicalType = LowOpndRegType_gp;
2207 infoArray[1].regNum = vA;
2208 infoArray[1].refCount = 1;
2209 infoArray[1].accessType = REGACCESS_D;
2210 infoArray[1].physicalType = LowOpndRegType_fs_s; //store_int_fp_stack_VR
2211 infoArray[0].regNum = vB;
2212 infoArray[0].refCount = 1;
2213 infoArray[0].accessType = REGACCESS_U;
2215 infoArray[0].physicalType = LowOpndRegType_fs;
2217 infoArray[0].physicalType = LowOpndRegType_fs_s;
2225 infoArray[2].regNum = vA;
2226 infoArray[2].refCount = 3;
2227 infoArray[2].accessType = REGACCESS_D;
2228 infoArray[2].physicalType = LowOpndRegType_xmm;
2229 infoArray[1].regNum = vA;
2230 infoArray[1].refCount = 1;
2231 infoArray[1].accessType = REGACCESS_D;
2232 infoArray[1].physicalType = LowOpndRegType_fs;
2233 infoArray[0].regNum = vB;
2234 infoArray[0].refCount = 1;
2235 infoArray[0].accessType = REGACCESS_U;
2237 infoArray[0].physicalType = LowOpndRegType_fs;
2239 infoArray[0].physicalType = LowOpndRegType_fs_s;
2248 infoArray[1].regNum = vA;
2249 infoArray[1].refCount = 1;
2250 infoArray[1].accessType = REGACCESS_D;
2251 infoArray[1].physicalType = LowOpndRegType_gp;
2252 infoArray[0].regNum = vB;
2253 infoArray[0].refCount = 1;
2254 infoArray[0].accessType = REGACCESS_U;
2255 infoArray[0].physicalType = LowOpndRegType_gp;
2269 infoArray[2].regNum = vA;
2270 infoArray[2].refCount = 1;
2271 infoArray[2].accessType = REGACCESS_D;
2272 infoArray[2].physicalType = LowOpndRegType_gp;
2273 infoArray[0].regNum = v1;
2274 infoArray[0].refCount = 1;
2275 infoArray[0].accessType = REGACCESS_U;
2276 infoArray[0].physicalType = LowOpndRegType_gp;
2277 infoArray[1].regNum = v2;
2278 infoArray[1].refCount = 1;
2279 infoArray[1].accessType = REGACCESS_U;
2280 infoArray[1].physicalType = LowOpndRegType_gp;
2289 infoArray[2].regNum = vA;
2290 infoArray[2].refCount = 2;
2291 infoArray[2].accessType = REGACCESS_D;
2292 infoArray[2].physicalType = LowOpndRegType_gp;
2293 infoArray[0].regNum = v1;
2294 infoArray[0].refCount = 1;
2295 infoArray[0].accessType = REGACCESS_U;
2296 infoArray[0].physicalType = LowOpndRegType_gp;
2297 infoArray[1].regNum = v2;
2298 infoArray[1].refCount = 1;
2299 infoArray[1].accessType = REGACCESS_U;
2300 infoArray[1].physicalType = LowOpndRegType_gp;
2301 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1; //for v1
2303 infoArray[2].allocConstraints[PhysicalReg_EDX].count = 1;//vA
2305 infoArray[2].allocConstraints[PhysicalReg_EAX].count = 1;//vA
2317 infoArray[2].regNum = vA;
2318 infoArray[2].refCount = 1;
2319 infoArray[2].accessType = REGACCESS_D;
2320 infoArray[2].physicalType = LowOpndRegType_gp;
2321 infoArray[0].regNum = v1;
2322 infoArray[0].refCount = 1;
2323 infoArray[0].accessType = REGACCESS_U;
2324 infoArray[0].physicalType = LowOpndRegType_gp;
2325 infoArray[1].regNum = v2; // in ecx
2326 infoArray[1].refCount = 1;
2327 infoArray[1].accessType = REGACCESS_U;
2328 infoArray[1].physicalType = LowOpndRegType_gp;
2329 infoArray[1].allocConstraints[PhysicalReg_ECX].count = 1;
2342 infoArray[2].regNum = vA;
2343 infoArray[2].refCount = 1;
2344 infoArray[2].accessType = REGACCESS_D;
2345 infoArray[2].physicalType = LowOpndRegType_xmm;
2346 infoArray[0].regNum = v1;
2347 infoArray[0].refCount = 1;
2348 infoArray[0].accessType = REGACCESS_U;
2349 infoArray[0].physicalType = LowOpndRegType_xmm;
2350 infoArray[1].regNum = v2;
2351 infoArray[1].refCount = 1;
2352 infoArray[1].accessType = REGACCESS_U;
2353 infoArray[1].physicalType = LowOpndRegType_xmm;
2360 infoArray[0].regNum = v1;
2361 infoArray[0].refCount = 1;
2362 infoArray[0].accessType = REGACCESS_U;
2363 infoArray[0].physicalType = LowOpndRegType_gp;
2364 infoArray[1].regNum = v1+1;
2365 infoArray
2366 infoArray[1].accessType = REGACCESS_U;
2367 infoArray[1].physicalType = LowOpndRegType_gp;
2368 infoArray[2].regNum = v2;
2369 infoArray[2].refCount = 1;
2370 infoArray[2].accessType = REGACCESS_U;
2371 infoArray[2].physicalType = LowOpndRegType_gp;
2372 infoArray[3].regNum = v2+1;
2373 infoArray[3].refCount = 1;
2374 infoArray[3].accessType = REGACCESS_U;
2375 infoArray[3].physicalType = LowOpndRegType_gp;
2376 infoArray[4].regNum = vA;
2377 infoArray[4].refCount = 1;
2378 infoArray[4].accessType = REGACCESS_D;
2379 infoArray[4].physicalType = LowOpndRegType_gp;
2380 infoArray[5].regNum = vA+1;
2381 infoArray[5].refCount = 1;
2382 infoArray[5].accessType = REGACCESS_D;
2383 infoArray[5].physicalType = LowOpndRegType_gp;
2392 infoArray[0].regNum = v1;
2393 infoArray[0].refCount = 1;
2394 infoArray[0].accessType = REGACCESS_U;
2395 infoArray[0].physicalType = LowOpndRegType_xmm;
2396 infoArray[1].regNum = v2;
2397 infoArray[1].refCount = 1;
2398 infoArray[1].accessType = REGACCESS_U;
2399 infoArray[1].physicalType = LowOpndRegType_gp;
2400 infoArray[2].regNum = v2+1;
2401 infoArray[2].refCount = 1;
2402 infoArray[2].accessType = REGACCESS_U;
2403 infoArray[2].physicalType = LowOpndRegType_gp;
2404 infoArray[3].regNum = vA;
2405 infoArray[3].refCount = 1;
2406 infoArray[3].accessType = REGACCESS_D;
2407 infoArray[3].physicalType = LowOpndRegType_gp;
2408 infoArray[4].regNum = vA+1;
2409 infoArray[4].refCount = 1;
2410 infoArray[4].accessType = REGACCESS_D;
2411 infoArray[4].physicalType = LowOpndRegType_gp;
2419 infoArray[0].regNum = v1;
2420 infoArray[0].refCount = 1;
2421 infoArray[0].accessType = REGACCESS_U;
2422 infoArray[0].physicalType = LowOpndRegType_xmm;
2423 infoArray[1].regNum = v2;
2424 infoArray[1].refCount = 1;
2425 infoArray[1].accessType = REGACCESS_U;
2426 infoArray[1].physicalType = LowOpndRegType_ss;
2427 infoArray[2].regNum = vA;
2428 infoArray[2].refCount = 1;
2429 infoArray[2].accessType = REGACCESS_D;
2430 infoArray[2].physicalType = LowOpndRegType_xmm;
2438 infoArray[0].regNum = v1;
2439 infoArray[0].refCount = 1;
2440 infoArray[0].accessType = REGACCESS_U;
2441 infoArray[0].physicalType = LowOpndRegType_xmm;
2442 infoArray[1].regNum = v2;
2443 infoArray[1].refCount = 1;
2444 infoArray[1].accessType = REGACCESS_U;
2445 infoArray[1].physicalType = LowOpndRegType_ss;
2446 infoArray[2].regNum = v1+1;
2447 infoArray[2].refCount = 1;
2448 infoArray[2].accessType = REGACCESS_U;
2449 infoArray[2].physicalType = LowOpndRegType_gp;
2450 infoArray[3].regNum = vA;
2451 infoArray[3].refCount = 1;
2452 infoArray[3].accessType = REGACCESS_D;
2453 infoArray[3].physicalType = LowOpndRegType_xmm;
2461 infoArray[0].regNum = v1;
2462 infoArray[0].refCount = 1;
2463 infoArray[0].accessType = REGACCESS_U;
2464 infoArray[0].physicalType = LowOpndRegType_xmm; //sd
2465 infoArray[1].regNum = v2;
2466 infoArray[1].refCount = 1;
2467 infoArray[1].accessType = REGACCESS_U;
2468 infoArray[1].physicalType = LowOpndRegType_ss; //ss
2469 infoArray[2].regNum = vA;
2470 infoArray[2].refCount = 1;
2471 infoArray[2].accessType = REGACCESS_D;
2472 infoArray[2].physicalType = LowOpndRegType_xmm; //sd
2484 infoArray[2].regNum = vA;
2485 infoArray[2].refCount = 1;
2486 infoArray[2].accessType = REGACCESS_D;
2487 infoArray[2].physicalType = LowOpndRegType_ss;
2488 infoArray[0].regNum = v1;
2489 infoArray[0].refCount = 1;
2490 infoArray[0].accessType = REGACCESS_U;
2491 infoArray[0].physicalType = LowOpndRegType_ss;
2492 infoArray[1].regNum = v2;
2493 infoArray[1].refCount = 1;
2494 infoArray[1].accessType = REGACCESS_U;
2495 infoArray[1].physicalType = LowOpndRegType_ss;
2503 infoArray[2].regNum = vA;
2504 infoArray[2].refCount = 1;
2505 infoArray[2].accessType = REGACCESS_D;
2506 infoArray[2].physicalType = LowOpndRegType_fs_s;
2507 infoArray[0].regNum = v1;
2508 infoArray[0].refCount = 1;
2509 infoArray[0].accessType = REGACCESS_U;
2510 infoArray[0].physicalType = LowOpndRegType_gp;
2511 infoArray[1].regNum = v2;
2512 infoArray[1].refCount = 1;
2513 infoArray[1].accessType = REGACCESS_U;
2514 infoArray[1].physicalType = LowOpndRegType_gp;
2525 infoArray[2].regNum = vA;
2526 infoArray[2].refCount = 1;
2527 infoArray[2].accessType = REGACCESS_D;
2528 infoArray[2].physicalType = LowOpndRegType_xmm;
2529 infoArray[0].regNum = v1;
2530 infoArray[0].refCount = 1;
2531 infoArray[0].accessType = REGACCESS_U;
2532 infoArray[0].physicalType = LowOpndRegType_xmm;
2533 infoArray[1].regNum = v2;
2534 infoArray[1].refCount = 1;
2535 infoArray[1].accessType = REGACCESS_U;
2536 infoArray[1].physicalType = LowOpndRegType_xmm;
2544 infoArray[2].regNum = vA;
2545 infoArray[2].refCount = 1;
2546 infoArray[2].accessType = REGACCESS_D;
2547 infoArray[2].physicalType = LowOpndRegType_fs;
2548 infoArray[0].regNum = v1;
2549 infoArray[0].refCount = 1;
2550 infoArray[0].accessType = REGACCESS_U;
2551 infoArray[0].physicalType = LowOpndRegType_xmm;
2552 infoArray[1].regNum = v2;
2553 infoArray[1].refCount = 1;
2554 infoArray[1].accessType = REGACCESS_U;
2555 infoArray[1].physicalType = LowOpndRegType_xmm;
2568 infoArray[1].regNum = vA;
2569 infoArray[1].refCount = 2;
2570 infoArray[1].accessType = REGACCESS_UD; //use then define
2571 infoArray[1].physicalType = LowOpndRegType_gp;
2572 infoArray[0].regNum = v2;
2573 infoArray[0].refCount = 1;
2574 infoArray[0].accessType = REGACCESS_U;
2575 infoArray[0].physicalType = LowOpndRegType_gp;
2583 infoArray[1].regNum = vA;
2584 infoArray[1].refCount = 3;
2585 infoArray[1].accessType = REGACCESS_UD; //use then define
2586 infoArray[1].physicalType = LowOpndRegType_gp;
2587 infoArray[0].regNum = v2;
2588 infoArray[0].refCount = 1;
2589 infoArray[0].accessType = REGACCESS_U;
2590 infoArray[0].physicalType = LowOpndRegType_gp;
2591 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1; //for v1 is vA
2593 infoArray[1].allocConstraints[PhysicalReg_EDX].count = 1;//vA
2595 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1;//vA
2606 infoArray[1].regNum = vA;
2607 infoArray[1].refCount = 2;
2608 infoArray[1].accessType = REGACCESS_UD; //use then define
2609 infoArray[1].physicalType = LowOpndRegType_gp;
2610 infoArray[0].regNum = v2;
2611 infoArray[0].refCount = 1;
2612 infoArray[0].accessType = REGACCESS_U;
2613 infoArray[0].physicalType = LowOpndRegType_gp;
2614 infoArray[0].allocConstraints[PhysicalReg_ECX].count = 1; //v2
2626 infoArray[1].regNum = vA;
2627 infoArray[1].refCount = 2;
2628 infoArray[1].accessType = REGACCESS_UD;
2629 infoArray[1].physicalType = LowOpndRegType_xmm;
2630 infoArray[0].regNum = v2;
2631 infoArray[0].refCount = 1;
2632 infoArray[0].accessType = REGACCESS_U;
2633 infoArray[0].physicalType = LowOpndRegType_xmm;
2641 infoArray[0].regNum = v2;
2642 infoArray[0].refCount = 1;
2643 infoArray[0].accessType = REGACCESS_U;
2644 infoArray[0].physicalType = LowOpndRegType_gp;
2645 infoArray[1].regNum = v2+1;
2646 infoArray[1].refCount = 1;
2647 infoArray[1].accessType = REGACCESS_U;
2648 infoArray[1].physicalType = LowOpndRegType_gp;
2649 infoArray[2].regNum = vA;
2650 infoArray[2].refCount = 2;
2651 infoArray[2].accessType = REGACCESS_UD;
2652 infoArray[2].physicalType = LowOpndRegType_gp;
2653 infoArray[3].regNum = vA+1;
2654 infoArray[3].refCount = 2;
2655 infoArray[3].accessType = REGACCESS_UD;
2656 infoArray[3].physicalType = LowOpndRegType_gp;
2664 infoArray[0].regNum = vA;
2665 infoArray[0].refCount = 1;
2666 infoArray[0].accessType = REGACCESS_U;
2667 infoArray[0].physicalType = LowOpndRegType_xmm;
2668 infoArray[1].regNum = v2;
2669 infoArray[1].refCount = 1;
2670 infoArray[1].accessType = REGACCESS_U;
2671 infoArray[1].physicalType = LowOpndRegType_gp;
2672 infoArray[2].regNum = v2+1;
2673 infoArray[2].refCount = 1;
2674 infoArray[2].accessType = REGACCESS_U;
2675 infoArray[2].physicalType = LowOpndRegType_gp;
2676 infoArray[3].regNum = vA;
2677 infoArray[3].refCount = 1;
2678 infoArray[3].accessType = REGACCESS_D;
2679 infoArray[3].physicalType = LowOpndRegType_gp;
2680 infoArray[4].regNum = vA+1;
2681 infoArray[4].refCount = 1;
2682 infoArray[4].accessType = REGACCESS_D;
2683 infoArray[4].physicalType = LowOpndRegType_gp;
2690 infoArray[0].regNum = v2; //ss
2691 infoArray[0].refCount = 1;
2692 infoArray[0].accessType = REGACCESS_U;
2693 infoArray[0].physicalType = LowOpndRegType_ss;
2694 infoArray[1].regNum = vA;
2695 infoArray[1].refCount = 2;
2696 infoArray[1].accessType = REGACCESS_UD;
2697 infoArray[1].physicalType = LowOpndRegType_xmm;
2704 infoArray[0].regNum = v2; //ss
2705 infoArray[0].refCount = 1;
2706 infoArray[0].accessType = REGACCESS_U;
2707 infoArray[0].physicalType = LowOpndRegType_ss;
2708 infoArray[1].regNum = vA+1;
2709 infoArray[1].refCount = 1;
2710 infoArray[1].accessType = REGACCESS_U;
2711 infoArray[1].physicalType = LowOpndRegType_gp;
2712 infoArray[2].regNum = vA;
2713 infoArray[2].refCount = 2;
2714 infoArray[2].accessType = REGACCESS_UD;
2715 infoArray[2].physicalType = LowOpndRegType_xmm;
2722 infoArray[0].regNum = v2;
2723 infoArray[0].refCount = 1;
2724 infoArray[0].accessType = REGACCESS_U;
2725 infoArray[0].physicalType = LowOpndRegType_ss; //ss CHECK
2726 infoArray[1].regNum = vA;
2727 infoArray[1].refCount = 2;
2728 infoArray[1].accessType = REGACCESS_UD;
2729 infoArray[1].physicalType = LowOpndRegType_xmm; //sd
2738 infoArray[1].regNum = vA;
2739 infoArray[1].refCount = 2;
2740 infoArray[1].accessType = REGACCESS_UD;
2741 infoArray[1].physicalType = LowOpndRegType_ss;
2742 infoArray[0].regNum = v2;
2743 infoArray[0].refCount = 1;
2744 infoArray[0].accessType = REGACCESS_U;
2745 infoArray[0].physicalType = LowOpndRegType_ss;
2752 infoArray[1].regNum = vA;
2753 infoArray[1].refCount = 2;
2754 infoArray[1].accessType = REGACCESS_UD;
2755 infoArray[1].physicalType = LowOpndRegType_gp; //CHECK
2756 infoArray[0].regNum = v2;
2757 infoArray[0].refCount = 1;
2758 infoArray[0].accessType = REGACCESS_U;
2759 infoArray[0].physicalType = LowOpndRegType_gp;
2769 infoArray[1].regNum = vA;
2770 infoArray[1].refCount = 2;
2771 infoArray[1].accessType = REGACCESS_UD;
2772 infoArray[1].physicalType = LowOpndRegType_xmm;
2773 infoArray[0].regNum = v2;
2774 infoArray[0].refCount = 1;
2775 infoArray[0].accessType = REGACCESS_U;
2776 infoArray[0].physicalType = LowOpndRegType_xmm;
2783 infoArray[1].regNum = vA;
2784 infoArray[1].refCount = 2;
2785 infoArray[1].accessType = REGACCESS_UD;
2786 infoArray[1].physicalType = LowOpndRegType_xmm; //CHECK
2787 infoArray[0].regNum = v2;
2788 infoArray[0].refCount = 1;
2789 infoArray[0].accessType = REGACCESS_U;
2790 infoArray[0].physicalType = LowOpndRegType_xmm;
2803 infoArray[1].regNum = vA;
2804 infoArray[1].refCount = 1;
2805 infoArray[1].accessType = REGACCESS_D;
2806 infoArray[1].physicalType = LowOpndRegType_gp;
2807 infoArray[0].regNum = vB;
2808 infoArray[0].refCount = 1;
2809 infoArray[0].accessType = REGACCESS_U;
2810 infoArray[0].physicalType = LowOpndRegType_gp;
2824 infoArray[1].regNum = vA; //in edx for rem, in eax
2825 infoArray[1].accessType = REGACCESS_D;
2826 infoArray[1].physicalType = LowOpndRegType_gp;
2827 infoArray[0].regNum = vB; //in eax
2828 infoArray[0].refCount = 1;
2829 infoArray[0].accessType = REGACCESS_U;
2830 infoArray[0].physicalType = LowOpndRegType_gp;
2835 infoArray[1].refCount = 1;
2840 infoArray[1].refCount = 2;
2842 infoArray[1].refCount = 1;
2844 infoArray[1].allocConstraints[PhysicalReg_EDX].count = 1;
2846 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1;
2847 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1;
2863 infoArray[1].regNum = vA;
2864 infoArray[1].refCount = 1;
2865 infoArray[1].accessType = REGACCESS_D;
2866 infoArray[1].physicalType = LowOpndRegType_gp;
2867 infoArray[0].regNum = vB;
2868 infoArray[0].refCount = 1;
2869 infoArray[0].accessType = REGACCESS_U;
2870 infoArray[0].physicalType = LowOpndRegType_gp;
2884 infoArray[1].regNum = vA;
2885 infoArray[1].accessType = REGACCESS_D;
2886 infoArray[1].physicalType = LowOpndRegType_gp;
2887 infoArray[0].regNum = vB;
2888 infoArray[0].refCount = 1;
2889 infoArray[0].accessType = REGACCESS_U;
2890 infoArray[0].physicalType = LowOpndRegType_gp;
2895 infoArray[1].refCount = 1;
2901 infoArray[1].refCount = 2;
2903 infoArray[1].refCount = 1;
2905 infoArray[1].allocConstraints[PhysicalReg_EDX].count = 1;
2907 infoArray[1].allocConstraints[PhysicalReg_EAX].count = 1;
2908 infoArray[0].allocConstraints[PhysicalReg_EAX].count = 1;
2932 infoArray[0].regNum = vC;
2933 infoArray[0].refCount = 1;
2934 infoArray[0].accessType = REGACCESS_U;
2935 infoArray[0].physicalType = LowOpndRegType_gp;
2938 infoArray[1].regNum = vD;
2939 infoArray[1].refCount = 1;
2940 infoArray[1].accessType = REGACCESS_U;
2941 infoArray[1].physicalType = LowOpndRegType_gp;
2944 infoArray[2].regNum = vE;
2945 infoArray[2].refCount = 1;
2946 infoArray[2].accessType = REGACCESS_U;
2947 infoArray[2].physicalType = LowOpndRegType_gp;
2950 infoArray[3].regNum = vF;
2951 infoArray[3].refCount = 1;
2952 infoArray[3].accessType = REGACCESS_U;
2953 infoArray[3].physicalType = LowOpndRegType_gp;
2968 //! Updates infoArray(TempRegInfo) with temporaries accessed by INVOKE_NO_RANGE
2971 int updateInvokeNoRange(TempRegInfo* infoArray, int startInd) {
2976 infoArray[j].regNum = 22;
2977 infoArray[j].refCount = 2; //DU
2978 infoArray[j].physicalType = LowOpndRegType_gp;
2982 infoArray[j].regNum = 23;
2983 infoArray[j].refCount = 2; //DU
2984 infoArray[j].physicalType = LowOpndRegType_gp;
2988 infoArray[j].regNum = 24;
2989 infoArray[j].refCount = 2; //DU
2990 infoArray[j].physicalType = LowOpndRegType_gp;
2994 infoArray[j].regNum = 25;
2995 infoArray[j].refCount = 2; //DU
2996 infoArray[j].physicalType = LowOpndRegType_gp;
3000 infoArray[j].regNum = 26;
3001 infoArray[j].refCount = 2; //DU
3002 infoArray[j].physicalType = LowOpndRegType_gp;
3007 //! Updates infoArray(TempRegInfo) with temporaries accessed by INVOKE_RANGE
3010 int updateInvokeRange(TempRegInfo* infoArray, int startIndex) {
3013 infoArray[j].regNum = 21;
3015 infoArray[j].refCount = 1+count; //DU
3017 infoArray[j].refCount = 2+3*LOOP_COUNT;
3019 infoArray[j].physicalType = LowOpndRegType_gp;
3022 infoArray[j].regNum = 22;
3023 infoArray[j].refCount = 2; //DU
3024 infoArray[j].physicalType = LowOpndRegType_gp;
3028 infoArray[j].regNum = 23;
3029 infoArray[j].refCount = 2; //DU
3030 infoArray[j].physicalType = LowOpndRegType_gp;
3034 infoArray[j].regNum = 24;
3035 infoArray[j].refCount = 2; //DU
3036 infoArray[j].physicalType = LowOpndRegType_gp;
3040 infoArray[j].regNum = 25;
3041 infoArray[j].refCount = 2; //DU
3042 infoArray[j].physicalType = LowOpndRegType_gp;
3046 infoArray[j].regNum = 26;
3047 infoArray[j].refCount = 2; //DU
3048 infoArray[j].physicalType = LowOpndRegType_gp;
3052 infoArray[j].regNum = 27;
3053 infoArray[j].refCount = 2; //DU
3054 infoArray[j].physicalType = LowOpndRegType_gp;
3058 infoArray[j].regNum = 28;
3059 infoArray[j].refCount = 2; //DU
3060 infoArray[j].physicalType = LowOpndRegType_gp;
3064 infoArray[j].regNum = 29;
3065 infoArray[j].refCount = 2; //DU
3066 infoArray[j].physicalType = LowOpndRegType_gp;
3070 infoArray[j].regNum = 30;
3071 infoArray[j].refCount = 2; //DU
3072 infoArray[j].physicalType = LowOpndRegType_gp;
3076 infoArray[j].regNum = 31;
3077 infoArray[j].refCount = 2; //DU
3078 infoArray[j].physicalType = LowOpndRegType_gp;
3085 infoArray[j].regNum = 12;
3086 infoArray[j].refCount = 1+3*LOOP_COUNT; //DU
3087 infoArray[j].physicalType = LowOpndRegType_gp;
3089 infoArray[j].regNum = 13;
3090 infoArray[j].refCount = 1+LOOP_COUNT; //DU
3091 infoArray[j].physicalType = LowOpndRegType_gp;
3093 infoArray[j].regNum = 14;
3095 infoArray[j].refCount = 2; //DU local
3096 infoArray[j].physicalType = LowOpndRegType_gp;
3105 int updateReturnCommon(TempRegInfo* infoArray) {
3107 infoArray[0].regNum = 1;
3108 infoArray[0].refCount = 4; //DU
3109 infoArray[0].physicalType = LowOpndRegType_scratch;
3110 infoArray[1].regNum = 2;
3111 infoArray[1].refCount = 2; //DU
3112 infoArray[1].physicalType = LowOpndRegType_scratch;
3113 infoArray[2].regNum = PhysicalReg_EAX;
3114 infoArray[2].refCount = 5; //DU
3115 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3117 infoArray[3].regNum = 1;
3119 infoArray[3].refCount = 6+4;
3121 infoArray[3].refCount = 6; //DU
3123 infoArray[3].physicalType = LowOpndRegType_gp;
3124 infoArray[4].regNum = 2;
3125 infoArray[4].refCount = 4; //DU
3126 infoArray[4].physicalType = LowOpndRegType_gp;
3127 infoArray[5].regNum = 5;
3128 infoArray[5].refCount = 2; //DU
3129 infoArray[5].physicalType = LowOpndRegType_gp;
3130 infoArray[6].regNum = 10;
3131 infoArray[6].refCount = 3;
3132 infoArray[6].physicalType = LowOpndRegType_gp;
3133 infoArray[7].regNum = 6;
3134 infoArray[7].refCount = 4; //DU
3135 infoArray[7].physicalType = LowOpndRegType_gp;
3136 infoArray[8].regNum = 3;
3137 infoArray[8].refCount = 3;
3138 infoArray[8].physicalType = LowOpndRegType_gp;
3139 infoArray[9].regNum = 7;
3140 infoArray[9].refCount = 2; //DU
3141 infoArray[9].physicalType = LowOpndRegType_gp;
3144 infoArray[12].regNum = 4;
3145 infoArray[12].refCount = 3; //DU
3146 infoArray[12].physicalType = LowOpndRegType_gp;
3147 infoArray[13].regNum = 3;
3148 infoArray[13].refCount = 2; //DU
3149 infoArray[13].physicalType = LowOpndRegType_scratch;
3150 infoArray[14].regNum = 15;
3151 infoArray[14].refCount = 2; //DU
3152 infoArray[14].physicalType = LowOpndRegType_gp;
3153 infoArray[15].regNum = 16;
3154 infoArray[15].refCount = 2; //DU
3155 infoArray[15].physicalType = LowOpndRegType_gp;
3156 infoArray[16].regNum = PhysicalReg_EDX;
3157 infoArray[16].refCount = 2; //DU
3158 infoArray[16].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3159 infoArray[17].regNum = 6;
3160 infoArray[17].refCount = 2; //DU
3161 infoArray[17].physicalType = LowOpndRegType_scratch;
3164 infoArray[10].regNum = 14;
3165 infoArray[10].refCount = 2; //DU
3166 infoArray[10].physicalType = LowOpndRegType_gp;
3167 infoArray[11].regNum = 4;
3168 infoArray[11].refCount = 2; //DU
3169 infoArray[11].physicalType = LowOpndRegType_scratch;
3171 infoArray[numTmps].regNum = 5;
3172 infoArray[numTmps].refCount = 2;
3173 infoArray[numTmps].physicalType = LowOpndRegType_scratch;
3176 infoArray[numTmps].regNum = PhysicalReg_EBX;
3184 infoArray[numTmps].refCount = 3+1+1;
3185 infoArray[numTmps].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3187 infoArray[numTmps].regNum = 17;
3188 infoArray[numTmps].refCount = 2; //DU
3189 infoArray[numTmps].physicalType = LowOpndRegType_gp;
3191 infoArray[numTmps].regNum = 7;
3192 infoArray[numTmps].refCount = 4; //DU
3193 infoArray[numTmps].physicalType = LowOpndRegType_scratch;
3199 int updateGenPrediction(TempRegInfo* infoArray, bool isInterface) {
3200 infoArray[0].regNum = 40;
3201 infoArray[0].physicalType = LowOpndRegType_gp;
3202 infoArray[1].regNum = 41;
3203 infoArray[1].physicalType = LowOpndRegType_gp;
3204 infoArray[2].regNum = 32;
3205 infoArray[2].refCount = 2;
3206 infoArray[2].physicalType = LowOpndRegType_gp;
3209 infoArray[0].refCount = 2+2;
3210 infoArray[1].refCount = 3+2-1; //for temp41, -1 for gingerbread
3211 infoArray[3].regNum = 33;
3212 infoArray[3].refCount = 4+1;
3213 infoArray[3].physicalType = LowOpndRegType_gp;
3214 infoArray[4].regNum = PhysicalReg_EAX;
3215 infoArray[4].refCount = 5;
3216 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3217 infoArray[5].regNum = PhysicalReg_ECX;
3218 infoArray[5].refCount = 1+1+2; //used in ArgsDone (twice)
3219 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3220 infoArray[6].regNum = 10;
3221 infoArray[6].refCount = 2;
3222 infoArray[6].physicalType = LowOpndRegType_scratch;
3223 infoArray[7].regNum = 9;
3224 infoArray[7].refCount = 2;
3225 infoArray[7].physicalType = LowOpndRegType_scratch;
3226 infoArray[8].regNum = 8;
3227 infoArray[8].refCount = 2;
3228 infoArray[8].physicalType = LowOpndRegType_scratch;
3229 infoArray[9].regNum = PhysicalReg_EDX; //space holder
3230 infoArray[9].refCount = 1;
3231 infoArray[9].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3232 infoArray[10].regNum = 43;
3233 infoArray[10].refCount = 3;
3234 infoArray[10].physicalType = LowOpndRegType_gp;
3235 infoArray[11].regNum = 44;
3236 infoArray[11].refCount = 3;
3237 infoArray[11].physicalType = LowOpndRegType_gp;
3238 infoArray[12].regNum = 45;
3239 infoArray[12].refCount = 2;
3240 infoArray[12].physicalType = LowOpndRegType_gp;
3241 infoArray[13].regNum = 7;
3242 infoArray[13].refCount = 4;
3243 infoArray[13].physicalType = LowOpndRegType_scratch;
3246 infoArray[0].refCount = 2+2;
3247 infoArray[1].refCount = 3+2-2; //for temp41, -2 for gingerbread
3248 infoArray[2].refCount++; //for temp32 gingerbread
3249 infoArray[3].regNum = 33;
3250 infoArray[3].refCount = 4+1;
3251 infoArray[3].physicalType = LowOpndRegType_gp;
3252 infoArray[4].regNum = 34;
3253 infoArray[4].refCount = 2;
3254 infoArray[4].physicalType = LowOpndRegType_gp;
3255 infoArray[5].regNum = PhysicalReg_EAX;
3256 infoArray[5].refCount = 2;
3257 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3258 infoArray[6].regNum = PhysicalReg_ECX;
3259 infoArray[6].refCount = 1+3+2;
3260 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3261 infoArray[7].regNum = 10;
3262 infoArray[7].refCount = 2;
3263 infoArray[7].physicalType = LowOpndRegType_scratch;
3264 infoArray
3265 infoArray[8].refCount = 1;
3266 infoArray[8].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3267 infoArray[9].regNum = 43;
3268 infoArray[9].refCount = 3;
3269 infoArray[9].physicalType = LowOpndRegType_gp;
3270 infoArray[10].regNum = 44;
3271 infoArray[10].refCount = 3;
3272 infoArray[10].physicalType = LowOpndRegType_gp;
3273 infoArray[11].regNum = 7;
3274 infoArray[11].refCount = 4;
3275 infoArray[11].physicalType = LowOpndRegType_scratch;
3280 int updateMarkCard(TempRegInfo* infoArray, int j1/*valReg*/,
3282 infoArray[j3].regNum = 11;
3283 infoArray[j3].physicalType = LowOpndRegType_gp;
3284 infoArray[j3].refCount = 3;
3285 infoArray[j3].is8Bit = true;
3286 infoArray[j1].refCount++;
3287 infoArray[j2].refCount += 2;
3288 infoArray[j3+1].regNum = 6;
3289 infoArray[j3+1].physicalType = LowOpndRegType_scratch;
3290 infoArray[j3+1].refCount = 2;
3294 int updateMarkCard_notNull(TempRegInfo* infoArray,
3296 infoArray[j3].regNum = 11;
3297 infoArray[j3].physicalType = LowOpndRegType_gp;
3298 infoArray[j3].refCount = 3;
3299 infoArray[j3].is8Bit = true;
3300 infoArray[j2].refCount += 2;
3301 infoArray[j3+1].regNum = 2;
3302 infoArray[j3+1].refCount = 2; //DU
3303 infoArray[j3+1].physicalType = LowOpndRegType_scratch;
3308 //! This function updates infoArray with temporaries accessed when lowering the bytecode
3311 int getTempRegInfo(TempRegInfo* infoArray) { //returns an array of TempRegInfo
3315 infoArray[k].linkageToVR = -1;
3316 infoArray[k].versionNum = 0;
3317 infoArray[k].shareWithVR = true;
3318 infoArray[k].is8Bit = false;
3327 infoArray[k].shareWithVR = true; //false;
3339 infoArray[0].regNum = 1;
3340 infoArray[0].refCount = 2; //DU
3341 infoArray[0].physicalType = LowOpndRegType_gp;
3346 infoArray[0].regNum = 1;
3347 infoArray[0].refCount = 2; //DU
3348 infoArray[0].physicalType = LowOpndRegType_xmm;
3352 infoArray[0].regNum = 1;
3353 infoArray[0].refCount = 2; //DU
3354 infoArray[0].physicalType = LowOpndRegType_gp;
3355 infoArray[1].regNum = 1;
3356 infoArray[1].refCount = 2; //DU
3357 infoArray[1].physicalType = LowOpndRegType_scratch;
3360 infoArray[0].regNum = 1;
3361 infoArray[0].refCount = 2; //DU
3362 infoArray[0].physicalType = LowOpndRegType_xmm;
3363 infoArray[1].regNum = 1;
3364 infoArray[1].refCount = 2; //DU
3365 infoArray[1].physicalType = LowOpndRegType_scratch;
3368 infoArray[0].regNum = 2;
3369 infoArray[0].refCount = 3; //DUU
3370 infoArray[0].physicalType = LowOpndRegType_gp;
3371 infoArray[1].regNum = 3;
3372 infoArray[1].refCount = 2; //DU
3373 infoArray[1].physicalType = LowOpndRegType_gp;
3374 infoArray[2].regNum = 1;
3375 infoArray[2].refCount = 2; //DU
3376 infoArray[2].physicalType = LowOpndRegType_scratch;
3390 infoArray[0].regNum = 3;
3391 infoArray[0].refCount = 2; //DU
3392 infoArray[0].physicalType = LowOpndRegType_gp;
3393 infoArray[1].regNum = 1;
3394 infoArray[1].refCount = 2; //DU
3395 infoArray[1].physicalType = LowOpndRegType_scratch;
3396 infoArray[2].regNum = 2;
3397 infoArray[2].refCount = 2; //DU
3398 infoArray[2].physicalType = LowOpndRegType_scratch;
3399 infoArray[3].regNum = PhysicalReg_EAX;
3400 infoArray[3].refCount = 4;
3401 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3404 infoArray[0].regNum = 3;
3405 infoArray[0].refCount = 2; //DU
3406 infoArray[0].physicalType = LowOpndRegType_gp;
3407 infoArray[1].regNum = 1;
3408 infoArray[1].refCount = 2; //DU
3409 infoArray[1].physicalType = LowOpndRegType_scratch;
3410 infoArray[2].regNum = 2;
3411 infoArray[2].refCount = 2; //DU
3412 infoArray[2].physicalType = LowOpndRegType_scratch;
3413 infoArray[3].regNum = PhysicalReg_EAX;
3414 infoArray[3].refCount = 4;
3415 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3419 infoArray[0].regNum = 1;
3420 infoArray[0].refCount = 3; //DU
3421 infoArray[0].physicalType = LowOpndRegType_gp;
3422 infoArray[1].regNum = 3;
3423 infoArray[1].refCount = 2; //DU
3424 infoArray[1].physicalType = LowOpndRegType_gp;
3425 infoArray[2].regNum = 1;
3426 infoArray[2].refCount = 2; //DU
3427 infoArray[2].physicalType = LowOpndRegType_scratch;
3428 infoArray[3].regNum = 2;
3429 infoArray[3].refCount = 2; //DU
3430 infoArray[3].physicalType = LowOpndRegType_scratch;
3431 infoArray[4].regNum = PhysicalReg_EDX;
3432 infoArray[4].refCount = 2;
3433 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3436 infoArray[0].regNum = 1;
3437 infoArray[0].refCount = 3; //DU
3438 infoArray[0].physicalType = LowOpndRegType_gp;
3439 infoArray[1].regNum = PhysicalReg_EAX;
3440 infoArray[1].refCount = 2; //DU
3441 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3442 infoArray[2].regNum = 1;
3443 infoArray[2].refCount = 2; //DU
3444 infoArray[2].physicalType = LowOpndRegType_scratch;
3445 infoArray[3].regNum = PhysicalReg_EDX;
3446 infoArray[3].refCount = 2; //DU
3447 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3448 infoArray[4].regNum = 2;
3449 infoArray[4].refCount = 2; //DU
3450 infoArray[4].physicalType = LowOpndRegType_scratch;
3451 infoArray[5].regNum = 3;
3452 infoArray[5].refCount = 2; //DU
3453 infoArray[5].physicalType = LowOpndRegType_scratch;
3456 infoArray[0].regNum = 1;
3457 infoArray[0].refCount = 4; //DU
3458 infoArray[0].physicalType = LowOpndRegType_gp;
3459 infoArray[1].regNum = 4;
3460 infoArray[1].refCount = 2; //DU
3461 infoArray[1].physicalType = LowOpndRegType_gp;
3462 infoArray[2].regNum = 6;
3463 infoArray[2].refCount = 3; //DU
3464 infoArray[2].physicalType = LowOpndRegType_gp;
3466 infoArray[3].regNum = 1;
3467 infoArray[3].refCount = 2; //DU
3468 infoArray[3].physicalType = LowOpndRegType_scratch;
3469 infoArray[4].regNum = 2;
3470 infoArray[4].refCount = 2; //DU
3471 infoArray[4].physicalType = LowOpndRegType_scratch;
3473 infoArray[5].regNum = PhysicalReg_EAX;
3480 infoArray[5].refCount = 6;
3481 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3482 infoArray[6].regNum = PhysicalReg_EDX;
3483 infoArray[6].refCount = 2; //export_pc
3484 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3485 infoArray[7].regNum = PhysicalReg_ECX;
3486 infoArray[7].refCount = 1;
3487 infoArray[7].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3488 infoArray[8].regNum = 3;
3489 infoArray[8].refCount = 2; //DU
3490 infoArray[8].physicalType = LowOpndRegType_scratch;
3493 infoArray[0].regNum = 1;
3494 infoArray[0].refCount = 4; //DU
3495 infoArray[0].physicalType = LowOpndRegType_gp;
3496 infoArray[1].regNum = 3;
3497 infoArray[1].refCount = 4; //DU
3498 infoArray[1].physicalType = LowOpndRegType_gp;
3499 infoArray[2].regNum = 4;
3500 infoArray[2].refCount = 2; //DU
3501 infoArray[2].physicalType = LowOpndRegType_gp;
3502 infoArray[3].regNum = 6;
3503 infoArray[3].refCount = 3; //DU
3504 infoArray[3].physicalType = LowOpndRegType_gp;
3506 infoArray[4].regNum = 1;
3507 infoArray[4].refCount = 2; //DU
3508 infoArray[4].physicalType = LowOpndRegType_scratch;
3509 infoArray[5].regNum = 2;
3510 infoArray[5].refCount = 2; //DU
3511 infoArray[5].physicalType = LowOpndRegType_scratch;
3513 infoArray[6].regNum = PhysicalReg_EAX;
3514 infoArray[6].refCount = 6;
3515 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3516 infoArray[7].regNum = 3;
3517 infoArray[7].refCount = 2; //DU
3518 infoArray[7].physicalType = LowOpndRegType_scratch;
3519 infoArray[8].regNum = PhysicalReg_EDX;
3520 infoArray[8].refCount = 2; //export_pc for class_resolve
3521 infoArray[8].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3526 infoArray[0].regNum = 1;
3527 infoArray[0].refCount = 3; //DU
3528 infoArray[0].physicalType = LowOpndRegType_gp;
3529 infoArray[1].regNum = 2;
3530 infoArray[1].refCount = 2; //DU
3531 infoArray[1].physicalType = LowOpndRegType_gp;
3532 infoArray[1].linkageToVR = vA;
3533 infoArray[2].regNum = PhysicalReg_EDX;
3534 infoArray[2].refCount = 2; //DU
3535 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3538 infoArray[0].regNum = PhysicalReg_EAX;
3541 infoArray[0].refCount = 6; //next version has 3 references
3542 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3543 infoArray[1].regNum = PhysicalReg_ECX; //before common_throw_message
3544 infoArray[1].refCount = 1;
3545 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3547 infoArray[2].regNum = 3;
3548 infoArray[2].refCount = 2; //DU
3549 infoArray[2].physicalType = LowOpndRegType_gp;
3550 infoArray[3].regNum = 5;
3551 infoArray[3].refCount = 2; //DU
3552 infoArray[3].physicalType = LowOpndRegType_gp;
3553 infoArray[3].is8Bit = true;
3554 infoArray[4].regNum = 6;
3555 infoArray[4].refCount = 2; //DU
3556 infoArray[4].physicalType = LowOpndRegType_gp;
3558 infoArray[5].regNum = 1;
3559 infoArray[5].refCount = 2; //DU
3560 infoArray[5].physicalType = LowOpndRegType_scratch;
3561 infoArray[6].regNum = 2;
3562 infoArray[6].refCount = 2; //DU
3563 infoArray[6].physicalType = LowOpndRegType_scratch;
3564 infoArray[7].regNum = 3;
3565 infoArray[7].refCount = 2; //DU
3566 infoArray[7].physicalType = LowOpndRegType_scratch;
3568 infoArray[8].regNum = PhysicalReg_EDX; //before common_throw_message
3569 infoArray[8].refCount = 2;
3570 infoArray[8].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3571 infoArray[9].regNum = 4;
3572 infoArray[9].refCount = 2; //DU
3573 infoArray[9].physicalType = LowOpndRegType_scratch;
3577 infoArray[0].regNum = PhysicalReg_EAX;
3580 infoArray[0].refCount = 4; //next version has 3 references
3581 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3582 infoArray[1].regNum = PhysicalReg_EDX; //before common_throw_message
3583 infoArray[1].refCount = 2;
3584 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3586 infoArray[2].regNum = 3;
3587 infoArray[2].refCount = 2; //DU
3588 infoArray[2].physicalType = LowOpndRegType_gp;
3589 infoArray[3].regNum = 5;
3590 infoArray[3].refCount = 3; //DU
3591 infoArray[3].physicalType = LowOpndRegType_gp;
3593 infoArray[4].regNum = 1;
3594 infoArray[4].refCount = 2; //DU
3595 infoArray[4].physicalType = LowOpndRegType_scratch;
3596 infoArray[5].regNum = 2;
3597 infoArray[5].refCount = 2; //DU
3598 infoArray[5].physicalType = LowOpndRegType_scratch;
3599 infoArray[6].regNum = 3;
3600 infoArray[6].refCount = 2; //DU
3601 infoArray[6].physicalType = LowOpndRegType_scratch;
3602 infoArray[7].regNum = 4;
3603 infoArray[7].refCount = 2; //DU
3604 infoArray[7].physicalType = LowOpndRegType_scratch;
3609 infoArray[0].regNum = PhysicalReg_EAX;
3613 infoArray[0].refCount = 4; //next version has 5+length references
3614 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3615 infoArray[1].regNum = PhysicalReg_EDX; //before common_throw_message
3616 infoArray[1].refCount = 2;
3617 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3619 infoArray[2].regNum = 3;
3620 infoArray[2].refCount = 2;
3621 infoArray[2].physicalType = LowOpndRegType_gp;
3622 infoArray[3].regNum = 5;
3623 infoArray[3].refCount = 2; //DU
3624 infoArray[3].physicalType = LowOpndRegType_gp;
3625 infoArray[4].regNum = 6;
3626 infoArray[4].refCount = 8; //DU
3627 infoArray[4].physicalType = LowOpndRegType_gp;
3628 infoArray[4].is8Bit = true;
3631 infoArray[5].regNum = 7;
3632 infoArray[5].refCount = 2; //DU
3633 infoArray[5].physicalType = LowOpndRegType_gp;
3636 infoArray[6].regNum = 8;
3637 infoArray[6].refCount = 2; //DU
3638 infoArray[6].physicalType = LowOpndRegType_gp;
3641 infoArray[7].regNum = 9;
3642 infoArray[7].refCount = 2; //DU
3643 infoArray[7].physicalType = LowOpndRegType_gp;
3646 infoArray[8].regNum = 10;
3647 infoArray[8].refCount = 2; //DU
3648 infoArray[8].physicalType = LowOpndRegType_gp;
3651 infoArray[9].regNum = 11;
3652 infoArray[9].refCount = 2; //DU
3653 infoArray[9].physicalType = LowOpndRegType_gp;
3655 infoArray[5+length].regNum = 1;
3656 infoArray[5+length].refCount = 2; //DU
3657 infoArray[5+length].physicalType = LowOpndRegType_scratch;
3658 infoArray[6+length].regNum = 2;
3659 infoArray[6+length].refCount = 4; //DU
3660 infoArray[6+length].physicalType = LowOpndRegType_scratch;
3661 infoArray[7+length].regNum = 3;
3662 infoArray[7+length].refCount = 2; //DU
3663 infoArray[7+length].physicalType = LowOpndRegType_scratch;
3664 infoArray[8+length].regNum = 4;
3665 infoArray[8+length].refCount = 5; //DU
3666 infoArray[8+length].physicalType = LowOpndRegType_scratch;
3671 infoArray[0].regNum = PhysicalReg_EAX;
3676 infoArray[0].refCount = 4; //next version: 5+(length >= 1 ? LOOP_COUNT : 0)
3677 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3678 infoArray[1].regNum = PhysicalReg_EDX; //before common_throw_message
3679 infoArray[1].refCount = 2;
3680 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3682 infoArray[2].regNum = 3;
3683 infoArray[2].refCount = 2;
3684 infoArray[2].physicalType = LowOpndRegType_gp;
3685 infoArray[3].regNum = 5;
3686 infoArray[3].refCount = 2; //DU
3687 infoArray[3].physicalType = LowOpndRegType_gp;
3688 infoArray[4].regNum = 6;
3689 infoArray[4].refCount = 8; //DU
3690 infoArray[4].physicalType = LowOpndRegType_gp;
3691 infoArray[4].is8Bit = true;
3693 infoArray[5].regNum = 1;
3694 infoArray[5].refCount = 2; //DU
3695 infoArray[5].physicalType = LowOpndRegType_scratch;
3696 infoArray[6].regNum = 2;
3697 infoArray[6].refCount = 4; //DU
3698 infoArray[6].physicalType = LowOpndRegType_scratch;
3699 infoArray[7].regNum = 3;
3700 infoArray[7].refCount = 2; //DU
3701 infoArray[7].physicalType = LowOpndRegType_scratch;
3703 infoArray[8].regNum = 7;
3704 infoArray[8].refCount = 3*(length >= 1 ? LOOP_COUNT : 0);
3705 infoArray[8].physicalType = LowOpndRegType_gp;
3706 infoArray[9].regNum = 8;
3707 infoArray[9].refCount = 3*(length >= 1 ? LOOP_COUNT : 0);
3708 infoArray[9].physicalType = LowOpndRegType_gp;
3709 infoArray[10].regNum = 9;
3710 infoArray[10].refCount = 2*(length >= 1 ? LOOP_COUNT : 0);
3711 infoArray[10].physicalType = LowOpndRegType_gp;
3712 infoArray[11].regNum = 10;
3713 infoArray[11].refCount = 2*(length >= 1 ? LOOP_COUNT : 0);
3714 infoArray[11].physicalType = LowOpndRegType_gp;
3715 infoArray[12].regNum = 4;
3716 infoArray[12].refCount = 5; //DU
3717 infoArray[12].physicalType = LowOpndRegType_scratch;
3721 infoArray[0].regNum = PhysicalReg_EAX;
3722 infoArray[0].refCount = 2;
3723 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3724 infoArray[1].regNum = PhysicalReg_EDX; //before common_throw_message
3726 infoArray[1].refCount = 3; //next version has refCount of 2
3728 infoArray[1].refCount = 5;
3730 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3732 infoArray[2].regNum =1;
3733 infoArray[2].refCount = 2; //DU
3734 infoArray[2].physicalType = LowOpndRegType_gp;
3736 infoArray[3].regNum = 1;
3737 infoArray[3].refCount = 2; //DU
3738 infoArray[3].physicalType = LowOpndRegType_scratch;
3739 infoArray[4].regNum = 2;
3740 infoArray[4].refCount = 2; //DU
3741 infoArray[4].physicalType = LowOpndRegType_scratch;
3745 infoArray[0].regNum = 1;
3746 infoArray[0].refCount = 3; //DU
3747 infoArray[0].physicalType = LowOpndRegType_gp;
3748 infoArray[1].regNum = PhysicalReg_EDX; //before common_throw_message
3749 infoArray[1].refCount = 2;
3750 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3752 infoArray[2].regNum = 1;
3753 infoArray[2].refCount = 2; //DU
3754 infoArray[2].physicalType = LowOpndRegType_scratch;
3755 infoArray[3].regNum = 2;
3756 infoArray[3].refCount = 2; //DU
3757 infoArray[3].physicalType = LowOpndRegType_scratch;
3760 infoArray[0].regNum = 1;
3761 infoArray[0].refCount = 2; //DU
3762 infoArray[0].physicalType = LowOpndRegType_gp;
3763 infoArray[1].regNum = PhysicalReg_EDX; //export_pc
3764 infoArray[1].refCount = 2;
3765 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3767 infoArray[2].regNum = 1;
3768 infoArray[2].refCount = 2; //DU
3769 infoArray[2].physicalType = LowOpndRegType_scratch;
3770 infoArray[3].regNum = 2;
3771 infoArray[3].refCount = 2; //DU
3772 infoArray[3].physicalType = LowOpndRegType_scratch;
3780 infoArray[0].regNum = PhysicalReg_EDX;
3781 infoArray[0].refCount = 2;
3782 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3791 infoArray[0].regNum = PhysicalReg_EDX;
3792 infoArray[0].refCount = 2;
3793 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3803 infoArray[0].regNum = PhysicalReg_EDX;
3804 infoArray[0].refCount = 2;
3805 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3816 infoArray[0].regNum = 1;
3817 infoArray[0].refCount = 2; //DU
3818 infoArray[0].physicalType = LowOpndRegType_gp;
3822 infoArray[1].regNum = PhysicalReg_EDX;
3823 infoArray[1].refCount = 2;
3824 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3838 infoArray[0].regNum = PhysicalReg_EDX;
3839 infoArray[0].refCount = 2;
3840 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3847 infoArray[0].regNum = 1;
3848 infoArray[0].refCount = 2; //DU
3849 infoArray[0].physicalType = LowOpndRegType_gp;
3850 infoArray[1].regNum = PhysicalReg_EDX;
3851 infoArray[1].refCount = 6;
3852 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3853 infoArray[2].regNum = PhysicalReg_EAX; //return by dvm helper
3854 infoArray[2].refCount = 2+1; //2 uses
3855 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3856 infoArray[3].regNum = 1;
3857 infoArray[3].refCount = 2;
3858 infoArray[3].physicalType = LowOpndRegType_scratch;
3859 infoArray[4].regNum = 2;
3860 infoArray[4].refCount = 2;
3861 infoArray[4].physicalType = LowOpndRegType_scratch;
3871 infoArray[0].regNum = 1;
3872 infoArray[0].refCount = 4; //DU
3873 infoArray[0].physicalType = LowOpndRegType_gp;
3874 infoArray[1].regNum = 2;
3875 infoArray[1].refCount = 3; //DU
3876 infoArray[1].physicalType = LowOpndRegType_gp;
3877 infoArray[2].regNum = 3;
3878 infoArray[2].refCount = 2; //DU
3879 infoArray[2].physicalType = LowOpndRegType_gp;
3880 infoArray[3].regNum = 4;
3881 infoArray[3].refCount = 2; //DU
3882 infoArray[3].physicalType = LowOpndRegType_gp;
3883 infoArray[3].linkageToVR = vA;
3885 infoArray[3].is8Bit = true;
3886 infoArray[4].regNum = PhysicalReg_EDX;
3887 infoArray[4].refCount = 2;
3888 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3891 infoArray[0].regNum = 1;
3892 infoArray[0].refCount = 4; //DU
3893 infoArray[0].physicalType = LowOpndRegType_gp;
3894 infoArray[1].regNum = 2;
3895 infoArray[1].refCount = 3; //DU
3896 infoArray[1].physicalType = LowOpndRegType_gp;
3897 infoArray[2].regNum = 3;
3898 infoArray[2].refCount = 2; //DU
3899 infoArray[2].physicalType = LowOpndRegType_gp;
3900 infoArray[3].regNum = 1;
3901 infoArray[3].refCount = 2; //DU
3902 infoArray[3].physicalType = LowOpndRegType_xmm;
3903 infoArray[4].regNum = PhysicalReg_EDX;
3904 infoArray[4].refCount = 2;
3905 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3913 infoArray[0].regNum = 1;
3914 infoArray[0].refCount = 4; //DU
3915 infoArray[0].physicalType = LowOpndRegType_gp;
3916 infoArray[1].regNum = 2;
3917 infoArray[1].refCount = 3; //DU
3918 infoArray[1].physicalType = LowOpndRegType_gp;
3919 infoArray[2].regNum = 3;
3920 infoArray[2].refCount = 2; //DU
3921 infoArray[2].physicalType = LowOpndRegType_gp;
3922 infoArray[3].regNum = 4;
3923 infoArray[3].refCount = 2; //DU
3924 infoArray[3].physicalType = LowOpndRegType_gp;
3926 infoArray[3].is8Bit = true;
3927 infoArray[4].regNum = PhysicalReg_EDX;
3928 infoArray[4].refCount = 2;
3929 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3932 infoArray[0].regNum = 1;
3933 infoArray[0].refCount = 4; //DU
3934 infoArray[0].physicalType = LowOpndRegType_gp;
3935 infoArray[1].regNum = 2;
3936 infoArray[1].refCount = 3; //DU
3937 infoArray[1].physicalType = LowOpndRegType_gp;
3938 infoArray[2].regNum = 3;
3939 infoArray[2].refCount = 2; //DU
3940 infoArray[2].physicalType = LowOpndRegType_gp;
3941 infoArray[3].regNum = 1;
3942 infoArray[3].refCount = 2; //DU
3943 infoArray[3].physicalType = LowOpndRegType_xmm;
3944 infoArray[4].regNum = PhysicalReg_EDX;
3945 infoArray[4].refCount = 2;
3946 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3949 infoArray[0].regNum = 1;
3950 infoArray[0].refCount = 5+1; //DU
3951 infoArray[0].physicalType = LowOpndRegType_gp;
3952 infoArray[1].regNum = 2; //live through function call dvmCanPut
3953 infoArray[1].refCount = 3+1; //DU
3954 infoArray[1].physicalType = LowOpndRegType_gp;
3955 infoArray[2].regNum = 3;
3956 infoArray[2].refCount = 2; //DU
3957 infoArray[2].physicalType = LowOpndRegType_gp;
3958 infoArray[3].regNum = 4;
3959 infoArray[3].refCount = 4+1; //DU
3960 infoArray[3].physicalType = LowOpndRegType_gp;
3961 infoArray[4].regNum = 5;
3962 infoArray[4].refCount = 2; //DU
3963 infoArray[4].physicalType = LowOpndRegType_gp;
3964 infoArray[5].regNum = 6;
3965 infoArray[5].refCount = 2; //DU
3966 infoArray[5].physicalType = LowOpndRegType_gp;
3968 infoArray[6].regNum = PhysicalReg_EDX;
3969 infoArray[6].refCount = 2; //DU
3970 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3971 infoArray[7].regNum = PhysicalReg_EAX;
3972 infoArray[7].refCount = 2; //DU
3973 infoArray[7].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3974 infoArray[8].regNum = 1;
3975 infoArray[8].refCount = 2; //DU
3976 infoArray[8].physicalType = LowOpndRegType_scratch;
3977 infoArray[0].shareWithVR = false;
3978 return updateMarkCard_notNull(infoArray,
3989 infoArray[0].regNum = 1;
3990 infoArray[0].refCount = 2; //DU
3991 infoArray[0].physicalType = LowOpndRegType_scratch;
3992 infoArray[1].regNum = 2;
3993 infoArray[1].refCount = 2; //DU
3994 infoArray[1].physicalType = LowOpndRegType_scratch;
3996 infoArray[2].regNum = PhysicalReg_EDX;
3997 infoArray[2].refCount = 2; //DU
3998 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
3999 infoArray[3].regNum = PhysicalReg_EAX;
4000 infoArray[3].refCount = 3; //DU
4001 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4003 infoArray[4].regNum = 3;
4004 infoArray[4].refCount = 3; //DU
4005 infoArray[4].physicalType = LowOpndRegType_gp;
4006 infoArray[5].regNum = 7;
4015 infoArray[5].refCount = 4; //DU
4019 infoArray[5].refCount = 3;
4023 infoArray[5].refCount = 3;
4025 infoArray[5].refCount = 3; //DU
4027 infoArray[5].physicalType = LowOpndRegType_gp;
4028 infoArray[6].regNum = 8;
4029 infoArray[6].refCount = 2; //DU
4030 infoArray[6].physicalType = LowOpndRegType_gp;
4031 infoArray[7].regNum = 9;
4032 infoArray[7].refCount = 2; //DU
4033 infoArray[7].physicalType = LowOpndRegType_gp;
4043 infoArray[0].regNum = 1;
4044 infoArray[0].refCount = 2; //DU
4045 infoArray[0].physicalType = LowOpndRegType_scratch;
4046 infoArray[1].regNum = 2;
4047 infoArray[1].refCount = 2; //DU
4048 infoArray[1].physicalType = LowOpndRegType_scratch;
4050 infoArray[2].regNum = PhysicalReg_EDX;
4051 infoArray[2].refCount = 2; //DU
4052 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4053 infoArray[3].regNum = PhysicalReg_EAX;
4054 infoArray[3].refCount = 3; //DU
4055 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4057 infoArray[4].regNum = 3;
4058 infoArray[4].refCount = 3; //DU
4059 infoArray[4].physicalType = LowOpndRegType_gp;
4060 infoArray[5].regNum = 7;
4061 infoArray[5].refCount = 3; //DU
4062 infoArray[5].physicalType = LowOpndRegType_gp;
4063 infoArray[6].regNum = 8;
4064 infoArray[6].refCount = 2; //DU
4065 infoArray[6].physicalType = LowOpndRegType_gp;
4066 infoArray[7].regNum = 9;
4067 infoArray[7].refCount = 2; //DU
4068 infoArray[7].physicalType = LowOpndRegType_gp;
4070 infoArray[5].shareWithVR = false;
4071 return updateMarkCard(infoArray, 7/*index for valReg*/,
4079 infoArray[0].regNum = 1;
4080 infoArray[0].refCount = 2; //DU
4081 infoArray[0].physicalType = LowOpndRegType_scratch;
4082 infoArray[1].regNum = 2;
4083 infoArray[1].refCount = 2; //DU
4084 infoArray[1].physicalType = LowOpndRegType_scratch;
4086 infoArray[2].regNum = PhysicalReg_EDX;
4087 infoArray[2].refCount = 2; //DU
4088 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4089 infoArray[3].regNum = PhysicalReg_EAX;
4090 infoArray[3].refCount = 3; //DU
4091 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4093 infoArray[4].regNum = 3;
4094 infoArray[4].refCount = 3; //DU
4095 infoArray[4].physicalType = LowOpndRegType_gp;
4096 infoArray[5].regNum = 7;
4097 infoArray[5].refCount = 3; //DU
4098 infoArray[5].physicalType = LowOpndRegType_gp;
4099 infoArray
4100 infoArray[6].refCount = 2; //DU
4101 infoArray[6].physicalType = LowOpndRegType_gp;
4102 infoArray[7].regNum = 1;
4103 infoArray[7].refCount = 2; //DU
4104 infoArray[7].physicalType = LowOpndRegType_xmm;
4107 infoArray[8].regNum = 3;
4108 infoArray[8].refCount = 2; //DU
4109 infoArray[8].physicalType = LowOpndRegType_scratch;
4110 infoArray[9].regNum = 9;
4111 infoArray[9].refCount = 2; //DU
4112 infoArray[9].physicalType = LowOpndRegType_gp;
4125 infoArray[0].regNum = 1;
4126 infoArray[0].refCount = 2; //DU
4127 infoArray[0].physicalType = LowOpndRegType_scratch;
4128 infoArray[1].regNum = 2;
4129 infoArray[1].refCount = 2; //DU
4130 infoArray[1].physicalType = LowOpndRegType_scratch;
4132 infoArray[2].regNum = PhysicalReg_EAX;
4133 infoArray[2].refCount = 2;
4134 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4135 infoArray[3].regNum = 3;
4136 infoArray[3].refCount = 2; //DU
4137 infoArray[3].physicalType = LowOpndRegType_gp;
4138 infoArray[4].regNum = 7;
4139 infoArray[4].refCount = 2; //DU
4140 infoArray[4].physicalType = LowOpndRegType_gp;
4141 infoArray[5].regNum = PhysicalReg_EDX;
4142 infoArray[5].refCount = 2; //DU
4143 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4153 infoArray[0].regNum = 1;
4154 infoArray[0].refCount = 2; //DU
4155 infoArray[0].physicalType = LowOpndRegType_scratch;
4156 infoArray[1].regNum = 2;
4157 infoArray[1].refCount = 2; //DU
4158 infoArray[1].physicalType = LowOpndRegType_scratch;
4160 infoArray[2].regNum = PhysicalReg_EAX;
4161 infoArray[2].refCount = 2+1; //access clazz of the field
4162 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4163 infoArray[3].regNum = 3;
4164 infoArray[3].refCount = 2; //DU
4165 infoArray[3].physicalType = LowOpndRegType_gp;
4166 infoArray[4].regNum = 7;
4167 infoArray[4].refCount = 2; //DU
4168 infoArray[4].physicalType = LowOpndRegType_gp;
4169 infoArray[5].regNum = PhysicalReg_EDX;
4170 infoArray[5].refCount = 2; //DU
4171 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4173 infoArray[2].shareWithVR = false;
4174 infoArray[6].regNum = 12;
4175 infoArray[6].refCount = 1; //1 def, 2 uses in updateMarkCard
4176 infoArray[6].physicalType = LowOpndRegType_gp;
4177 return updateMarkCard(infoArray, 4/*index for valReg*/,
4185 infoArray[0].regNum = 1;
4186 infoArray[0].refCount = 2; //DU
4187 infoArray[0].physicalType = LowOpndRegType_scratch;
4188 infoArray[1].regNum = 2;
4189 infoArray[1].refCount = 2; //DU
4190 infoArray[1].physicalType = LowOpndRegType_scratch;
4192 infoArray[2].regNum = PhysicalReg_EAX;
4193 infoArray[2].refCount = 2;
4194 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4195 infoArray[3].regNum = 3;
4196 infoArray[3].refCount = 2; //DU
4197 infoArray[3].physicalType = LowOpndRegType_gp;
4198 infoArray[4].regNum = 1;
4199 infoArray[4].refCount = 2; //DU
4200 infoArray[4].physicalType = LowOpndRegType_xmm;
4201 infoArray[5].regNum = PhysicalReg_EDX;
4202 infoArray[5].refCount = 2; //DU
4203 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4206 infoArray[6].regNum = 3;
4207 infoArray[6].refCount = 2; //DU
4208 infoArray[6].physicalType = LowOpndRegType_scratch;
4209 infoArray[7].regNum = 9;
4210 infoArray[7].refCount = 2; //DU
4211 infoArray[7].physicalType = LowOpndRegType_gp;
4218 infoArray[0].regNum = 1;
4219 infoArray[0].refCount = 3; //DU
4220 infoArray[0].physicalType = LowOpndRegType_gp;
4221 infoArray[1].regNum = 2;
4222 infoArray[1].refCount = 2; //DU
4223 infoArray[1].physicalType = LowOpndRegType_gp;
4224 infoArray[2].regNum = PhysicalReg_EDX;
4225 infoArray[2].refCount = 2; //DU
4226 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4230 infoArray[0].regNum = 1;
4231 infoArray[0].refCount = 3; //DU
4232 infoArray[0].physicalType = LowOpndRegType_gp;
4233 infoArray[1].regNum = 2;
4234 infoArray[1].refCount = 2; //DU
4235 infoArray[1].physicalType = LowOpndRegType_gp;
4236 infoArray[2].regNum = PhysicalReg_EDX;
4237 infoArray[2].refCount = 2; //DU
4238 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4240 infoArray[0].shareWithVR = false;
4241 return updateMarkCard(infoArray, 1/*index for valReg*/,
4246 infoArray[0].regNum = 1;
4247 infoArray[0].refCount = 3; //DU
4248 infoArray[0].physicalType = LowOpndRegType_gp;
4249 infoArray[1].regNum = 1;
4250 infoArray[1].refCount = 2; //DU
4251 infoArray[1].physicalType = LowOpndRegType_xmm;
4252 infoArray[2].regNum = PhysicalReg_EDX;
4253 infoArray[2].refCount = 2; //DU
4254 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4257 infoArray[0].regNum = 1;
4258 infoArray[0].refCount = 3; //DU
4259 infoArray[0].physicalType = LowOpndRegType_gp;
4260 infoArray[1].regNum = 1;
4261 infoArray[1].refCount = 2; //DU
4262 infoArray[1].physicalType = LowOpndRegType_xmm;
4263 infoArray[2].regNum = PhysicalReg_EDX;
4264 infoArray[2].refCount = 2; //DU
4265 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4270 return updateReturnCommon(infoArray);
4273 numTmps = updateReturnCommon(infoArray);
4275 infoArray[numTmps].regNum = 21;
4276 infoArray[numTmps].refCount = 2; //DU
4277 infoArray[numTmps].physicalType = LowOpndRegType_gp;
4279 infoArray[numTmps].regNum = 22;
4280 infoArray[numTmps].refCount = 2; //DU
4281 infoArray[numTmps].physicalType = LowOpndRegType_gp;
4285 numTmps = updateReturnCommon(infoArray);
4287 infoArray[numTmps].regNum = 10;
4288 infoArray[numTmps].refCount = 2; //DU
4289 infoArray[numTmps].physicalType = LowOpndRegType_scratch;
4291 infoArray[numTmps].regNum = 1;
4292 infoArray[numTmps].refCount = 2; //DU
4293 infoArray[numTmps].physicalType = LowOpndRegType_xmm;
4300 numTmps = updateGenPrediction(infoArray, false /*not interface*/);
4301 infoArray[numTmps].regNum = 5;
4302 infoArray[numTmps].refCount = 3; //DU
4303 infoArray[numTmps].physicalType = LowOpndRegType_gp;
4306 k = updateInvokeNoRange(infoArray, numTmps);
4308 k = updateInvokeRange(infoArray, numTmps);
4311 infoArray[0].regNum = 3;
4312 infoArray[0].refCount = 2; //DU
4313 infoArray[0].physicalType = LowOpndRegType_gp;
4314 infoArray[1].regNum = 7;
4315 infoArray[1].refCount = 2; //DU
4316 infoArray[1].physicalType = LowOpndRegType_gp;
4317 infoArray[2].regNum = 8;
4318 infoArray[2].refCount = 2; //DU
4319 infoArray[2].physicalType = LowOpndRegType_gp;
4320 infoArray[3].regNum = 6;
4321 infoArray[3].refCount = 2; //DU
4322 infoArray[3].physicalType = LowOpndRegType_gp;
4323 infoArray[4].regNum = 5;
4324 infoArray[4].refCount = 3; //DU
4325 infoArray[4].physicalType = LowOpndRegType_gp;
4326 infoArray[5].regNum = PhysicalReg_EDX;
4327 infoArray[5].refCount = 2; //2 versions, first version DU is for exception, 2nd version: eip right before jumping to invokeArgsDone
4328 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4329 infoArray[6].regNum = PhysicalReg_ECX; //ecx is ued in invokeArgsDone
4330 infoArray[6].refCount = 1+1; //used in .invokeArgsDone
4331 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4334 infoArray[7].regNum = PhysicalReg_EAX;
4335 infoArray[7].refCount = 4; //DU
4336 infoArray[7].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4338 infoArray[8].regNum = 1;
4339 infoArray[8].refCount = 2; //DU
4340 infoArray[8].physicalType = LowOpndRegType_scratch;
4341 infoArray[9].regNum = 2;
4342 infoArray[9].refCount = 2; //DU
4343 infoArray[9].physicalType = LowOpndRegType_scratch;
4345 k = updateInvokeNoRange(infoArray, 10);
4347 k = updateInvokeRange(infoArray, 10);
4352 infoArray[0].regNum = 3;
4353 infoArray[0].refCount = 2; //DU
4354 infoArray[0].physicalType = LowOpndRegType_gp;
4355 infoArray[1].regNum = 7;
4356 infoArray[1].refCount = 3; //DU
4357 infoArray[1].physicalType = LowOpndRegType_gp;
4358 infoArray[2].regNum = 8;
4359 infoArray[2].refCount = 3; //DU
4360 infoArray[2].physicalType = LowOpndRegType_gp;
4361 infoArray[3].regNum = 6;
4362 infoArray[3].refCount = 2; //DU
4363 infoArray[3].physicalType = LowOpndRegType_gp;
4364 infoArray[4].regNum = 9;
4365 infoArray[4].refCount = 2; //DU
4366 infoArray[4].physicalType = LowOpndRegType_gp;
4368 infoArray[5].regNum = PhysicalReg_EDX;
4369 infoArray[5].refCount = 2; //DU
4370 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4371 infoArray[6].regNum = PhysicalReg_ECX;
4372 infoArray[6].refCount = 1+1; //DU
4373 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4374 infoArray[7].regNum = PhysicalReg_EAX;
4375 infoArray[7].refCount = 4; //DU
4376 infoArray[7].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4378 infoArray[8].regNum = 1;
4379 infoArray[8].refCount = 2; //DU
4380 infoArray[8].physicalType = LowOpndRegType_scratch;
4381 infoArray[9].regNum = 2;
4382 infoArray[9].refCount = 2; //DU
4383 infoArray[9].physicalType = LowOpndRegType_scratch;
4384 infoArray[10].regNum = 3;
4385 infoArray[10].refCount = 2; //DU
4386 infoArray[10].physicalType = LowOpndRegType_scratch;
4387 infoArray[11].regNum = 4;
4388 infoArray[11].refCount = 2; //DU
4389 infoArray[11].physicalType = LowOpndRegType_scratch;
4391 k = updateInvokeNoRange(infoArray, 12);
4393 k = updateInvokeRange(infoArray, 12);
4397 infoArray[0].regNum = 3;
4398 infoArray[0].refCount = 2; //DU
4399 infoArray[0].physicalType = LowOpndRegType_gp;
4400 infoArray[1].regNum = 5;
4401 infoArray[1].refCount = 2; //DU
4402 infoArray[1].physicalType = LowOpndRegType_gp;
4404 infoArray[2].regNum = PhysicalReg_EDX;
4405 infoArray[2].refCount = 2; //DU
4406 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4407 infoArray[3].regNum = PhysicalReg_ECX;
4408 infoArray[3].refCount = 2;
4409 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4410 infoArray[4].regNum = PhysicalReg_EAX;
4411 infoArray[4].refCount = 2; //DU
4412 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4414 infoArray[5].regNum = 1;
4415 infoArray[5].refCount = 2; //DU
4416 infoArray[5].physicalType = LowOpndRegType_scratch;
4417 infoArray[6].regNum = 2;
4418 infoArray[6].refCount = 2; //DU
4419 infoArray[6].physicalType = LowOpndRegType_scratch;
4421 k = updateInvokeNoRange(infoArray, 7);
4423 k = updateInvokeRange(infoArray, 7);
4427 infoArray[0].regNum = 3;
4428 infoArray[0].refCount = 2; //DU
4429 infoArray[0].physicalType = LowOpndRegType_gp;
4431 infoArray[1].regNum = PhysicalReg_EDX;
4432 infoArray[1].refCount = 2; //DU
4433 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4434 infoArray[2].regNum = PhysicalReg_ECX;
4435 infoArray[2].refCount = 2;
4436 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4437 infoArray[3].regNum = PhysicalReg_EAX;
4438 infoArray[3].refCount = 2; //DU
4439 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4441 infoArray[4].regNum = 1;
4442 infoArray[4].refCount = 2; //DU
4443 infoArray[4].physicalType = LowOpndRegType_scratch;
4444 infoArray[5].regNum = 2;
4445 infoArray[5].refCount = 2; //DU
4446 infoArray[5].physicalType = LowOpndRegType_scratch;
4448 k = updateInvokeNoRange(infoArray, 6);
4450 k = updateInvokeRange(infoArray, 6);
4455 numTmps = updateGenPrediction(infoArray, true /*interface*/);
4456 infoArray[numTmps].regNum = 1;
4457 infoArray[numTmps].refCount = 3; //DU
4458 infoArray[numTmps].physicalType = LowOpndRegType_gp;
4461 k = updateInvokeNoRange(infoArray, numTmps);
4463 k = updateInvokeRange(infoArray, numTmps);
4466 infoArray[0].regNum = 1;
4467 infoArray[0].refCount = 3; //DU
4468 infoArray[0].physicalType = LowOpndRegType_gp;
4469 infoArray[1].regNum = 3;
4470 infoArray[1].refCount = 2; //DU
4471 infoArray[1].physicalType = LowOpndRegType_gp;
4472 infoArray[2].regNum = 4;
4473 infoArray[2].refCount = 2; //DU
4474 infoArray[2].physicalType = LowOpndRegType_gp;
4475 infoArray[3].regNum = 5;
4476 infoArray[3].refCount = 2; //DU
4477 infoArray[3].physicalType = LowOpndRegType_gp;
4479 infoArray[4].regNum = PhysicalReg_EDX;
4480 infoArray[4].refCount = 2; //DU
4481 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4482 infoArray[5].regNum = PhysicalReg_ECX;
4483 infoArray[5].refCount = 1+1; //DU
4484 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4485 infoArray[6].regNum = PhysicalReg_EAX;
4486 infoArray[6].refCount = 2+1; //2 uses
4487 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4489 infoArray[7].regNum = 1;
4490 infoArray[7].refCount = 2; //DU
4491 infoArray[7].physicalType = LowOpndRegType_scratch;
4492 infoArray[8].regNum = 2;
4493 infoArray[8].refCount = 2; //DU
4494 infoArray[8].physicalType = LowOpndRegType_scratch;
4495 infoArray[9].regNum = 3;
4496 infoArray[9].refCount = 2; //DU
4497 infoArray[9].physicalType = LowOpndRegType_scratch;
4499 k = updateInvokeNoRange(infoArray, 10);
4501 k = updateInvokeRange(infoArray, 10);
4507 infoArray[0].regNum = 1;
4508 infoArray[0].refCount = 3; //define, update, use
4509 infoArray[0].physicalType = LowOpndRegType_gp;
4510 infoArray[0].shareWithVR = false;
4513 infoArray[0].regNum = 1;
4514 infoArray[0].refCount = 2; //define, use
4515 infoArray[0].physicalType = LowOpndRegType_xmm;
4516 infoArray[1].regNum = 2;
4517 infoArray[1].refCount = 4; //define, update, use
4518 infoArray[1].physicalType = LowOpndRegType_xmm;
4521 infoArray[0].regNum = 1;
4522 infoArray[0].refCount = 3; //define, update, use
4523 infoArray[0].physicalType = LowOpndRegType_xmm;
4524 infoArray[0].shareWithVR = false;
4525 infoArray[1].regNum = 2;
4526 infoArray[1].refCount = 2;
4527 infoArray[1].physicalType = LowOpndRegType_xmm;
4530 infoArray[0].regNum = 1;
4531 infoArray[0].refCount = 3; //define, update, use
4532 infoArray[0].physicalType = LowOpndRegType_gp;
4533 infoArray[0].shareWithVR = false;
4536 infoArray[0].regNum = 1;
4537 infoArray[0].refCount = 2; //define, use
4538 infoArray[0].physicalType = LowOpndRegType_xmm;
4539 infoArray[1].regNum = 2;
4540 infoArray[1].refCount = 3; //define, update, use
4541 infoArray[1].physicalType = LowOpndRegType_xmm;
4544 infoArray[0].regNum = PhysicalReg_EAX;
4545 infoArray[0].refCount = 2+1;
4546 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4547 infoArray[0].shareWithVR = false;
4548 infoArray[1].regNum = PhysicalReg_EDX;
4549 infoArray[1].refCount = 1+1; //cdq accesses edx & eax
4550 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4560 infoArray[0].regNum = 1;
4561 infoArray[0].refCount = 2;
4562 infoArray[0].physicalType = LowOpndRegType_gp;
4569 infoArray[0].regNum = 1;
4570 infoArray[0].refCount = 2; //define, use
4571 infoArray[0].physicalType = LowOpndRegType_xmm;
4572 infoArray[1].regNum = 2;
4573 infoArray[1].refCount = 2; //define, use
4574 infoArray[1].physicalType = LowOpndRegType_xmm;
4575 infoArray[2].regNum = 3;
4576 infoArray[2].refCount = 2; //define, use
4577 infoArray[2].physicalType = LowOpndRegType_xmm;
4582 infoArray[0].regNum = 1;
4583 infoArray[0].refCount = 4; //define, update, update, use
4584 infoArray[0].physicalType = LowOpndRegType_gp;
4585 infoArray[0].shareWithVR = false;
4608 infoArray[0].regNum = 1;
4609 infoArray[0].refCount = 3; //define, update, use
4610 infoArray[0].physicalType = LowOpndRegType_gp;
4612 infoArray[0].shareWithVR = false;
4628 infoArray[0].regNum = 1;
4629 infoArray[0].refCount = 3; //define, update, use
4630 infoArray[0].physicalType = LowOpndRegType_gp;
4632 infoArray[0].shareWithVR = false;
4633 infoArray[1].regNum = PhysicalReg_ECX;
4634 infoArray[1].refCount = 2; //define, use
4635 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4642 infoArray[0].regNum = 2;
4643 infoArray[0].refCount = 4; //define, update, use
4644 infoArray[0].physicalType = LowOpndRegType_gp;
4645 infoArray[1].regNum = PhysicalReg_EAX; //dividend, quotient
4646 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4647 infoArray[1].shareWithVR = false;
4648 infoArray[2].regNum = PhysicalReg_EDX; //export_pc, output for REM
4649 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4650 infoArray[3].regNum = 1;
4651 infoArray[3].refCount = 2; //define, use
4652 infoArray[3].physicalType = LowOpndRegType_scratch;
4654 infoArray[1].refCount = 5;
4655 infoArray[2].refCount = 4;
4657 infoArray[1].refCount = 4;
4658 infoArray[2].refCount = 5;
4683 infoArray[0].regNum = 1;
4684 infoArray[0].refCount = 3; //define, update, use
4685 infoArray[0].physicalType = LowOpndRegType_gp;
4687 infoArray[0].shareWithVR = false;
4694 infoArray[0].regNum = 1;
4695 infoArray[0].refCount = 2;
4696 infoArray[0].physicalType = LowOpndRegType_gp;
4698 infoArray[0].shareWithVR = false;
4699 infoArray[1].regNum = 2;
4700 infoArray[1].refCount = 3;
4701 infoArray[1].physicalType = LowOpndRegType_gp;
4703 infoArray[1].shareWithVR = false;
4720 infoArray[0].regNum = 2;
4721 infoArray[0].refCount = 3; //define, use, use
4722 infoArray[0].physicalType = LowOpndRegType_gp;
4723 infoArray[1].regNum = 1;
4724 infoArray[1].physicalType = LowOpndRegType_gp;
4725 if(power == 1) infoArray[1].refCount = 5;
4726 else infoArray[1].refCount = 6;
4732 infoArray[0].regNum = PhysicalReg_EDX; //export_pc, output for REM
4733 infoArray[0].refCount = 2;
4734 infoArray[0].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4739 infoArray[1].refCount = 4+1;
4741 infoArray[1].refCount = 4;
4742 infoArray[2].refCount = 2; //edx
4745 infoArray[1].refCount = 3+1;
4747 infoArray[1].refCount = 3;
4748 infoArray[2].refCount = 3; //edx
4750 infoArray[0].regNum = 2;
4751 infoArray[0].refCount = 2; //define, use
4752 infoArray[0].physicalType = LowOpndRegType_gp;
4753 infoArray[1].regNum = PhysicalReg_EAX; //dividend, quotient
4754 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4755 infoArray[1].shareWithVR = false;
4756 infoArray[2].regNum = PhysicalReg_EDX; //export_pc, output for REM
4757 infoArray[2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4770 infoArray[0].regNum = 1;
4771 infoArray[0].refCount = 3; //define, update, use
4772 infoArray[0].physicalType = LowOpndRegType_xmm;
4773 infoArray[0].shareWithVR = false;
4774 infoArray[1].regNum = 2;
4775 infoArray[1].refCount = 2; //define, use
4776 infoArray[1].physicalType = LowOpndRegType_xmm;
4781 infoArray[0].regNum = 1;
4782 infoArray[0].refCount = 3; //define, update, use
4783 infoArray[0].physicalType = LowOpndRegType_xmm;
4784 infoArray[0].shareWithVR = false;
4785 infoArray[1].regNum = 2;
4786 infoArray[1].refCount = 3; //define, update, use
4787 infoArray[1].physicalType = LowOpndRegType_xmm;
4788 infoArray[1].shareWithVR = false;
4789 infoArray[2].regNum = 3;
4790 infoArray[2].refCount = 2; //define, use
4791 infoArray[2].physicalType = LowOpndRegType_xmm;
4796 infoArray[0].regNum = 1;
4797 infoArray[0].refCount = 4; //define, update, use
4798 infoArray[0].physicalType = LowOpndRegType_xmm;
4799 infoArray[0].shareWithVR = false;
4800 infoArray[1].regNum = 2;
4801 infoArray[1].refCount = 4; //define, update, use
4802 infoArray[1].physicalType = LowOpndRegType_xmm;
4803 infoArray[1].shareWithVR = false;
4804 infoArray[2].regNum = 3;
4805 infoArray[2].refCount = 2; //define, use
4806 infoArray[2].physicalType = LowOpndRegType_xmm;
4807 infoArray[3].regNum = 4;
4808 infoArray[3].refCount = 3;
4809 infoArray[3].physicalType = LowOpndRegType_xmm;
4810 infoArray[4].regNum = 5;
4811 infoArray[4].refCount = 3;
4812 infoArray[4].physicalType = LowOpndRegType_xmm;
4817 infoArray[0].regNum = 1;
4818 infoArray[0].refCount = 3; //define, update, use
4819 infoArray[0].physicalType = LowOpndRegType_xmm;
4820 infoArray[0].shareWithVR = false;
4821 infoArray[1].regNum = 2;
4822 infoArray[1].refCount = 3; //define, update, use
4823 infoArray[1].physicalType = LowOpndRegType_xmm;
4824 infoArray[1].shareWithVR = false;
4825 infoArray[2].regNum = 3;
4826 infoArray[2].refCount = 2; //define, use
4827 infoArray[2].physicalType = LowOpndRegType_xmm;
4832 infoArray[0].regNum = 1;
4833 infoArray[0].refCount = 6;
4834 infoArray[0].physicalType = LowOpndRegType_gp;
4835 infoArray[0].shareWithVR = false;
4836 infoArray[1].regNum = 2;
4837 infoArray[1].refCount = 3;
4838 infoArray[1].physicalType = LowOpndRegType_gp;
4839 infoArray[2].regNum = 3;
4840 infoArray[2].refCount = 3;
4841 infoArray[2].physicalType = LowOpndRegType_gp;
4842 infoArray[3].regNum = PhysicalReg_EAX;
4843 infoArray[3].refCount = 2+1; //for mul_opc
4844 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4845 infoArray[4].regNum = PhysicalReg_EDX;
4846 infoArray[4].refCount = 2; //for mul_opc
4847 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4854 infoArray[0].regNum = 1;
4855 infoArray[0].refCount = 3;
4856 infoArray[0].physicalType = LowOpndRegType_gp;
4857 infoArray[0].shareWithVR = false;
4858 infoArray[1].regNum = 2;
4859 infoArray[1].refCount = 3;
4860 infoArray[1].physicalType = LowOpndRegType_gp;
4861 infoArray[2].regNum = 1;
4862 infoArray[2].refCount = 2;
4863 infoArray[2].physicalType = LowOpndRegType_xmm;
4864 infoArray[3].regNum = PhysicalReg_EAX;
4865 infoArray[3].refCount = 2; //defined by function call
4866 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4867 infoArray[4].regNum = PhysicalReg_EDX;
4868 infoArray[4].refCount = 2; //next version has 2 references
4869 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
4870 infoArray[5].regNum = 1;
4871 infoArray[5].refCount = 2;
4872 infoArray[5].physicalType = LowOpndRegType_scratch;
4891 infoArray[0].regNum = 1;
4892 infoArray[0].refCount = 3;
4893 infoArray[0].physicalType = LowOpndRegType_xmm;
4901 infoArray[0].shareWithVR = false;
4902 infoArray[1].regNum = 2;
4903 infoArray[1].refCount = 2;
4904 infoArray[1].physicalType = LowOpndRegType_xmm;
4908 infoArray[0].regNum = 1;
4909 infoArray[0].refCount = 2;
4910 infoArray[0].physicalType = LowOpndRegType_gp;
4911 infoArray[1].regNum = 2;
4912 infoArray[1].refCount = 2;
4913 infoArray[1].physicalType = LowOpndRegType_gp;
4914 infoArray[2].regNum = 1;
4915 infoArray[2].refCount = 2;
4916 infoArray[2].physicalType = LowOpndRegType_scratch;
4921 infoArray[0].regNum = 1;
4922 infoArray[0].refCount = 2;
4923 infoArray[0].physicalType = LowOpndRegType_xmm;
4924 infoArray[1].regNum = 2;
4925 infoArray[1].refCount = 2;
4926 infoArray[1].physicalType = LowOpndRegType_xmm;
4927 infoArray[2].regNum = 1;
4928 infoArray[2].refCount = 2;
4929 infoArray[2].physicalType = LowOpndRegType_scratch;
4934 infoArray[0].regNum = 1;
4935 infoArray[0].refCount = 2;
4936 infoArray[0].physicalType = LowOpndRegType_xmm;
4937 infoArray[1].regNum = 1;
4938 infoArray[1].refCount = 2;
4939 infoArray[1].physicalType = LowOpndRegType_gp;
4940 infoArray[2].regNum = 2;
4941 infoArray[2].refCount = 2;
4942 infoArray[2].physicalType = LowOpndRegType_gp;
4943 infoArray[3].regNum = 3;
4944 infoArray[3].refCount = 2;
4945 infoArray[3].physicalType = LowOpndRegType_gp;
4946 infoArray[4].regNum = 4; //return
4947 infoArray[4].refCount = 5;
4948 infoArray[4].physicalType = LowOpndRegType_gp;
4952 infoArray[0].regNum = 1;
4953 infoArray[0].refCount = 2;
4954 infoArray[0].physicalType = LowOpndRegType_xmm;
4955 infoArray[1].regNum = 1;
4956 infoArray[1].refCount = 2;
4957 infoArray[1].physicalType = LowOpndRegType_gp;
4958 infoArray[2].regNum = 2;
4959 infoArray[2].refCount = 3;
4960 infoArray[2].physicalType = LowOpndRegType_gp;
4961 infoArray[3].regNum = 3;
4962 infoArray[3].refCount = 5;
4963 infoArray[3].physicalType = LowOpndRegType_gp;
4967 infoArray[0].regNum = 1;
4968 infoArray[0].refCount = 2;
4969 infoArray[0].physicalType = LowOpndRegType_xmm;
4970 infoArray[1].regNum = 1;
4971 infoArray[1].refCount = 2;
4972 infoArray[1].physicalType = LowOpndRegType_gp;
4973 infoArray[2].regNum = 2;
4974 infoArray[2].refCount = 3;
4975 infoArray[2].physicalType = LowOpndRegType_gp;
4976 infoArray[3].regNum = 3;
4977 infoArray[3].refCount = 5;
4978 infoArray[3].physicalType = LowOpndRegType_gp;
4982 infoArray[0].regNum = 1;
4983 infoArray[0].refCount = 2;
4984 infoArray[0].physicalType = LowOpndRegType_gp;
4985 infoArray[1].regNum = 2;
4986 infoArray[1].refCount = 2;
4987 infoArray[1].physicalType = LowOpndRegType_gp;
4988 infoArray[2].regNum = 3;
4989 infoArray[2].refCount = 3;
4990 infoArray[2].physicalType = LowOpndRegType_gp;
4991 infoArray[3].regNum = 4;
4992 infoArray[3].refCount = 3;
4993 infoArray[3].physicalType = LowOpndRegType_gp;
4994 infoArray[4].regNum = 5;
4995 infoArray[4].refCount = 2;
4996 infoArray[4].physicalType = LowOpndRegType_gp;
4997 infoArray[5].regNum = 6;
4998 infoArray[5].refCount = 7;
4999 infoArray[5].physicalType = LowOpndRegType_gp;
5011 infoArray[0].regNum = 1;
5012 infoArray[0].refCount = 3;
5013 infoArray[0].physicalType = LowOpndRegType_gp;
5014 infoArray[1].regNum = 2;
5015 infoArray[1].refCount = 2;
5016 infoArray[1].physicalType = LowOpndRegType_gp;
5017 infoArray[2].regNum = 3;
5018 infoArray[2].refCount = 2;
5019 infoArray[2].physicalType = LowOpndRegType_gp;
5020 infoArray[3].regNum = 1;
5021 infoArray[3].refCount = 2;
5022 infoArray[3].physicalType = LowOpndRegType_scratch;
5025 infoArray[0].regNum = 1;
5026 infoArray[0].refCount = 3;
5027 infoArray[0].physicalType = LowOpndRegType_gp;
5028 infoArray[1].regNum = 2;
5029 infoArray[1].refCount = 4;
5030 infoArray[1].physicalType = LowOpndRegType_gp;
5031 infoArray[2].regNum = 1;
5032 infoArray[2].refCount = 2;
5033 infoArray[2].physicalType = LowOpndRegType_scratch;
5039 infoArray[0].regNum = 1;
5040 infoArray[0].refCount = 14 * LOOP_COUNT;
5041 infoArray[0].physicalType = LowOpndRegType_gp;
5042 infoArray[1].regNum = 2;
5043 infoArray[1].refCount = 3 * LOOP_COUNT;
5044 infoArray[1].physicalType = LowOpndRegType_gp;
5045 infoArray[2].regNum = 3;
5046 infoArray[2].refCount = 11 * LOOP_COUNT;
5047 infoArray[2].physicalType = LowOpndRegType_gp;
5048 infoArray[3].regNum = 4;
5049 infoArray[3].refCount = 3 * LOOP_COUNT;
5050 infoArray[3].physicalType = LowOpndRegType_gp;
5051 infoArray[4].regNum = 5;
5052 infoArray[4].refCount = 9 * LOOP_COUNT;
5053 infoArray[4].physicalType = LowOpndRegType_gp;
5054 infoArray[5].regNum = 6;
5055 infoArray[5].refCount = 4 * LOOP_COUNT;
5056 infoArray[5].physicalType = LowOpndRegType_gp;
5057 infoArray[6].regNum = 7;
5058 infoArray[6].refCount = 2;
5059 infoArray[6].physicalType = LowOpndRegType_gp;
5060 infoArray[7].regNum = 1;
5061 infoArray[7].refCount = 2;
5062 infoArray[7].physicalType = LowOpndRegType_scratch;
5066 infoArray[0].regNum = 1;
5067 infoArray[0].refCount = 7;
5068 infoArray[0].physicalType = LowOpndRegType_gp;
5069 infoArray[1].regNum = 2;
5070 infoArray[1].refCount = 2;
5071 infoArray[1].physicalType = LowOpndRegType_gp;
5072 infoArray[2].regNum = 3;
5073 infoArray[2].refCount = 3;
5074 infoArray[2].physicalType = LowOpndRegType_gp;
5075 infoArray[3].regNum = 4;
5076 infoArray[3].refCount = 3;
5077 infoArray[3].physicalType = LowOpndRegType_gp;
5078 infoArray[4].regNum = 5;
5079 infoArray[4].refCount = 2;
5080 infoArray[4].physicalType = LowOpndRegType_gp;
5081 infoArray[5].regNum = 6;
5082 infoArray[5].refCount = 5;
5083 infoArray[5].physicalType = LowOpndRegType_gp;
5086 infoArray[0].regNum = 1;
5087 infoArray[0].refCount = 5;
5088 infoArray[0].physicalType = LowOpndRegType_gp;
5089 infoArray[1].regNum = 2;
5090 infoArray[1].refCount = 4;
5091 infoArray[1].physicalType = LowOpndRegType_gp;
5092 infoArray[2].regNum = 3;
5093 infoArray[2].refCount = 2;
5094 infoArray[2].physicalType = LowOpndRegType_gp;
5097 infoArray[0].regNum = 1;
5098 infoArray[0].refCount = 4;
5099 infoArray[0].physicalType = LowOpndRegType_gp;
5100 infoArray[1].regNum = 2;
5101 infoArray[1].refCount = 3;
5102 infoArray[1].physicalType = LowOpndRegType_gp;
5103 infoArray[2].regNum = 3;
5104 infoArray[2].refCount = 2;
5105 infoArray[2].physicalType = LowOpndRegType_gp;
5108 infoArray[0].regNum = 1;
5109 infoArray[0].refCount = 3;
5110 infoArray[0].physicalType = LowOpndRegType_gp;
5111 infoArray[1].regNum = 2;
5112 infoArray[1].refCount = 2;
5113 infoArray[1].physicalType = LowOpndRegType_gp;
5116 infoArray[0].regNum = 1;
5117 infoArray[0].refCount = 2;
5118 infoArray[0].physicalType = LowOpndRegType_gp;
5119 infoArray[1].regNum = 2;
5120 infoArray[1].refCount = 3;
5121 infoArray[1].physicalType = LowOpndRegType_gp;
5122 infoArray[2].regNum = 3;
5123 infoArray[2].refCount = 3;
5124 infoArray[2].physicalType = LowOpndRegType_gp;
5127 infoArray[0].regNum = 1;
5128 infoArray[0].refCount = 2;
5129 infoArray[0].physicalType = LowOpndRegType_gp;
5130 infoArray[1].regNum = 2;
5131 infoArray[1].refCount = 2;
5132 infoArray[1].physicalType = LowOpndRegType_gp;
5135 infoArray[0].regNum = 1;
5136 infoArray[0].refCount = 2;
5137 infoArray[0].physicalType = LowOpndRegType_gp;
5138 infoArray[1].regNum = 2;
5139 infoArray[1].refCount = 2;
5140 infoArray[1].physicalType = LowOpndRegType_gp;
5143 infoArray[0].regNum = 1;
5144 infoArray[0].refCount = 2;
5145 infoArray[0].physicalType = LowOpndRegType_gp;
5146 infoArray[1].regNum = 2;
5147 infoArray[1].refCount = 2;
5148 infoArray[1].physicalType = LowOpndRegType_gp;
5149 infoArray[2].regNum = 3;
5150 infoArray[2].refCount = 3;
5151 infoArray[2].physicalType = LowOpndRegType_gp;
5154 infoArray[0].regNum = 1;
5155 infoArray[0].refCount = 2;
5156 infoArray[0].physicalType = LowOpndRegType_gp;
5157 infoArray[1].regNum = 2;
5158 infoArray[1].refCount = 2;
5159 infoArray[1].physicalType = LowOpndRegType_gp;
5160 infoArray[2].regNum = 3;
5161 infoArray[2].refCount = 3;
5162 infoArray[2].physicalType = LowOpndRegType_gp;
5168 infoArray[0].regNum = 1;
5169 infoArray[0].refCount = 4;
5170 infoArray[0].physicalType = LowOpndRegType_gp;
5172 infoArray[1].regNum = 2;
5173 infoArray[1].refCount = 2;
5174 infoArray[1].physicalType = LowOpndRegType_gp;
5177 infoArray[2].regNum = 3;
5178 infoArray[2].refCount = 2;
5179 infoArray[2].physicalType = LowOpndRegType_gp;
5182 infoArray[3].regNum = 4;
5183 infoArray[3].refCount = 2;
5184 infoArray[3].physicalType = LowOpndRegType_gp;
5187 infoArray[4].regNum = 5;
5188 infoArray[4].refCount = 2;
5189 infoArray[4].physicalType = LowOpndRegType_gp;
5191 infoArray[num+1].regNum = 6;
5192 infoArray[num+1].refCount = 2;
5193 infoArray[num+1].physicalType = LowOpndRegType_gp;
5194 infoArray[num+2].regNum = PhysicalReg_EAX;
5195 infoArray[num+2].refCount = 2;
5196 infoArray[num+2].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5197 infoArray[num+3].regNum = PhysicalReg_EDX;
5198 infoArray[num+3].refCount = 2;
5199 infoArray[num+3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5200 infoArray[num+4].regNum = 1;
5201 infoArray[num+4].refCount = 4;
5202 infoArray[num+4].physicalType = LowOpndRegType_scratch;
5211 numTmps = updateGenPrediction(infoArray, false /*not interface*/);
5212 infoArray[numTmps].regNum = 1;
5213 infoArray[numTmps].refCount = 3; //DU
5214 infoArray[numTmps].physicalType = LowOpndRegType_gp;
5217 k = updateInvokeNoRange(infoArray, numTmps);
5219 k = updateInvokeRange(infoArray, numTmps);
5222 infoArray[0].regNum = 1;
5223 infoArray[0].refCount = 3;
5224 infoArray[0].physicalType = LowOpndRegType_gp;
5225 infoArray[1].regNum = 2;
5226 infoArray[1].refCount = 2;
5227 infoArray[1].physicalType = LowOpndRegType_gp;
5228 infoArray[2].regNum = 3;
5229 infoArray[2].refCount = 2;
5230 infoArray[2].physicalType = LowOpndRegType_gp;
5232 infoArray[3].regNum = PhysicalReg_ECX;
5233 infoArray[3].refCount = 1+1;
5234 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5235 infoArray[4].regNum = PhysicalReg_EDX;
5236 infoArray[4].refCount = 2;
5237 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5239 k = updateInvokeRange(infoArray, 5);
5241 k = updateInvokeNoRange(infoArray, 5);
5246 infoArray[0].regNum = 1;
5247 infoArray[0].refCount = 2;
5248 infoArray[0].physicalType = LowOpndRegType_gp;
5249 infoArray[1].regNum = 4;
5250 infoArray[1].refCount = 2;
5251 infoArray[1].physicalType = LowOpndRegType_gp;
5252 infoArray[2].regNum = 5;
5253 infoArray[2].refCount = 2;
5254 infoArray[2].physicalType = LowOpndRegType_gp;
5256 infoArray[3].regNum = PhysicalReg_ECX;
5257 infoArray[3].refCount = 1+1;
5258 infoArray[3].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5259 infoArray[4].regNum = PhysicalReg_EDX;
5260 infoArray[4].refCount = 2;
5261 infoArray[4].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5263 infoArray[5].regNum = 1;
5264 infoArray[5].refCount = 2;
5265 infoArray[5].physicalType = LowOpndRegType_scratch;
5266 infoArray[6].regNum = 2;
5267 infoArray[6].refCount = 2;
5268 infoArray[6].physicalType = LowOpndRegType_scratch;
5270 k = updateInvokeRange(infoArray, 7);
5272 k = updateInvokeNoRange(infoArray, 7);
5284 infoArray[0].regNum = 1;
5285 infoArray[0].refCount = 2; //DU
5286 infoArray[0].physicalType = LowOpndRegType_gp;
5287 infoArray[1].regNum = 2;
5288 infoArray[1].refCount = 2; //DU
5289 infoArray[1].physicalType = LowOpndRegType_gp;
5290 infoArray[2].regNum = 3;
5291 infoArray[2].refCount = 2; //DU
5292 infoArray[2].physicalType = LowOpndRegType_gp;
5293 infoArray[3].regNum = 4;
5294 infoArray[3].refCount = 2; //DU
5295 infoArray[3].physicalType = LowOpndRegType_gp;
5296 infoArray[3].linkageToVR = vA;
5298 infoArray[3].is8Bit = true;
5301 infoArray[0].regNum = 1;
5302 infoArray[0].refCount = 2; //DU
5303 infoArray[0].physicalType = LowOpndRegType_gp;
5304 infoArray[1].regNum = 2;
5305 infoArray[1].refCount = 2; //DU
5306 infoArray[1].physicalType = LowOpndRegType_gp;
5307 infoArray[2].regNum = 3;
5308 infoArray[2].refCount = 2; //DU
5309 infoArray[2].physicalType = LowOpndRegType_gp;
5310 infoArray[3].regNum = 1;
5311 infoArray[3].refCount = 2; //DU
5312 infoArray[3].physicalType = LowOpndRegType_xmm;
5320 infoArray[0].regNum = 1;
5321 infoArray[0].refCount = 2; //DU
5322 infoArray[0].physicalType = LowOpndRegType_gp;
5323 infoArray[1].regNum = 2;
5324 infoArray[1].refCount = 2; //DU
5325 infoArray[1].physicalType = LowOpndRegType_gp;
5326 infoArray[2].regNum = 3;
5327 infoArray[2].refCount = 2; //DU
5328 infoArray[2].physicalType = LowOpndRegType_gp;
5329 infoArray[3].regNum = 4;
5330 infoArray[3].refCount = 2; //DU
5331 infoArray[3].physicalType = LowOpndRegType_gp;
5333 infoArray[3].is8Bit = true;
5336 infoArray[0].regNum = 1;
5337 infoArray[0].refCount = 2; //DU
5338 infoArray[0].physicalType = LowOpndRegType_gp;
5339 infoArray[1].regNum = 2;
5340 infoArray[1].refCount = 2; //DU
5341 infoArray[1].physicalType = LowOpndRegType_gp;
5342 infoArray[2].regNum = 3;
5343 infoArray[2].refCount = 2; //DU
5344 infoArray[2].physicalType = LowOpndRegType_gp;
5345 infoArray[3].regNum = 1;
5346 infoArray[3].refCount = 2; //DU
5347 infoArray[3].physicalType = LowOpndRegType_xmm;
5356 infoArray[0].regNum = 1;
5357 infoArray[0].refCount = 2; //DU
5358 infoArray[0].physicalType = LowOpndRegType_gp;
5359 infoArray[1].regNum = 2;
5360 infoArray[1].refCount = 2; //DU
5361 infoArray[1].physicalType = LowOpndRegType_gp;
5362 infoArray[1].linkageToVR = vA;
5364 infoArray[1].is8Bit = true;
5367 infoArray[0].regNum = 1;
5368 infoArray[0].refCount = 2; //DU
5369 infoArray[0].physicalType = LowOpndRegType_gp;
5370 infoArray[1].regNum = 1;
5371 infoArray[1].refCount = 2; //DU
5372 infoArray[1].physicalType = LowOpndRegType_xmm;
5380 infoArray[0].regNum = 1;
5381 infoArray[0].refCount = 2; //DU
5382 infoArray[0].physicalType = LowOpndRegType_gp;
5383 infoArray[1].regNum = 2;
5384 infoArray[1].refCount = 2; //DU
5385 infoArray[1].physicalType = LowOpndRegType_gp;
5387 infoArray[1].is8Bit = true;
5390 infoArray[0].regNum = 1;
5391 infoArray[0].refCount = 2; //DU
5392 infoArray[0].physicalType = LowOpndRegType_gp;
5393 infoArray[1].regNum = 1;
5394 infoArray[1].refCount = 2; //DU
5395 infoArray[1].physicalType = LowOpndRegType_xmm;
5398 infoArray[0].regNum = 1;
5399 infoArray[0].refCount = 3; //DU
5400 infoArray[0].physicalType = LowOpndRegType_gp;
5401 infoArray[1].regNum = 2;
5402 infoArray[1].refCount = 2; //DU
5403 infoArray[1].physicalType = LowOpndRegType_gp;
5406 infoArray[0].regNum = 1;
5407 infoArray[0].refCount = 2; //DU
5408 infoArray[0].physicalType = LowOpndRegType_gp;
5409 infoArray[1].regNum = 2;
5410 infoArray[1].refCount = 2; //DU
5411 infoArray[1].physicalType = LowOpndRegType_gp;
5414 infoArray[0].regNum = 1;
5415 infoArray[0].refCount = 2; //DU
5416 infoArray[0].physicalType = LowOpndRegType_gp;
5417 infoArray[1].regNum = PhysicalReg_EDX;
5418 infoArray[1].refCount = 2;
5419 infoArray[1].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5422 infoArray[0].regNum = 1;
5423 infoArray[0].refCount = 3; //DU
5424 infoArray[0].physicalType = LowOpndRegType_gp;
5425 infoArray[1].regNum = 2;
5426 infoArray[1].refCount = 3; //DU
5427 infoArray[1].physicalType = LowOpndRegType_gp;
5428 infoArray[2].regNum = 5;
5429 infoArray[2].refCount = 2; //DU
5430 infoArray[2].physicalType = LowOpndRegType_gp;
5431 infoArray[3].regNum = 6;
5432 infoArray[3].refCount = 2; //DU
5433 infoArray[3].physicalType = LowOpndRegType_gp;
5434 infoArray[4].regNum = 1;
5435 infoArray[4].refCount = 2; //DU
5436 infoArray[4].physicalType = LowOpndRegType_scratch;
5437 infoArray[5].regNum = PhysicalReg_EAX;
5438 infoArray[5].refCount = 2;
5439 infoArray[5].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;
5442 infoArray[0].regNum = 1;
5443 infoArray[0].refCount = 3; //DU
5444 infoArray[0].physicalType = LowOpndRegType_gp;
5445 infoArray[1].regNum = 2;
5446 infoArray[1].refCount = 4; //DU
5447 infoArray[1].physicalType = LowOpndRegType_gp;
5448 infoArray[2].regNum = 3;
5449 infoArray[2].refCount = 2; //DU
5450 infoArray[2].physicalType = LowOpndRegType_gp;
5451 infoArray[3].regNum = 5;
5452 infoArray[3].refCount = 2; //DU
5453 infoArray[3].physicalType = LowOpndRegType_gp;
5454 infoArray[4].regNum = 6;
5455 infoArray[4].refCount = 2; //DU
5456 infoArray[4].physicalType = LowOpndRegType_gp;
5457 infoArray[5].regNum = 1;
5458 infoArray[5].refCount = 2; //DU
5459 infoArray[5].physicalType = LowOpndRegType_scratch;
5460 infoArray[6].regNum = PhysicalReg_EAX;
5461 infoArray[6].refCount = 2;
5462 infoArray[6].physicalType = LowOpndRegType_gp | LowOpndRegType_hard;