llvm.org GIT mirror llvm / a69da35
Fix ARM disassembly of VLD instructions with writebacks.  And add test a case for all opcodes handed by DecodeVLDInstruction() in ARMDisassembler.cpp . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154459 91177308-0d34-0410-b5e6-96231b3b80d8 Kevin Enderby 8 years ago
3 changed file(s) with 376 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
22612261 case ARM::VLD2b8wb_register:
22622262 case ARM::VLD2b16wb_register:
22632263 case ARM::VLD2b32wb_register:
2264 Inst.addOperand(MCOperand::CreateImm(0));
2265 break;
22642266 case ARM::VLD3d8_UPD:
22652267 case ARM::VLD3d16_UPD:
22662268 case ARM::VLD3d32_UPD:
23282330 if (Rm != 0xD && Rm != 0xF &&
23292331 !Check(S, DecodeGPRRegisterClass(Inst, Rm, Address, Decoder)))
23302332 return MCDisassembler::Fail;
2333 break;
2334 case ARM::VLD2d8wb_fixed:
2335 case ARM::VLD2d16wb_fixed:
2336 case ARM::VLD2d32wb_fixed:
2337 case ARM::VLD2b8wb_fixed:
2338 case ARM::VLD2b16wb_fixed:
2339 case ARM::VLD2b32wb_fixed:
2340 case ARM::VLD2q8wb_fixed:
2341 case ARM::VLD2q16wb_fixed:
2342 case ARM::VLD2q32wb_fixed:
23312343 break;
23322344 }
23332345
20602060 # CHECK: vst4.16 {d8, d10, d12, d14}, [r4]
20612061 0x8f 0x81 0x04 0xf4
20622062 # CHECK: vst4.32 {d8, d10, d12, d14}, [r4]
2063
2064 # rdar://11204059
2065 0x0d 0x87 0x24 0xf4
2066 # CHECK: vld1.8 {d8}, [r4]!
2067 0x4d 0x87 0x24 0xf4
2068 # CHECK: vld1.16 {d8}, [r4]!
2069 0x8d 0x87 0x24 0xf4
2070 # CHECK: vld1.32 {d8}, [r4]!
2071 0xcd 0x87 0x24 0xf4
2072 # CHECK: vld1.64 {d8}, [r4]!
2073 0x06 0x87 0x24 0xf4
2074 # CHECK: vld1.8 {d8}, [r4], r6
2075 0x46 0x87 0x24 0xf4
2076 # CHECK: vld1.16 {d8}, [r4], r6
2077 0x86 0x87 0x24 0xf4
2078 # CHECK: vld1.32 {d8}, [r4], r6
2079 0xc6 0x87 0x24 0xf4
2080 # CHECK: vld1.64 {d8}, [r4], r6
2081 0x0d 0x8a 0x24 0xf4
2082 # CHECK: vld1.8 {d8, d9}, [r4]!
2083 0x4d 0x8a 0x24 0xf4
2084 # CHECK: vld1.16 {d8, d9}, [r4]!
2085 0x8d 0x8a 0x24 0xf4
2086 # CHECK: vld1.32 {d8, d9}, [r4]!
2087 0xcd 0x8a 0x24 0xf4
2088 # CHECK: vld1.64 {d8, d9}, [r4]!
2089 0x06 0x8a 0x24 0xf4
2090 # CHECK: vld1.8 {d8, d9}, [r4], r6
2091 0x46 0x8a 0x24 0xf4
2092 # CHECK: vld1.16 {d8, d9}, [r4], r6
2093 0x86 0x8a 0x24 0xf4
2094 # CHECK: vld1.32 {d8, d9}, [r4], r6
2095 0xc6 0x8a 0x24 0xf4
2096 # CHECK: vld1.64 {d8, d9}, [r4], r6
2097 0x0d 0x86 0x24 0xf4
2098 # CHECK: vld1.8 {d8, d9, d10}, [r4]!
2099 0x4d 0x86 0x24 0xf4
2100 # CHECK: vld1.16 {d8, d9, d10}, [r4]!
2101 0x8d 0x86 0x24 0xf4
2102 # CHECK: vld1.32 {d8, d9, d10}, [r4]!
2103 0xcd 0x86 0x24 0xf4
2104 # CHECK: vld1.64 {d8, d9, d10}, [r4]!
2105 0x06 0x86 0x24 0xf4
2106 # CHECK: vld1.8 {d8, d9, d10}, [r4], r6
2107 0x46 0x86 0x24 0xf4
2108 # CHECK: vld1.16 {d8, d9, d10}, [r4], r6
2109 0x86 0x86 0x24 0xf4
2110 # CHECK: vld1.32 {d8, d9, d10}, [r4], r6
2111 0xc6 0x86 0x24 0xf4
2112 # CHECK: vld1.64 {d8, d9, d10}, [r4], r6
2113 0x0d 0x82 0x24 0xf4
2114 # CHECK: vld1.8 {d8, d9, d10, d11}, [r4]!
2115 0x4d 0x82 0x24 0xf4
2116 # CHECK: vld1.16 {d8, d9, d10, d11}, [r4]!
2117 0x8d 0x82 0x24 0xf4
2118 # CHECK: vld1.32 {d8, d9, d10, d11}, [r4]!
2119 0xcd 0x82 0x24 0xf4
2120 # CHECK: vld1.64 {d8, d9, d10, d11}, [r4]!
2121 0x06 0x82 0x24 0xf4
2122 # CHECK: vld1.8 {d8, d9, d10, d11}, [r4], r6
2123 0x46 0x82 0x24 0xf4
2124 # CHECK: vld1.16 {d8, d9, d10, d11}, [r4], r6
2125 0x86 0x82 0x24 0xf4
2126 # CHECK: vld1.32 {d8, d9, d10, d11}, [r4], r6
2127 0xc6 0x82 0x24 0xf4
2128 # CHECK: vld1.64 {d8, d9, d10, d11}, [r4], r6
2129 0x0d 0x88 0x24 0xf4
2130 # CHECK: vld2.8 {d8, d9}, [r4]!
2131 0x4d 0x88 0x24 0xf4
2132 # CHECK: vld2.16 {d8, d9}, [r4]!
2133 0x8d 0x88 0x24 0xf4
2134 # CHECK: vld2.32 {d8, d9}, [r4]!
2135 0x06 0x88 0x24 0xf4
2136 # CHECK: vld2.8 {d8, d9}, [r4], r6
2137 0x46 0x88 0x24 0xf4
2138 # CHECK: vld2.16 {d8, d9}, [r4], r6
2139 0x86 0x88 0x24 0xf4
2140 # CHECK: vld2.32 {d8, d9}, [r4], r6
2141 0x0d 0x89 0x24 0xf4
2142 # CHECK: vld2.8 {d8, d10}, [r4]!
2143 0x4d 0x89 0x24 0xf4
2144 # CHECK: vld2.16 {d8, d10}, [r4]!
2145 0x8d 0x89 0x24 0xf4
2146 # CHECK: vld2.32 {d8, d10}, [r4]!
2147 0x06 0x89 0x24 0xf4
2148 # CHECK: vld2.8 {d8, d10}, [r4], r6
2149 0x46 0x89 0x24 0xf4
2150 # CHECK: vld2.16 {d8, d10}, [r4], r6
2151 0x86 0x89 0x24 0xf4
2152 # CHECK: vld2.32 {d8, d10}, [r4], r6
2153 0x0d 0x84 0x24 0xf4
2154 # CHECK: vld3.8 {d8, d9, d10}, [r4]!
2155 0x4d 0x84 0x24 0xf4
2156 # CHECK: vld3.16 {d8, d9, d10}, [r4]!
2157 0x8d 0x84 0x24 0xf4
2158 # CHECK: vld3.32 {d8, d9, d10}, [r4]!
2159 0x06 0x85 0x24 0xf4
2160 # CHECK: vld3.8 {d8, d10, d12}, [r4], r6
2161 0x46 0x85 0x24 0xf4
2162 # CHECK: vld3.16 {d8, d10, d12}, [r4], r6
2163 0x86 0x85 0x24 0xf4
2164 # CHECK: vld3.32 {d8, d10, d12}, [r4], r6
2165 0x0d 0x80 0x24 0xf4
2166 # CHECK: vld4.8 {d8, d9, d10, d11}, [r4]!
2167 0x4d 0x80 0x24 0xf4
2168 # CHECK: vld4.16 {d8, d9, d10, d11}, [r4]!
2169 0x8d 0x80 0x24 0xf4
2170 # CHECK: vld4.32 {d8, d9, d10, d11}, [r4]!
2171 0x06 0x81 0x24 0xf4
2172 # CHECK: vld4.8 {d8, d10, d12, d14}, [r4], r6
2173 0x46 0x81 0x24 0xf4
2174 # CHECK: vld4.16 {d8, d10, d12, d14}, [r4], r6
2175 0x86 0x81 0x24 0xf4
2176 # CHECK: vld4.32 {d8, d10, d12, d14}, [r4], r6
2177 0x4f 0x8a 0x24 0xf4
2178 # CHECK: vld1.16 {d8, d9}, [r4]
2179 0x8f 0x8a 0x24 0xf4
2180 # CHECK: vld1.32 {d8, d9}, [r4]
2181 0xcf 0x8a 0x24 0xf4
2182 # CHECK: vld1.64 {d8, d9}, [r4]
2183 0x0f 0x8a 0x24 0xf4
2184 # CHECK: vld1.8 {d8, d9}, [r4]
2185 0x4f 0x88 0x24 0xf4
2186 # CHECK: vld2.16 {d8, d9}, [r4]
2187 0x8f 0x88 0x24 0xf4
2188 # CHECK: vld2.32 {d8, d9}, [r4]
2189 0x0f 0x88 0x24 0xf4
2190 # CHECK: vld2.8 {d8, d9}, [r4]
2191 0x4d 0x88 0x24 0xf4
2192 # CHECK: vld2.16 {d8, d9}, [r4]!
2193 0x46 0x88 0x24 0xf4
2194 # CHECK: vld2.16 {d8, d9}, [r4], r6
2195 0x8d 0x88 0x24 0xf4
2196 # CHECK: vld2.32 {d8, d9}, [r4]!
2197 0x86 0x88 0x24 0xf4
2198 # CHECK: vld2.32 {d8, d9}, [r4], r6
2199 0x0d 0x88 0x24 0xf4
2200 # CHECK: vld2.8 {d8, d9}, [r4]!
2201 0x06 0x88 0x24 0xf4
2202 # CHECK: vld2.8 {d8, d9}, [r4], r6
2203 0x4f 0x89 0x24 0xf4
2204 # CHECK: vld2.16 {d8, d10}, [r4]
2205 0x8f 0x89 0x24 0xf4
2206 # CHECK: vld2.32 {d8, d10}, [r4]
2207 0x0f 0x89 0x24 0xf4
2208 # CHECK: vld2.8 {d8, d10}, [r4]
2209 0x4d 0x83 0x24 0xf4
2210 # CHECK: vld2.16 {d8, d9, d10, d11}, [r4]!
2211 0x46 0x83 0x24 0xf4
2212 # CHECK: vld2.16 {d8, d9, d10, d11}, [r4], r6
2213 0x8d 0x83 0x24 0xf4
2214 # CHECK: vld2.32 {d8, d9, d10, d11}, [r4]!
2215 0x86 0x83 0x24 0xf4
2216 # CHECK: vld2.32 {d8, d9, d10, d11}, [r4], r6
2217 0x0d 0x83 0x24 0xf4
2218 # CHECK: vld2.8 {d8, d9, d10, d11}, [r4]!
2219 0x06 0x83 0x24 0xf4
2220 # CHECK: vld2.8 {d8, d9, d10, d11}, [r4], r6
2221 0x0f 0x84 0x24 0xf4
2222 # CHECK: vld3.8 {d8, d9, d10}, [r4]
2223 0x4f 0x84 0x24 0xf4
2224 # CHECK: vld3.16 {d8, d9, d10}, [r4]
2225 0x8f 0x84 0x24 0xf4
2226 # CHECK: vld3.32 {d8, d9, d10}, [r4]
2227 0x0f 0x80 0x24 0xf4
2228 # CHECK: vld4.8 {d8, d9, d10, d11}, [r4]
2229 0x4f 0x80 0x24 0xf4
2230 # CHECK: vld4.16 {d8, d9, d10, d11}, [r4]
2231 0x8f 0x80 0x24 0xf4
2232 # CHECK: vld4.32 {d8, d9, d10, d11}, [r4]
2233 0x0f 0x85 0x24 0xf4
2234 # CHECK: vld3.8 {d8, d10, d12}, [r4]
2235 0x4f 0x85 0x24 0xf4
2236 # CHECK: vld3.16 {d8, d10, d12}, [r4]
2237 0x8f 0x85 0x24 0xf4
2238 # CHECK: vld3.32 {d8, d10, d12}, [r4]
2239 0x0f 0x81 0x24 0xf4
2240 # CHECK: vld4.8 {d8, d10, d12, d14}, [r4]
2241 0x4f 0x81 0x24 0xf4
2242 # CHECK: vld4.16 {d8, d10, d12, d14}, [r4]
2243 0x8f 0x81 0x24 0xf4
2244 # CHECK: vld4.32 {d8, d10, d12, d14}, [r4]
17771777 # CHECK: vst4.16 {d8, d10, d12, d14}, [r4]
17781778 0x04 0xf9 0x8f 0x81
17791779 # CHECK: vst4.32 {d8, d10, d12, d14}, [r4]
1780
1781 # rdar://11204059
1782 0x24 0xf9 0x0d 0x87
1783 # CHECK: vld1.8 {d8}, [r4]!
1784 0x24 0xf9 0x4d 0x87
1785 # CHECK: vld1.16 {d8}, [r4]!
1786 0x24 0xf9 0x8d 0x87
1787 # CHECK: vld1.32 {d8}, [r4]!
1788 0x24 0xf9 0xcd 0x87
1789 # CHECK: vld1.64 {d8}, [r4]!
1790 0x24 0xf9 0x06 0x87
1791 # CHECK: vld1.8 {d8}, [r4], r6
1792 0x24 0xf9 0x46 0x87
1793 # CHECK: vld1.16 {d8}, [r4], r6
1794 0x24 0xf9 0x86 0x87
1795 # CHECK: vld1.32 {d8}, [r4], r6
1796 0x24 0xf9 0xc6 0x87
1797 # CHECK: vld1.64 {d8}, [r4], r6
1798 0x24 0xf9 0x0d 0x8a
1799 # CHECK: vld1.8 {d8, d9}, [r4]!
1800 0x24 0xf9 0x4d 0x8a
1801 # CHECK: vld1.16 {d8, d9}, [r4]!
1802 0x24 0xf9 0x8d 0x8a
1803 # CHECK: vld1.32 {d8, d9}, [r4]!
1804 0x24 0xf9 0xcd 0x8a
1805 # CHECK: vld1.64 {d8, d9}, [r4]!
1806 0x24 0xf9 0x06 0x8a
1807 # CHECK: vld1.8 {d8, d9}, [r4], r6
1808 0x24 0xf9 0x46 0x8a
1809 # CHECK: vld1.16 {d8, d9}, [r4], r6
1810 0x24 0xf9 0x86 0x8a
1811 # CHECK: vld1.32 {d8, d9}, [r4], r6
1812 0x24 0xf9 0xc6 0x8a
1813 # CHECK: vld1.64 {d8, d9}, [r4], r6
1814 0x24 0xf9 0x0d 0x86
1815 # CHECK: vld1.8 {d8, d9, d10}, [r4]!
1816 0x24 0xf9 0x4d 0x86
1817 # CHECK: vld1.16 {d8, d9, d10}, [r4]!
1818 0x24 0xf9 0x8d 0x86
1819 # CHECK: vld1.32 {d8, d9, d10}, [r4]!
1820 0x24 0xf9 0xcd 0x86
1821 # CHECK: vld1.64 {d8, d9, d10}, [r4]!
1822 0x24 0xf9 0x06 0x86
1823 # CHECK: vld1.8 {d8, d9, d10}, [r4], r6
1824 0x24 0xf9 0x46 0x86
1825 # CHECK: vld1.16 {d8, d9, d10}, [r4], r6
1826 0x24 0xf9 0x86 0x86
1827 # CHECK: vld1.32 {d8, d9, d10}, [r4], r6
1828 0x24 0xf9 0xc6 0x86
1829 # CHECK: vld1.64 {d8, d9, d10}, [r4], r6
1830 0x24 0xf9 0x0d 0x82
1831 # CHECK: vld1.8 {d8, d9, d10, d11}, [r4]!
1832 0x24 0xf9 0x4d 0x82
1833 # CHECK: vld1.16 {d8, d9, d10, d11}, [r4]!
1834 0x24 0xf9 0x8d 0x82
1835 # CHECK: vld1.32 {d8, d9, d10, d11}, [r4]!
1836 0x24 0xf9 0xcd 0x82
1837 # CHECK: vld1.64 {d8, d9, d10, d11}, [r4]!
1838 0x24 0xf9 0x06 0x82
1839 # CHECK: vld1.8 {d8, d9, d10, d11}, [r4], r6
1840 0x24 0xf9 0x46 0x82
1841 # CHECK: vld1.16 {d8, d9, d10, d11}, [r4], r6
1842 0x24 0xf9 0x86 0x82
1843 # CHECK: vld1.32 {d8, d9, d10, d11}, [r4], r6
1844 0x24 0xf9 0xc6 0x82
1845 # CHECK: vld1.64 {d8, d9, d10, d11}, [r4], r6
1846 0x24 0xf9 0x0d 0x88
1847 # CHECK: vld2.8 {d8, d9}, [r4]!
1848 0x24 0xf9 0x4d 0x88
1849 # CHECK: vld2.16 {d8, d9}, [r4]!
1850 0x24 0xf9 0x8d 0x88
1851 # CHECK: vld2.32 {d8, d9}, [r4]!
1852 0x24 0xf9 0x06 0x88
1853 # CHECK: vld2.8 {d8, d9}, [r4], r6
1854 0x24 0xf9 0x46 0x88
1855 # CHECK: vld2.16 {d8, d9}, [r4], r6
1856 0x24 0xf9 0x86 0x88
1857 # CHECK: vld2.32 {d8, d9}, [r4], r6
1858 0x24 0xf9 0x0d 0x89
1859 # CHECK: vld2.8 {d8, d10}, [r4]!
1860 0x24 0xf9 0x4d 0x89
1861 # CHECK: vld2.16 {d8, d10}, [r4]!
1862 0x24 0xf9 0x8d 0x89
1863 # CHECK: vld2.32 {d8, d10}, [r4]!
1864 0x24 0xf9 0x06 0x89
1865 # CHECK: vld2.8 {d8, d10}, [r4], r6
1866 0x24 0xf9 0x46 0x89
1867 # CHECK: vld2.16 {d8, d10}, [r4], r6
1868 0x24 0xf9 0x86 0x89
1869 # CHECK: vld2.32 {d8, d10}, [r4], r6
1870 0x24 0xf9 0x0d 0x84
1871 # CHECK: vld3.8 {d8, d9, d10}, [r4]!
1872 0x24 0xf9 0x4d 0x84
1873 # CHECK: vld3.16 {d8, d9, d10}, [r4]!
1874 0x24 0xf9 0x8d 0x84
1875 # CHECK: vld3.32 {d8, d9, d10}, [r4]!
1876 0x24 0xf9 0x06 0x85
1877 # CHECK: vld3.8 {d8, d10, d12}, [r4], r6
1878 0x24 0xf9 0x46 0x85
1879 # CHECK: vld3.16 {d8, d10, d12}, [r4], r6
1880 0x24 0xf9 0x86 0x85
1881 # CHECK: vld3.32 {d8, d10, d12}, [r4], r6
1882 0x24 0xf9 0x0d 0x80
1883 # CHECK: vld4.8 {d8, d9, d10, d11}, [r4]!
1884 0x24 0xf9 0x4d 0x80
1885 # CHECK: vld4.16 {d8, d9, d10, d11}, [r4]!
1886 0x24 0xf9 0x8d 0x80
1887 # CHECK: vld4.32 {d8, d9, d10, d11}, [r4]!
1888 0x24 0xf9 0x06 0x81
1889 # CHECK: vld4.8 {d8, d10, d12, d14}, [r4], r6
1890 0x24 0xf9 0x46 0x81
1891 # CHECK: vld4.16 {d8, d10, d12, d14}, [r4], r6
1892 0x24 0xf9 0x86 0x81
1893 # CHECK: vld4.32 {d8, d10, d12, d14}, [r4], r6
1894 0x24 0xf9 0x4f 0x8a
1895 # CHECK: vld1.16 {d8, d9}, [r4]
1896 0x24 0xf9 0x8f 0x8a
1897 # CHECK: vld1.32 {d8, d9}, [r4]
1898 0x24 0xf9 0xcf 0x8a
1899 # CHECK: vld1.64 {d8, d9}, [r4]
1900 0x24 0xf9 0x0f 0x8a
1901 # CHECK: vld1.8 {d8, d9}, [r4]
1902 0x24 0xf9 0x4f 0x88
1903 # CHECK: vld2.16 {d8, d9}, [r4]
1904 0x24 0xf9 0x8f 0x88
1905 # CHECK: vld2.32 {d8, d9}, [r4]
1906 0x24 0xf9 0x0f 0x88
1907 # CHECK: vld2.8 {d8, d9}, [r4]
1908 0x24 0xf9 0x4d 0x88
1909 # CHECK: vld2.16 {d8, d9}, [r4]!
1910 0x24 0xf9 0x46 0x88
1911 # CHECK: vld2.16 {d8, d9}, [r4], r6
1912 0x24 0xf9 0x8d 0x88
1913 # CHECK: vld2.32 {d8, d9}, [r4]!
1914 0x24 0xf9 0x86 0x88
1915 # CHECK: vld2.32 {d8, d9}, [r4], r6
1916 0x24 0xf9 0x0d 0x88
1917 # CHECK: vld2.8 {d8, d9}, [r4]!
1918 0x24 0xf9 0x06 0x88
1919 # CHECK: vld2.8 {d8, d9}, [r4], r6
1920 0x24 0xf9 0x4f 0x89
1921 # CHECK: vld2.16 {d8, d10}, [r4]
1922 0x24 0xf9 0x8f 0x89
1923 # CHECK: vld2.32 {d8, d10}, [r4]
1924 0x24 0xf9 0x0f 0x89
1925 # CHECK: vld2.8 {d8, d10}, [r4]
1926 0x24 0xf9 0x4d 0x83
1927 # CHECK: vld2.16 {d8, d9, d10, d11}, [r4]!
1928 0x24 0xf9 0x46 0x83
1929 # CHECK: vld2.16 {d8, d9, d10, d11}, [r4], r6
1930 0x24 0xf9 0x8d 0x83
1931 # CHECK: vld2.32 {d8, d9, d10, d11}, [r4]!
1932 0x24 0xf9 0x86 0x83
1933 # CHECK: vld2.32 {d8, d9, d10, d11}, [r4], r6
1934 0x24 0xf9 0x0d 0x83
1935 # CHECK: vld2.8 {d8, d9, d10, d11}, [r4]!
1936 0x24 0xf9 0x06 0x83
1937 # CHECK: vld2.8 {d8, d9, d10, d11}, [r4], r6
1938 0x24 0xf9 0x0f 0x84
1939 # CHECK: vld3.8 {d8, d9, d10}, [r4]
1940 0x24 0xf9 0x4f 0x84
1941 # CHECK: vld3.16 {d8, d9, d10}, [r4]
1942 0x24 0xf9 0x8f 0x84
1943 # CHECK: vld3.32 {d8, d9, d10}, [r4]
1944 0x24 0xf9 0x0f 0x80
1945 # CHECK: vld4.8 {d8, d9, d10, d11}, [r4]
1946 0x24 0xf9 0x4f 0x80
1947 # CHECK: vld4.16 {d8, d9, d10, d11}, [r4]
1948 0x24 0xf9 0x8f 0x80
1949 # CHECK: vld4.32 {d8, d9, d10, d11}, [r4]
1950 0x24 0xf9 0x0f 0x85
1951 # CHECK: vld3.8 {d8, d10, d12}, [r4]
1952 0x24 0xf9 0x4f 0x85
1953 # CHECK: vld3.16 {d8, d10, d12}, [r4]
1954 0x24 0xf9 0x8f 0x85
1955 # CHECK: vld3.32 {d8, d10, d12}, [r4]
1956 0x24 0xf9 0x0f 0x81
1957 # CHECK: vld4.8 {d8, d10, d12, d14}, [r4]
1958 0x24 0xf9 0x4f 0x81
1959 # CHECK: vld4.16 {d8, d10, d12, d14}, [r4]
1960 0x24 0xf9 0x8f 0x81
1961 # CHECK: vld4.32 {d8, d10, d12, d14}, [r4]