Home | History | Annotate | Download | only in dex

Lines Matching full:instruction

30 static constexpr uint16_t kInvokeMemoryVersionBumpOp = Instruction::INVOKE_VIRTUAL;
31 static constexpr uint16_t kUnresolvedSFieldOp = Instruction::SGET;
32 static constexpr uint16_t kResolvedSFieldOp = Instruction::SGET_WIDE;
33 static constexpr uint16_t kUnresolvedIFieldOp = Instruction::IGET;
34 static constexpr uint16_t kNonAliasingIFieldLocOp = Instruction::IGET_WIDE;
35 static constexpr uint16_t kNonAliasingIFieldInitialOp = Instruction::IGET_OBJECT;
36 static constexpr uint16_t kAliasingIFieldOp = Instruction::IGET_BOOLEAN;
37 static constexpr uint16_t kAliasingIFieldStartVersionOp = Instruction::IGET_BYTE;
38 static constexpr uint16_t kAliasingIFieldBumpVersionOp = Instruction::IGET_CHAR;
39 static constexpr uint16_t kNonAliasingArrayOp = Instruction::AGET;
40 static constexpr uint16_t kNonAliasingArrayStartVersionOp = Instruction::AGET_WIDE;
41 static constexpr uint16_t kNonAliasingArrayBumpVersionOp = Instruction::AGET_OBJECT;
42 static constexpr uint16_t kAliasingArrayOp = Instruction::AGET_BOOLEAN;
43 static constexpr uint16_t kAliasingArrayStartVersionOp = Instruction::AGET_BYTE;
44 static constexpr uint16_t kAliasingArrayBumpVersionOp = Instruction::AGET_CHAR;
45 static constexpr uint16_t kMergeBlockMemoryVersionBumpOp = Instruction::INVOKE_VIRTUAL_RANGE;
46 static constexpr uint16_t kMergeBlockAliasingIFieldVersionBumpOp = Instruction::IPUT;
47 static constexpr uint16_t kMergeBlockAliasingIFieldMergeLocationOp = Instruction::IPUT_WIDE;
48 static constexpr uint16_t kMergeBlockNonAliasingArrayVersionBumpOp = Instruction::APUT;
49 static constexpr uint16_t kMergeBlockNonAliasingArrayMergeLocationOp = Instruction::APUT_WIDE;
50 static constexpr uint16_t kMergeBlockAliasingArrayVersionBumpOp = Instruction::APUT_OBJECT;
51 static constexpr uint16_t kMergeBlockAliasingArrayMergeLocationOp = Instruction::APUT_BOOLEAN;
52 static constexpr uint16_t kMergeBlockNonAliasingIFieldVersionBumpOp = Instruction::APUT_BYTE;
53 static constexpr uint16_t kMergeBlockSFieldVersionBumpOp = Instruction::APUT_CHAR;
492 if ((mir->dalvikInsn.FlagsOf() & Instruction::kInvoke) != 0) {
1215 Instruction::Code op = raw_dest.fp ? Instruction::CONST_HIGH16 : Instruction::CONST;
1224 Instruction::Code op = raw_dest.fp ? Instruction::CONST_HIGH16 : Instruction::CONST;
1239 uint16_t type = AGetMemAccessType(static_cast<Instruction::Code>(opcode));
1250 if (opcode == Instruction::AGET_WIDE) {
1259 int array_idx = (opcode == Instruction::APUT_WIDE) ? 2 : 1;
1266 uint16_t type = APutMemAccessType(static_cast<Instruction::Code>(opcode));
1267 uint16_t value = (opcode == Instruction::APUT_WIDE)
1308 uint16_t type = IGetMemAccessType(static_cast<Instruction::Code>(opcode));
1324 if (opcode == Instruction::IGET_WIDE) {
1333 int base_reg = (opcode == Instruction::IPUT_WIDE) ? 2 : 1;
1336 uint16_t type = IPutMemAccessType(static_cast<Instruction::Code>(opcode));
1367 uint16_t value = (opcode == Instruction::IPUT_WIDE)
1417 uint16_t type = SGetMemAccessType(static_cast<Instruction::Code>(opcode));
1431 if (opcode == Instruction::SGET_WIDE) {
1446 uint16_t type = SPutMemAccessType(static_cast<Instruction::Code>(opcode));
1458 uint16_t value = (opcode == Instruction::SPUT_WIDE)
1507 case Instruction::NOP:
1508 case Instruction::RETURN_VOID:
1509 case Instruction::RETURN:
1510 case Instruction::RETURN_OBJECT:
1511 case Instruction::RETURN_WIDE:
1512 case Instruction::GOTO:
1513 case Instruction::GOTO_16:
1514 case Instruction::GOTO_32:
1515 case Instruction::THROW:
1516 case Instruction::FILL_ARRAY_DATA:
1517 case Instruction::PACKED_SWITCH:
1518 case Instruction::SPARSE_SWITCH:
1519 case Instruction
1520 case Instruction::IF_NE:
1521 case Instruction::IF_LT:
1522 case Instruction::IF_GE:
1523 case Instruction::IF_GT:
1524 case Instruction::IF_LE:
1525 case Instruction::IF_EQZ:
1526 case Instruction::IF_NEZ:
1527 case Instruction::IF_LTZ:
1528 case Instruction::IF_GEZ:
1529 case Instruction::IF_GTZ:
1530 case Instruction::IF_LEZ:
1539 case Instruction::MONITOR_ENTER:
1544 case Instruction::MONITOR_EXIT:
1554 case Instruction::FILLED_NEW_ARRAY:
1555 case Instruction::FILLED_NEW_ARRAY_RANGE:
1557 if (mir->next != nullptr && mir->next->dalvikInsn.opcode == Instruction::MOVE_RESULT_OBJECT) {
1566 uint16_t index = gvn_->LookupValue(Instruction::CONST, i, 0u, 0);
1586 case Instruction::INVOKE_DIRECT:
1587 case Instruction::INVOKE_DIRECT_RANGE:
1588 case Instruction::INVOKE_VIRTUAL:
1589 case Instruction::INVOKE_VIRTUAL_RANGE:
1590 case Instruction::INVOKE_SUPER:
1591 case Instruction::INVOKE_SUPER_RANGE:
1592 case Instruction::INVOKE_INTERFACE:
1593 case Instruction::INVOKE_INTERFACE_RANGE: {
1599 case Instruction::INVOKE_STATIC:
1600 case Instruction::INVOKE_STATIC_RANGE:
1606 case Instruction::INSTANCE_OF: {
1609 res = gvn_->LookupValue(Instruction::INSTANCE_OF, operand, type, kNoValue);
1613 case Instruction::CHECK_CAST:
1619 uint16_t cond = gvn_->FindValue(Instruction::INSTANCE_OF, operand, type, kNoValue);
1630 case Instruction::MOVE_RESULT:
1631 case Instruction::MOVE_RESULT_OBJECT:
1636 case Instruction::MOVE_EXCEPTION:
1637 case Instruction::NEW_INSTANCE:
1638 case Instruction::NEW_ARRAY:
1643 case Instruction::CONST_CLASS:
1645 res = gvn_->LookupValue(Instruction::CONST_CLASS, mir->dalvikInsn.vB, 0, 0);
1650 case Instruction::CONST_STRING:
1651 case Instruction::CONST_STRING_JUMBO:
1653 res = gvn_->LookupValue(Instruction::CONST_STRING, Low16Bits(mir->dalvikInsn.vB),
1663 case Instruction::MOVE_RESULT_WIDE:
1673 case Instruction::MOVE:
1674 case Instruction::MOVE_OBJECT:
1675 case Instruction::MOVE_16:
1676 case Instruction::MOVE_OBJECT_16:
1677 case Instruction::MOVE_FROM16:
1678 case Instruction::MOVE_OBJECT_FROM16:
1685 case Instruction::MOVE_WIDE:
1686 case Instruction::MOVE_WIDE_16:
1687 case Instruction::MOVE_WIDE_FROM16:
1693 case Instruction::CONST_HIGH16:
1696 case Instruction::CONST:
1697 case Instruction::CONST_4:
1698 case Instruction::CONST_16:
1702 case Instruction::CONST_WIDE_16:
1703 case Instruction::CONST_WIDE_32:
1710 case Instruction::CONST_WIDE:
1714 case Instruction::CONST_WIDE_HIGH16:
1718 case Instruction::ARRAY_LENGTH: {
1724 case Instruction::NEG_INT:
1725 case Instruction::NOT_INT:
1726 case Instruction::NEG_FLOAT:
1727 case Instruction::INT_TO_BYTE:
1728 case Instruction::INT_TO_SHORT:
1729 case Instruction::INT_TO_CHAR:
1730 case Instruction::INT_TO_FLOAT:
1731 case Instruction::FLOAT_TO_INT: {
1739 case Instruction::LONG_TO_FLOAT:
1740 case Instruction::LONG_TO_INT:
1741 case Instruction::DOUBLE_TO_FLOAT:
1742 case Instruction::DOUBLE_TO_INT: {
1750 case Instruction::DOUBLE_TO_LONG:
1751 case Instruction::LONG_TO_DOUBLE:
1752 case Instruction::NEG_LONG:
1753 case Instruction::NOT_LONG:
1754 case Instruction::NEG_DOUBLE: {
1762 case Instruction::FLOAT_TO_DOUBLE:
1763 case Instruction::FLOAT_TO_LONG:
1764 case Instruction::INT_TO_DOUBLE:
1765 case Instruction::INT_TO_LONG: {
1773 case Instruction::CMPL_DOUBLE:
1774 case Instruction::CMPG_DOUBLE:
1775 case Instruction::CMP_LONG: {
1784 case Instruction::DIV_INT:
1785 case Instruction::DIV_INT_2ADDR:
1786 case Instruction::REM_INT:
1787 case Instruction::REM_INT_2ADDR:
1791 case Instruction::CMPG_FLOAT:
1792 case Instruction::CMPL_FLOAT:
1793 case Instruction::ADD_INT:
1794 case Instruction::ADD_INT_2ADDR:
1795 case Instruction::MUL_INT:
1796 case Instruction::MUL_INT_2ADDR:
1797 case Instruction::AND_INT:
1798 case Instruction::AND_INT_2ADDR:
1799 case Instruction::OR_INT:
1800 case Instruction::OR_INT_2ADDR:
1801 case Instruction::XOR_INT:
1802 case Instruction::XOR_INT_2ADDR:
1803 case Instruction::SUB_INT:
1804 case Instruction::SUB_INT_2ADDR:
1805 case Instruction::SHL_INT:
1806 case Instruction::SHL_INT_2ADDR:
1807 case Instruction::SHR_INT:
1808 case Instruction::SHR_INT_2ADDR:
1809 case Instruction::USHR_INT:
1810 case Instruction::USHR_INT_2ADDR: {
1819 case Instruction::DIV_LONG:
1820 case Instruction::REM_LONG:
1821 case Instruction::DIV_LONG_2ADDR:
1822 case Instruction::REM_LONG_2ADDR:
1826 case Instruction::ADD_LONG:
1827 case Instruction::SUB_LONG:
1828 case Instruction::MUL_LONG:
1829 case Instruction::AND_LONG:
1830 case Instruction::OR_LONG:
1831 case Instruction::XOR_LONG:
1832 case Instruction::ADD_LONG_2ADDR:
1833 case Instruction::SUB_LONG_2ADDR:
1834 case Instruction::MUL_LONG_2ADDR:
1835 case Instruction::AND_LONG_2ADDR:
1836 case Instruction::OR_LONG_2ADDR:
1837 case Instruction::XOR_LONG_2ADDR:
1838 case Instruction::ADD_DOUBLE:
1839 case Instruction::SUB_DOUBLE:
1840 case Instruction::MUL_DOUBLE:
1841 case Instruction::DIV_DOUBLE:
1842 case Instruction::REM_DOUBLE:
1843 case Instruction::ADD_DOUBLE_2ADDR:
1844 case Instruction::SUB_DOUBLE_2ADDR:
1845 case Instruction::MUL_DOUBLE_2ADDR:
1846 case Instruction::DIV_DOUBLE_2ADDR:
1847 case Instruction::REM_DOUBLE_2ADDR: {
1856 case Instruction::SHL_LONG:
1857 case Instruction::SHR_LONG:
1858 case Instruction::USHR_LONG:
1859 case Instruction::SHL_LONG_2ADDR:
1860 case Instruction::SHR_LONG_2ADDR:
1861 case Instruction::USHR_LONG_2ADDR: {
1870 case Instruction::ADD_FLOAT:
1871 case Instruction::SUB_FLOAT:
1872 case Instruction::MUL_FLOAT:
1873 case Instruction::DIV_FLOAT:
1874 case Instruction::REM_FLOAT:
1875 case Instruction::ADD_FLOAT_2ADDR:
1876 case Instruction::SUB_FLOAT_2ADDR:
1877 case Instruction::MUL_FLOAT_2ADDR:
1878 case Instruction::DIV_FLOAT_2ADDR:
1879 case Instruction::REM_FLOAT_2ADDR: {
1888 case Instruction::RSUB_INT:
1889 case Instruction::ADD_INT_LIT16:
1890 case Instruction::MUL_INT_LIT16:
1891 case Instruction::DIV_INT_LIT16:
1892 case Instruction::REM_INT_LIT16:
1893 case Instruction::AND_INT_LIT16:
1894 case Instruction::OR_INT_LIT16:
1895 case Instruction::XOR_INT_LIT16:
1896 case Instruction::ADD_INT_LIT8:
1897 case Instruction::RSUB_INT_LIT8:
1898 case Instruction::MUL_INT_LIT8:
1899 case Instruction::DIV_INT_LIT8:
1900 case Instruction::REM_INT_LIT8:
1901 case Instruction::AND_INT_LIT8:
1902 case Instruction::OR_INT_LIT8:
1903 case Instruction::XOR_INT_LIT8:
1904 case Instruction::SHL_INT_LIT8:
1905 case Instruction::SHR_INT_LIT8:
1906 case Instruction::USHR_INT_LIT8: {
1909 uint16_t operand2 = gvn_->LookupValue(Instruction::CONST, mir->dalvikInsn.vC, 0, 0);
1915 case Instruction::AGET_OBJECT:
1916 case Instruction::AGET:
1917 case Instruction::AGET_WIDE:
1918 case Instruction::AGET_BOOLEAN:
1919 case Instruction::AGET_BYTE:
1920 case Instruction::AGET_CHAR:
1921 case Instruction::AGET_SHORT:
1925 case Instruction::APUT_OBJECT:
1928 case Instruction::APUT:
1929 case Instruction::APUT_WIDE:
1930 case Instruction::APUT_BYTE:
1931 case Instruction::APUT_BOOLEAN:
1932 case Instruction::APUT_SHORT:
1933 case Instruction::APUT_CHAR:
1937 case Instruction::IGET_OBJECT:
1938 case Instruction::IGET:
1939 case Instruction::IGET_WIDE:
1940 case Instruction::IGET_BOOLEAN:
1941 case Instruction::IGET_BYTE:
1942 case Instruction::IGET_CHAR:
1943 case Instruction::IGET_SHORT:
1947 case Instruction::IPUT_OBJECT:
1950 case Instruction::IPUT:
1951 case Instruction::IPUT_WIDE:
1952 case Instruction::IPUT_BOOLEAN:
1953 case Instruction::IPUT_BYTE:
1954 case Instruction::IPUT_CHAR:
1955 case Instruction::IPUT_SHORT:
1959 case Instruction::SGET_OBJECT:
1960 case Instruction::SGET:
1961 case Instruction::SGET_WIDE:
1962 case Instruction::SGET_BOOLEAN:
1963 case Instruction::SGET_BYTE:
1964 case Instruction::SGET_CHAR:
1965 case Instruction::SGET_SHORT:
1969 case Instruction::SPUT_OBJECT:
1972 case Instruction::SPUT:
1973 case Instruction::SPUT_WIDE:
1974 case Instruction::SPUT_BOOLEAN:
1975 case Instruction::SPUT_BYTE:
1976 case Instruction::SPUT_CHAR:
1977 case Instruction::SPUT_SHORT: