2 @c Free Software Foundation, Inc.
3 @c This is part of the GAS manual.
4 @c For copying conditions, see the file as.texinfo.
8 @chapter XGATE Dependent Features
11 @node Machine Dependencies
12 @chapter XGATE Dependent Features
17 * XGATE-Opts:: XGATE Options
18 * XGATE-Syntax:: Syntax
19 * XGATE-Directives:: Assembler Directives
20 * XGATE-Float:: Floating Point
21 * XGATE-opcodes:: Opcodes
25 @section XGATE Options
27 @cindex options, XGATE
29 The Freescale XGATE version of @code{@value{AS}} has a few machine
34 @cindex @samp{-mshort}
36 This option controls the ABI and indicates to use a 16-bit integer ABI.
37 It has no effect on the assembled instructions.
42 This option controls the ABI and indicates to use a 32-bit integer ABI.
44 @cindex @samp{-mshort-double}
46 This option controls the ABI and indicates to use a 32-bit float ABI.
49 @cindex @samp{-mlong-double}
51 This option controls the ABI and indicates to use a 64-bit float ABI.
53 @cindex @samp{--print-insn-syntax}
54 @item --print-insn-syntax
55 You can use the @samp{--print-insn-syntax} option to obtain the
56 syntax description of the instruction when an error is detected.
58 @cindex @samp{--print-opcodes}
60 The @samp{--print-opcodes} option prints the list of all the
61 instructions with their syntax. Once the list is printed
62 @code{@value{AS}} exits.
72 In XGATE RISC syntax, the instruction name comes first and it may
73 be followed by up to three operands. Operands are separated by commas
74 (@samp{,}). @code{@value{AS}} will complain if too many operands are specified
75 for a given instruction. The same will happen if you specified too few
84 @cindex line comment character, XGATE
85 @cindex XGATE line comment character
86 The presence of a @samp{;} character or a @samp{!} character anywhere
87 on a line indicates the start of a comment that extends to the end of
90 A @samp{*} or a @samp{#} character at the start of a line also
91 introduces a line comment, but these characters do not work elsewhere
92 on the line. If the first character of the line is a @samp{#} then as
93 well as starting a comment, the line could also be logical line number
94 directive (@pxref{Comments}) or a preprocessor control command
95 (@pxref{Preprocessing}).
97 @cindex line separator, XGATE
98 @cindex statement separator, XGATE
99 @cindex XGATE line separator
100 The XGATE assembler does not currently support a line separator
103 @cindex XGATE addressing modes
104 @cindex addressing modes, XGATE
105 The following addressing modes are understood for XGATE:
110 @item Immediate 3 Bit Wide
113 @item Immediate 4 Bit Wide
116 @item Immediate 8 Bit Wide
119 @item Monadic Addressing
122 @item Dyadic Addressing
123 @samp{@var{reg}, @var{reg}}
125 @item Triadic Addressing
126 @samp{@var{reg}, @var{reg}, @var{reg}}
128 @item Relative Addressing 9 Bit Wide
131 @item Relative Addressing 10 Bit Wide
134 @item Index Register plus Immediate Offset
135 @samp{@var{reg}, (@var{reg}, #@var{number})}
137 @item Index Register plus Register Offset
138 @samp{@var{reg}, @var{reg}, @var{reg}}
140 @item Index Register plus Register Offset with Post-increment
141 @samp{@var{reg}, @var{reg}, @var{reg}+}
143 @item Index Register plus Register Offset with Pre-decrement
144 @samp{@var{reg}, @var{reg}, -@var{reg}}
146 The register can be either @samp{R0}, @samp{R1}, @samp{R2}, @samp{R3},
147 @samp{R4}, @samp{R5}, @samp{R6} or @samp{R7}.
151 Convience macro opcodes to deal with 16-bit values have been added.
155 @item Immediate 16 Bit Wide
156 @samp{#@var{number}}, or @samp{*@var{symbol}}
169 @node XGATE-Directives
170 @section Assembler Directives
172 @cindex assembler directives, XGATE
173 @cindex XGATE assembler directives
175 The XGATE version of @code{@value{AS}} have the following
176 specific assembler directives:
179 @section Floating Point
181 @cindex floating point, XGATE
182 @cindex XGATE floating point
183 Packed decimal (P) format floating literals are not supported(yet).
185 The floating point formats generated by directives are these.
188 @cindex @code{float} directive, XGATE
190 @code{Single} precision floating point constants.
192 @cindex @code{double} directive, XGATE
194 @code{Double} precision floating point constants.
196 @cindex @code{extend} directive XGATE
197 @cindex @code{ldouble} directive XGATE
200 @code{Extended} precision (@code{long double}) floating point constants.
207 @cindex XGATE opcodes
208 @cindex instruction set, XGATE