1 @c Copyright (C) 2012-2024 Free Software Foundation, Inc.
2 @c This is part of the GAS manual.
3 @c For copying conditions, see the file as.texinfo.
7 @chapter XGATE Dependent Features
10 @node Machine Dependencies
11 @chapter XGATE Dependent Features
16 * XGATE-Opts:: XGATE Options
17 * XGATE-Syntax:: Syntax
18 * XGATE-Directives:: Assembler Directives
19 * XGATE-Float:: Floating Point
20 * XGATE-opcodes:: Opcodes
24 @section XGATE Options
26 @cindex options, XGATE
28 The Freescale XGATE version of @code{@value{AS}} has a few machine
33 @cindex @samp{-mshort}
35 This option controls the ABI and indicates to use a 16-bit integer ABI.
36 It has no effect on the assembled instructions.
41 This option controls the ABI and indicates to use a 32-bit integer ABI.
43 @cindex @samp{-mshort-double}
45 This option controls the ABI and indicates to use a 32-bit float ABI.
48 @cindex @samp{-mlong-double}
50 This option controls the ABI and indicates to use a 64-bit float ABI.
52 @cindex @samp{--print-insn-syntax}
53 @item --print-insn-syntax
54 You can use the @samp{--print-insn-syntax} option to obtain the
55 syntax description of the instruction when an error is detected.
57 @cindex @samp{--print-opcodes}
59 The @samp{--print-opcodes} option prints the list of all the
60 instructions with their syntax. Once the list is printed
61 @code{@value{AS}} exits.
71 In XGATE RISC syntax, the instruction name comes first and it may
72 be followed by up to three operands. Operands are separated by commas
73 (@samp{,}). @code{@value{AS}} will complain if too many operands are specified
74 for a given instruction. The same will happen if you specified too few
83 @cindex line comment character, XGATE
84 @cindex XGATE line comment character
85 The presence of a @samp{;} character or a @samp{!} character anywhere
86 on a line indicates the start of a comment that extends to the end of
89 A @samp{*} or a @samp{#} character at the start of a line also
90 introduces a line comment, but these characters do not work elsewhere
91 on the line. If the first character of the line is a @samp{#} then as
92 well as starting a comment, the line could also be logical line number
93 directive (@pxref{Comments}) or a preprocessor control command
94 (@pxref{Preprocessing}).
96 @cindex line separator, XGATE
97 @cindex statement separator, XGATE
98 @cindex XGATE line separator
99 The XGATE assembler does not currently support a line separator
102 @cindex XGATE addressing modes
103 @cindex addressing modes, XGATE
104 The following addressing modes are understood for XGATE:
109 @item Immediate 3 Bit Wide
112 @item Immediate 4 Bit Wide
115 @item Immediate 8 Bit Wide
118 @item Monadic Addressing
121 @item Dyadic Addressing
122 @samp{@var{reg}, @var{reg}}
124 @item Triadic Addressing
125 @samp{@var{reg}, @var{reg}, @var{reg}}
127 @item Relative Addressing 9 Bit Wide
130 @item Relative Addressing 10 Bit Wide
133 @item Index Register plus Immediate Offset
134 @samp{@var{reg}, (@var{reg}, #@var{number})}
136 @item Index Register plus Register Offset
137 @samp{@var{reg}, @var{reg}, @var{reg}}
139 @item Index Register plus Register Offset with Post-increment
140 @samp{@var{reg}, @var{reg}, @var{reg}+}
142 @item Index Register plus Register Offset with Pre-decrement
143 @samp{@var{reg}, @var{reg}, -@var{reg}}
145 The register can be either @samp{R0}, @samp{R1}, @samp{R2}, @samp{R3},
146 @samp{R4}, @samp{R5}, @samp{R6} or @samp{R7}.
150 Convene macro opcodes to deal with 16-bit values have been added.
154 @item Immediate 16 Bit Wide
155 @samp{#@var{number}}, or @samp{*@var{symbol}}
168 @node XGATE-Directives
169 @section Assembler Directives
171 @cindex assembler directives, XGATE
172 @cindex XGATE assembler directives
174 The XGATE version of @code{@value{AS}} have the following
175 specific assembler directives:
178 @section Floating Point
180 @cindex floating point, XGATE
181 @cindex XGATE floating point
182 Packed decimal (P) format floating literals are not supported(yet).
184 The floating point formats generated by directives are these.
187 @cindex @code{float} directive, XGATE
189 @code{Single} precision floating point constants.
191 @cindex @code{double} directive, XGATE
193 @code{Double} precision floating point constants.
195 @cindex @code{extend} directive XGATE
196 @cindex @code{ldouble} directive XGATE
199 @code{Extended} precision (@code{long double}) floating point constants.
206 @cindex XGATE opcodes
207 @cindex instruction set, XGATE