Changes between Version 25 and Version 26 of GcnInstrsDs


Ignore:
Timestamp:
11/28/17 14:00:30 (6 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsDs

    v25 v26  
    20332033<p>Opcode: 54 (0x36)<br />
    20342034Syntax: DS_READ_B32 VDST, ADDR [OFFSET:OFFSET]<br />
    2035 Description: Read dword from LDS/GDS at address (ADDR+OFFSET) &amp; ~3, store into VDST.<br />
    2036 Operation:<br />
    2037 <code>VDST = *(UINT32*)(DS + ((ADDR+OFFSET)&amp;~3))</code></p>
     2035Description: Read dword from LDS/GDS at address (ADDR+OFFSET) &amp; ~3 or
     2036(ADDR+OFFSET) for GCN 1.2, store into VDST.<br />
     2037Operation:<br />
     2038<code>if (GCN14)
     2039    VDST = *(UINT32*)(DS + (ADDR+OFFSET))
     2040else
     2041    VDST = *(UINT32*)(DS + ((ADDR+OFFSET)&amp;~3))</code></p>
    20382042<h4>DS_READ_B64</h4>
    20392043<p>Opcode: 118 (0x76)<br />
    20402044Syntax: DS_READ_B64 VDST(2), ADDR [OFFSET:OFFSET]<br />
    2041 Description: Read two dwords from LDS/GDS at address (ADDR+OFFSET) &amp; ~7, store into VDST.<br />
    2042 Operation:<br />
    2043 <code>VDST = *(UINT64*)(DS + ((ADDR+OFFSET)&amp;~7))</code></p>
     2045Description: Read two dwords from LDS/GDS at address (ADDR+OFFSET) &amp; ~7 or
     2046(ADDR+OFFSET) for GCN 1.4, store into VDST.<br />
     2047Operation:<br />
     2048<code>if (GCN14)
     2049    VDST = *(UINT64*)(DS + (ADDR+OFFSET))
     2050else
     2051    VDST = *(UINT64*)(DS + ((ADDR+OFFSET)&amp;~7))</code></p>
    20442052<h4>DS_READ_B96</h4>
    20452053<p>Opcode: 254 (0xfe) for GCN 1.1/1.2<br />
     
    22962304<p>Opcode: 13 (0xd)<br />
    22972305Syntax: DS_WRITE_B32 ADDR, VDATA0 [OFFSET:OFFSET]<br />
    2298 Description: Store value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) &amp; ~3.<br />
    2299 Operation:<br />
    2300 <code>UINT32* V = (UINT32*)(DS + ((ADDR+OFFSET)&amp;~3))
     2306Description: Store value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) &amp; ~3 or
     2307(ADDR+OFFSET) if GCN 1.4.<br />
     2308Operation:<br />
     2309<code>UINT32* V
     2310if (GCN1.4)
     2311    V = (UINT32*)(DS + (ADDR+OFFSET))
     2312else
     2313    V = (UINT32*)(DS + ((ADDR+OFFSET)&amp;~3))
    23012314*V = VDATA0</code></p>
    23022315<h4>DS_WRITE_B64</h4>
    23032316<p>Opcode: 77 (0x4d)<br />
    23042317Syntax: DS_WRITE_B64 ADDR, VDATA0(2) [OFFSET:OFFSET]<br />
    2305 Description: Store 64-bit value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) &amp; ~7.<br />
    2306 Operation:<br />
    2307 <code>UINT64* V = (UINT64*)(DS + ((ADDR+OFFSET)&amp;~7))
     2318Description: Store 64-bit value from VDATA0 into LDS/GDS at address (ADDR+OFFSET) &amp; ~7 or
     2319ADDR+OFFSET for GCN 1.4.<br />
     2320Operation:<br />
     2321<code>UINT64* V
     2322if (GCN1.4)
     2323    UINT64* V = (UINT64*)(DS + (ADDR+OFFSET)) // ???
     2324else
     2325    UINT64* V = (UINT64*)(DS + ((ADDR+OFFSET)&amp;~7))
    23082326*V = VDATA0</code></p>
    23092327<h4>DS_WRITE_B8</h4>