Changes between Version 25 and Version 26 of GcnInstrsDs
- Timestamp:
- 11/28/17 14:00:30 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsDs
v25 v26 2033 2033 <p>Opcode: 54 (0x36)<br /> 2034 2034 Syntax: DS_READ_B32 VDST, ADDR [OFFSET:OFFSET]<br /> 2035 Description: Read dword from LDS/GDS at address (ADDR+OFFSET) & ~3, store into VDST.<br /> 2036 Operation:<br /> 2037 <code>VDST = *(UINT32*)(DS + ((ADDR+OFFSET)&~3))</code></p> 2035 Description: Read dword from LDS/GDS at address (ADDR+OFFSET) & ~3 or 2036 (ADDR+OFFSET) for GCN 1.2, store into VDST.<br /> 2037 Operation:<br /> 2038 <code>if (GCN14) 2039 VDST = *(UINT32*)(DS + (ADDR+OFFSET)) 2040 else 2041 VDST = *(UINT32*)(DS + ((ADDR+OFFSET)&~3))</code></p> 2038 2042 <h4>DS_READ_B64</h4> 2039 2043 <p>Opcode: 118 (0x76)<br /> 2040 2044 Syntax: DS_READ_B64 VDST(2), ADDR [OFFSET:OFFSET]<br /> 2041 Description: Read two dwords from LDS/GDS at address (ADDR+OFFSET) & ~7, store into VDST.<br /> 2042 Operation:<br /> 2043 <code>VDST = *(UINT64*)(DS + ((ADDR+OFFSET)&~7))</code></p> 2045 Description: Read two dwords from LDS/GDS at address (ADDR+OFFSET) & ~7 or 2046 (ADDR+OFFSET) for GCN 1.4, store into VDST.<br /> 2047 Operation:<br /> 2048 <code>if (GCN14) 2049 VDST = *(UINT64*)(DS + (ADDR+OFFSET)) 2050 else 2051 VDST = *(UINT64*)(DS + ((ADDR+OFFSET)&~7))</code></p> 2044 2052 <h4>DS_READ_B96</h4> 2045 2053 <p>Opcode: 254 (0xfe) for GCN 1.1/1.2<br /> … … 2296 2304 <p>Opcode: 13 (0xd)<br /> 2297 2305 Syntax: DS_WRITE_B32 ADDR, VDATA0 [OFFSET:OFFSET]<br /> 2298 Description: Store value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) & ~3.<br /> 2299 Operation:<br /> 2300 <code>UINT32* V = (UINT32*)(DS + ((ADDR+OFFSET)&~3)) 2306 Description: Store value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) & ~3 or 2307 (ADDR+OFFSET) if GCN 1.4.<br /> 2308 Operation:<br /> 2309 <code>UINT32* V 2310 if (GCN1.4) 2311 V = (UINT32*)(DS + (ADDR+OFFSET)) 2312 else 2313 V = (UINT32*)(DS + ((ADDR+OFFSET)&~3)) 2301 2314 *V = VDATA0</code></p> 2302 2315 <h4>DS_WRITE_B64</h4> 2303 2316 <p>Opcode: 77 (0x4d)<br /> 2304 2317 Syntax: DS_WRITE_B64 ADDR, VDATA0(2) [OFFSET:OFFSET]<br /> 2305 Description: Store 64-bit value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) & ~7.<br /> 2306 Operation:<br /> 2307 <code>UINT64* V = (UINT64*)(DS + ((ADDR+OFFSET)&~7)) 2318 Description: Store 64-bit value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) & ~7 or 2319 ADDR+OFFSET for GCN 1.4.<br /> 2320 Operation:<br /> 2321 <code>UINT64* V 2322 if (GCN1.4) 2323 UINT64* V = (UINT64*)(DS + (ADDR+OFFSET)) // ??? 2324 else 2325 UINT64* V = (UINT64*)(DS + ((ADDR+OFFSET)&~7)) 2308 2326 *V = VDATA0</code></p> 2309 2327 <h4>DS_WRITE_B8</h4>