Changes between Version 21 and Version 22 of ClrxAsmRocm
- Timestamp:
- 02/15/18 14:00:38 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ClrxAsmRocm
v21 v22 27 27 This setup can be replaced by pseudo-ops '.sgprsnum' and '.vgprsnum'.</p> 28 28 <h2>Scalar register allocation</h2> 29 <p>A ssembler for ROCm format counts all SGPR registers and add extra registers29 <p>An assembler for ROCm format counts all SGPR registers and add extra registers 30 30 (FLAT_SCRATCH, XNACK_MASK). Special fields determines 31 31 what extra SGPR extra has been added. The VCC register is included by default.</p> 32 <h2>Expression with sections</h2> 33 <p>An assembler can calculate difference between symbols which present in one of three sections: 34 globaldata (rodata) section, code section and GOT (Global Offset Table) section. 35 For example, an expression <code>.-globaldata1</code> (if globaldata is defined in global data section) 36 calculates distance between current position and <code>globaldata1</code> place. 37 An assembler automcatically found section where symbol points to between code, 38 globaldata and GOT.</p> 32 39 <h2>List of the specific pseudo-operations</h2> 33 40 <h3>.arch_minor</h3> … … 152 159 <p>This pseudo-op must be inside kernel configuration (<code>.config</code>). 153 160 Enable usage of the DEBUG_MODE.</p> 161 <h3>.default_hsa_features</h3> 162 <p>This pseudo-op must be inside kernel configuration (<code>.config</code>). 163 It sets default HSA kernel features and register features (extra SGPR registers usage). 164 These default features are <code>.use_private_segment_buffer</code>, <code>.use_dispatch_ptr</code>, 165 <code>.use_kernarg_segment_ptr</code>, <code>.use_ptr64</code> and private_elem_size to 4 bytes.</p> 154 166 <h3>.dims</h3> 155 167 <p>Syntax: .dims DIMENSIONS</p> … … 182 194 <h3>.globaldata</h3> 183 195 <p>Go to constant global data section (<code>.rodata</code>).</p> 196 <h3>.gotsym</h3> 197 <p>Syntax: .gotsym SYMBOL[, OUTSYMBOL]</p> 198 <p>Add GOT entry for SYMBOL. A SYMBOL must be defined in global scope. Optionally, pseudo-op 199 set position of the GOT entry to OUTSYMBOL if symbol was given.</p> 184 200 <h3>.group_segment_align</h3> 185 201 <p>Syntax: .group_segment_align ALIGN</p> 186 202 <p>This pseudo-op must be inside kernel configuration (<code>.config</code>). Set 187 203 <code>group_segment_align</code> field in kernel configuration.</p> 188 <h3>.default_hsa_features</h3>189 <p>This pseudo-op must be inside kernel configuration (<code>.config</code>).190 It sets default HSA kernel features and register features (extra SGPR registers usage).191 These default features are <code>.use_private_segment_buffer</code>, <code>.use_dispatch_ptr</code>,192 <code>.use_kernarg_segment_ptr</code>, <code>.use_ptr64</code> and private_elem_size to 4 bytes.</p>193 204 <h3>.ieeemode</h3> 194 205 <p>Syntax: .ieeemode</p>