@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.