Changes between Version 21 and Version 22 of ClrxAsmRocm


Ignore:
Timestamp:
02/15/18 14:00:38 (6 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ClrxAsmRocm

    v21 v22  
    2727This setup can be replaced by pseudo-ops '.sgprsnum' and '.vgprsnum'.</p>
    2828<h2>Scalar register allocation</h2>
    29 <p>Assembler for ROCm format counts all SGPR registers and add extra registers
     29<p>An assembler for ROCm format counts all SGPR registers and add extra registers
    3030(FLAT_SCRATCH, XNACK_MASK). Special fields determines
    3131what 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:
     34globaldata (rodata) section, code section and GOT (Global Offset Table) section.
     35For example, an expression <code>.-globaldata1</code> (if globaldata is defined in global data section)
     36calculates distance between current position and <code>globaldata1</code> place.
     37An assembler automcatically found section where symbol points to between code,
     38globaldata and GOT.</p>
    3239<h2>List of the specific pseudo-operations</h2>
    3340<h3>.arch_minor</h3>
     
    152159<p>This pseudo-op must be inside kernel configuration (<code>.config</code>).
    153160Enable 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>).
     163It sets default HSA kernel features and register features (extra SGPR registers usage).
     164These 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>
    154166<h3>.dims</h3>
    155167<p>Syntax: .dims DIMENSIONS</p>
     
    182194<h3>.globaldata</h3>
    183195<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
     199set position of the GOT entry to OUTSYMBOL if symbol was given.</p>
    184200<h3>.group_segment_align</h3>
    185201<p>Syntax: .group_segment_align ALIGN</p>
    186202<p>This pseudo-op must be inside kernel configuration (<code>.config</code>). Set
    187203<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>
    193204<h3>.ieeemode</h3>
    194205<p>Syntax: .ieeemode</p>