| @c Copyright 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. |
| @c This is part of the GAS manual. |
| @c For copying conditions, see the file as.texinfo. |
| @ifset GENERIC |
| @page |
| @node AMD29K-Dependent |
| @chapter AMD 29K Dependent Features |
| @end ifset |
| @ifclear GENERIC |
| @node Machine Dependencies |
| @chapter AMD 29K Dependent Features |
| @end ifclear |
| |
| @cindex AMD 29K support |
| @cindex 29K support |
| @menu |
| * AMD29K Options:: Options |
| * AMD29K Syntax:: Syntax |
| * AMD29K Floating Point:: Floating Point |
| * AMD29K Directives:: AMD 29K Machine Directives |
| * AMD29K Opcodes:: Opcodes |
| @end menu |
| |
| @node AMD29K Options |
| @section Options |
| @cindex AMD 29K options (none) |
| @cindex options for AMD29K (none) |
| @code{@value{AS}} has no additional command-line options for the AMD |
| 29K family. |
| |
| @node AMD29K Syntax |
| @section Syntax |
| @menu |
| * AMD29K-Macros:: Macros |
| * AMD29K-Chars:: Special Characters |
| * AMD29K-Regs:: Register Names |
| @end menu |
| |
| @node AMD29K-Macros |
| @subsection Macros |
| |
| @cindex Macros, AMD 29K |
| @cindex AMD 29K macros |
| The macro syntax used on the AMD 29K is like that described in the AMD |
| 29K Family Macro Assembler Specification. Normal @code{@value{AS}} |
| macros should still work. |
| |
| @node AMD29K-Chars |
| @subsection Special Characters |
| |
| @cindex line comment character, AMD 29K |
| @cindex AMD 29K line comment character |
| @samp{;} is the line comment character. |
| |
| @cindex identifiers, AMD 29K |
| @cindex AMD 29K identifiers |
| The character @samp{?} is permitted in identifiers (but may not begin |
| an identifier). |
| |
| @node AMD29K-Regs |
| @subsection Register Names |
| |
| @cindex AMD 29K register names |
| @cindex register names, AMD 29K |
| General-purpose registers are represented by predefined symbols of the |
| form @samp{GR@var{nnn}} (for global registers) or @samp{LR@var{nnn}} |
| (for local registers), where @var{nnn} represents a number between |
| @code{0} and @code{127}, written with no leading zeros. The leading |
| letters may be in either upper or lower case; for example, @samp{gr13} |
| and @samp{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 @samp{%%} |
| to flag the expression as a register number): |
| @smallexample |
| %%@var{expression} |
| @end smallexample |
| @noindent |
| ---where @var{expression} must be an absolute expression evaluating to a |
| number between @code{0} and @code{255}. The range [0, 127] refers to |
| global registers, and the range [128, 255] to local registers. |
| |
| @cindex special purpose registers, AMD 29K |
| @cindex AMD 29K special purpose registers |
| @cindex protected registers, AMD 29K |
| @cindex AMD 29K protected registers |
| In addition, @code{@value{AS}} understands the following protected |
| special-purpose register names for the AMD 29K family: |
| |
| @smallexample |
| vab chd pc0 |
| ops chc pc1 |
| cps rbp pc2 |
| cfg tmc mmu |
| cha tmr lru |
| @end smallexample |
| |
| These unprotected special-purpose register names are also recognized: |
| @smallexample |
| ipc alu fpe |
| ipa bp inte |
| ipb fc fps |
| q cr exop |
| @end smallexample |
| |
| @node AMD29K Floating Point |
| @section Floating Point |
| |
| @cindex floating point, AMD 29K (@sc{ieee}) |
| @cindex AMD 29K floating point (@sc{ieee}) |
| The AMD 29K family uses @sc{ieee} floating-point numbers. |
| |
| @node AMD29K Directives |
| @section AMD 29K Machine Directives |
| |
| @cindex machine directives, AMD 29K |
| @cindex AMD 29K machine directives |
| @table @code |
| @cindex @code{block} directive, AMD 29K |
| @item .block @var{size} , @var{fill} |
| This directive emits @var{size} bytes, each of value @var{fill}. Both |
| @var{size} and @var{fill} are absolute expressions. If the comma |
| and @var{fill} are omitted, @var{fill} is assumed to be zero. |
| |
| In other versions of the @sc{gnu} assembler, this directive is called |
| @samp{.space}. |
| @end table |
| |
| @table @code |
| @cindex @code{cputype} directive, AMD 29K |
| @item .cputype |
| This directive is ignored; it is accepted for compatibility with other |
| AMD 29K assemblers. |
| |
| @cindex @code{file} directive, AMD 29K |
| @item .file |
| This directive is ignored; it is accepted for compatibility with other |
| AMD 29K assemblers. |
| |
| @quotation |
| @emph{Warning:} in other versions of the @sc{gnu} assembler, @code{.file} is |
| used for the directive called @code{.app-file} in the AMD 29K support. |
| @end quotation |
| |
| @cindex @code{line} directive, AMD 29K |
| @item .line |
| This directive is ignored; it is accepted for compatibility with other |
| AMD 29K assemblers. |
| |
| @ignore |
| @c since we're ignoring .lsym... |
| @cindex @code{reg} directive, AMD 29K |
| @item .reg @var{symbol}, @var{expression} |
| @code{.reg} has the same effect as @code{.lsym}; @pxref{Lsym,,@code{.lsym}}. |
| @end ignore |
| |
| @cindex @code{sect} directive, AMD 29K |
| @item .sect |
| This directive is ignored; it is accepted for compatibility with other |
| AMD 29K assemblers. |
| |
| @cindex @code{use} directive, AMD 29K |
| @item .use @var{section name} |
| Establishes the section and subsection for the following code; |
| @var{section name} may be one of @code{.text}, @code{.data}, |
| @code{.data1}, or @code{.lit}. With one of the first three @var{section |
| name} options, @samp{.use} is equivalent to the machine directive |
| @var{section name}; the remaining case, @samp{.use .lit}, is the same as |
| @samp{.data 200}. |
| @end table |
| |
| @node AMD29K Opcodes |
| @section Opcodes |
| |
| @cindex AMD 29K opcodes |
| @cindex opcodes for AMD 29K |
| @code{@value{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 @cite{Am29000 |
| User's Manual}, Advanced Micro Devices, Inc. |
| |