Changes between Version 19 and Version 20 of GcnInstrsDs
- Timestamp:
- 05/30/16 16:00:22 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsDs
v19 v20 1183 1183 UINT32 B = A + ((OFFSET&0x8000) ? \ 1184 1184 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1185 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41185 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1186 1186 UINT32* V = (UINT32*)(DS + A) 1187 1187 *V = *V + *(UINT32*)(DS + B) // atomic operation</code></p> … … 1196 1196 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1197 1197 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1198 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71198 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1199 1199 UINT64* V = (UINT64*)(DS + A) 1200 1200 *V = *V + *(UINT64*)(DS + B) // atomic operation</code></p> … … 1260 1260 UINT32 B = A + ((OFFSET&0x8000) ? \ 1261 1261 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1262 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41262 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1263 1263 UINT32* V = (UINT32*)(DS + A) 1264 1264 *V = *V & *(UINT32*)(DS + B) // atomic operation</code></p> … … 1272 1272 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1273 1273 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1274 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71274 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1275 1275 UINT64* V = (UINT64*)(DS + A) 1276 1276 *V = *V & *(UINT64*)(DS + B) // atomic operation</code></p> … … 1398 1398 UINT32 B = A + ((OFFSET&0x8000) ? \ 1399 1399 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1400 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41400 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1401 1401 UINT32* V = (UINT32*)(DS + A) 1402 1402 UINT32* VB = (UINT32*)(DS + B) … … 1414 1414 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1415 1415 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1416 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71416 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1417 1417 UINT64* V = (UINT64*)(DS + A) 1418 1418 UINT64* VB = (UINT64*)(DS + B) … … 1469 1469 UINT32 B = A + ((OFFSET&0x8000) ? \ 1470 1470 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1471 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41471 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1472 1472 UINT32* V = (UINT32*)(DS + A) 1473 1473 *V = (*(UINT32*)(DS + B) > *V) ? *V+1 : 0 // atomic operation</code></p> … … 1483 1483 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1484 1484 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1485 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71485 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1486 1486 UINT64* V = (UINT64*)(DS + A) 1487 1487 *V = (*(UINT64*)(DS + B) > *V) ? *V+1 : 0 // atomic operation</code></p> … … 1604 1604 UINT32 B = A + ((OFFSET&0x8000) ? \ 1605 1605 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1606 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41606 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1607 1607 FLOAT* V = (FLOAT*)(DS + A) 1608 1608 *V = MAX(*V, *(FLOAT*)(DS + B)) // atomic operation</code></p> … … 1617 1617 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1618 1618 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1619 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71619 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1620 1620 DOUBLE* V = (DOUBLE*)(DS + A) 1621 1621 *V = MAX(*V, *(DOUBLE*)(DS + B)) // atomic operation</code></p> … … 1630 1630 UINT32 B = A + ((OFFSET&0x8000) ? \ 1631 1631 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1632 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41632 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1633 1633 INT32* V = (INT32*)(DS + A) 1634 1634 *V = MAX(*V, *(INT32*)(DS + B)) // atomic operation</code></p> … … 1643 1643 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1644 1644 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1645 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71645 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1646 1646 INT64* V = (INT64*)(DS + A) 1647 1647 *V = MAX(*V, *(INT64*)(DS + B)) // atomic operation</code></p> … … 1656 1656 UINT32 B = A + ((OFFSET&0x8000) ? \ 1657 1657 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1658 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41658 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1659 1659 UINT32* V = (UINT32*)(DS + A) 1660 1660 *V = MAX(*V, *(UINT32*)(DS + B)) // atomic operation</code></p> … … 1669 1669 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1670 1670 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1671 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71671 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1672 1672 UINT64* V = (UINT64*)(DS + A) 1673 1673 *V = MAX(*V, *(UINT64*)(DS + B)) // atomic operation</code></p> … … 1790 1790 UINT32 B = A + ((OFFSET&0x8000) ? \ 1791 1791 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1792 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41792 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1793 1793 FLOAT* V = (FLOAT*)(DS + A) 1794 1794 *V = MIN(*V, *(FLOAT*)(DS + B)) // atomic operation</code></p> … … 1803 1803 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1804 1804 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1805 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71805 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1806 1806 DOUBLE* V = (DOUBLE*)(DS + A) 1807 1807 *V = MIN(*V, *(DOUBLE*)(DS + B)) // atomic operation</code></p> … … 1816 1816 UINT32 B = A + ((OFFSET&0x8000) ? \ 1817 1817 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1818 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41818 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1819 1819 INT32* V = (INT32*)(DS + A) 1820 1820 *V = MIN(*V, *(INT32*)(DS + B)) // atomic operation</code></p> … … 1829 1829 UINT32 B = A + (((OFFSET&0x8000) ? \ 1830 1830 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1831 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71831 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1832 1832 INT64* V = (INT64*)(DS + A) 1833 1833 *V = MIN(*V, *(INT64*)(DS + B)) // atomic operation</code></p> … … 1842 1842 UINT32 B = A + ((OFFSET&0x8000) ? \ 1843 1843 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1844 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41844 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1845 1845 UINT32* V = (UINT32*)(DS + A) 1846 1846 *V = MIN(*V, *(UINT32*)(DS + B)) // atomic operation</code></p> … … 1855 1855 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1856 1856 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1857 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71857 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1858 1858 UINT64* V = (UINT64*)(DS + A) 1859 1859 *V = MIN(*V, *(UINT64*)(DS + B)) // atomic operation</code></p> … … 1967 1967 UINT32 B = A + ((OFFSET&0x8000) ? \ 1968 1968 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1969 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 41969 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 1970 1970 UINT32* V = (UINT32*)(DS + A) 1971 1971 *V = *V | *(UINT32*)(DS + B) // atomic operation</code></p> … … 1979 1979 UINT32 B = (A + ((OFFSET&0x8000) ? \ 1980 1980 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 1981 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~71981 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 1982 1982 UINT64* V = (UINT64*)(DS + A) 1983 1983 *V = *V | *(UINT64*)(DS + B) // atomic operation</code></p> … … 2101 2101 UINT32 B = A + ((OFFSET&0x8000) ? \ 2102 2102 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2103 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 42103 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 2104 2104 UINT32* V = (UINT32*)(DS + A) 2105 2105 *V = *(UINT32*)(DS + B) - *V // atomic operation</code></p> … … 2114 2114 UINT32 B = (A + ((OFFSET&0x8000) ? \ 2115 2115 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2116 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~72116 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 2117 2117 UINT64* V = (UINT64*)(DS + A) 2118 2118 *V = *(UINT64*)(DS + B) - *V // atomic operation</code></p> … … 2163 2163 UINT32 B = A + ((OFFSET&0x8000) ? \ 2164 2164 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2165 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 42165 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 2166 2166 UINT32* V = (UINT32*)(DS + A) 2167 2167 *V = *V - *(UINT32*)(DS + B) // atomic operation</code></p> … … 2176 2176 UINT32 B = (A + ((OFFSET&0x8000) ? \ 2177 2177 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2178 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~72178 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 2179 2179 UINT64* V = (UINT64*)(DS + A) 2180 2180 *V = *V - *(UINT64*)(DS + B) // atomic operation</code></p> … … 2280 2280 UINT32 B = A + ((OFFSET&0x8000) ? \ 2281 2281 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2282 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 42282 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 2283 2283 *(UINT32*)(DS + A) = *(UINT32*)(DS + B)</code></p> 2284 2284 <h4>DS_WRITE_SRC2_B64</h4> … … 2290 2290 UINT32 B = (A + ((OFFSET&0x8000) ? \ 2291 2291 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2292 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~72292 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 2293 2293 *(UINT64*)(DS + A) = *(UINT64*)(DS + B)</code></p> 2294 2294 <h4>DS_WRITE2_B32</h4> … … 2445 2445 UINT32 B = A + ((OFFSET&0x8000) ? \ 2446 2446 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2447 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 42447 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4 2448 2448 UINT32* V = (UINT32*)(DS + A) 2449 2449 *V = *V ^ *(UINT32*)(DS + B) // atomic operation</code></p> … … 2457 2457 UINT32 B = (A + ((OFFSET&0x8000) ? \ 2458 2458 ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \ 2459 ((OFFSET&0 7fff) | (OFFSET<<1)&0x8000)) * 4)&~72459 ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4)&~7 2460 2460 UINT64* V = (UINT64*)(DS + A) 2461 2461 *V = *V ^ *(UINT64*)(DS + B) // atomic operation</code></p>