1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
@c Copyright (C) 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
@item .block @var{size} , @var{fill}
@cindex @code{block} directive, AMD 29K
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
@item .cputype
@cindex @code{cputype} directive, AMD 29K
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
@item .file
@cindex @code{file} directive, AMD 29K
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
@item .line
@cindex @code{line} directive, AMD 29K
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
@ignore
@c since we're ignoring .lsym...
@item .reg @var{symbol}, @var{expression}
@cindex @code{reg} directive, AMD 29K
@code{.reg} has the same effect as @code{.lsym}; @pxref{Lsym,,@code{.lsym}}.
@end ignore
@item .sect
@cindex @code{sect} directive, AMD 29K
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
@item .use @var{section name}
@cindex @code{use} directive, AMD 29K
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.
|