2001-03-08 23:24:26 +00:00
|
|
|
@c Copyright 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
1999-05-03 07:29:11 +00:00
|
|
|
@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.
|
|
|
|
|