AMD 29K Dependent Features
**************************

Options
=======

AS has no additional command-line options for the AMD 29K family.

Syntax
======

Macros
------

The macro syntax used on the AMD 29K is like that described in the AMD 29K Family Macro Assembler Specification.  Normal AS macros should still work.

Special Characters
------------------

; is the line comment character.

The character ? is permitted in identifiers (but may not begin an identifier).

Register Names
--------------

General-purpose registers are represented by predefined symbols of the form GRNNN (for global registers) or LRNNN (for local registers), where NNN represents a number between 0 and 127, written with no leading zeros.  The leading letters may be in either upper or lower case; for example, gr13 and LR7 are both valid register names.

You may also refer to general-purpose registers by specifying the register number as the result of an expression (prefixed with %% to flag the expression as a register number):

     %%EXPRESSION

---where EXPRESSION must be an absolute expression evaluating to a number between 0 and 255.  The range [0, 127] refers to global registers, and the range [128, 255] to local registers.

In addition, AS understands the following protected special-purpose register names for the AMD 29K family:

       vab    chd    pc0
       ops    chc    pc1
       cps    rbp    pc2
       cfg    tmc    mmu
       cha    tmr    lru

These unprotected special-purpose register names are also recognized:

       ipc    alu    fpe
       ipa    bp     inte
       ipb    fc     fps
       q      cr     exop

Floating Point
==============

The AMD 29K family uses IEEE floating-point numbers.

AMD 29K Machine Directives
==========================

.block SIZE , FILL
     This directive emits SIZE bytes, each of value FILL.  Both SIZE and FILL are absolute expressions.  If the comma and FILL are omitted, FILL is assumed to be zero.

     In other versions of the GNU assembler, this directive is called .space.

.cputype
     This directive is ignored; it is accepted for compatibility with other AMD 29K assemblers.

.file
     This directive is ignored; it is accepted for compatibility with other AMD 29K assemblers.

          Warning: in other versions of the GNU assembler, .file is used for the directive called .app-file in the AMD 29K support.

.line
     This directive is ignored; it is accepted for compatibility with other AMD 29K assemblers.

.sect
     This directive is ignored; it is accepted for compatibility with other AMD 29K assemblers.

.use SECTION NAME
     Establishes the section and subsection for the following code; SECTION NAME may be one of .text, .data, .data1, or .lit.  With one of the first three SECTION NAME options, .use is equivalent to the machine directive SECTION NAME; the remaining case, .use .lit, is the same as .data 200.

Opcodes
=======

AS implements all the standard AMD 29K opcodes.  No additional pseudo-instructions are needed on this family.

For information on the 29K machine instruction set, see Am29000 User's Manual, Advanced Micro Devices, Inc.