llvm/docs/R600Usage.rst
Tom Stellard 19cb35b4bc R600/SI: Start implementing an assembler
This was done using the Sparc and PowerPC AsmParsers as guides.  So far it
is very simple and only supports sopp instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221994 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-14 14:08:00 +00:00

44 lines
1.0 KiB
ReStructuredText

============================
User Guide for R600 Back-end
============================
Introduction
============
The R600 back-end provides ISA code generation for AMD GPUs, starting with
the R600 family up until the current Sea Islands (GCN Gen 2).
Assembler
=========
The assembler is currently a work in progress and not yet complete. Below
are the currently supported features.
SOPP Instructions
-----------------
Unless otherwise mentioned, all SOPP instructions that with an operand
accept a integer operand(s) only. No verification is performed on the
operands, so it is up to the programmer to be familiar with the range
or acceptable values.
s_waitcnt
^^^^^^^^^
s_waitcnt accepts named arguments to specify which memory counter(s) to
wait for.
.. code-block:: nasm
// Wait for all counters to be 0
s_waitcnt 0
// Equivalent to s_waitcnt 0. Counter names can also be delimited by
// '&' or ','.
s_waitcnt vmcnt(0) expcnt(0) lgkcmt(0)
// Wait for vmcnt counter to be 1.
s_waitcnt vmcnt(1)