xref: /dflybsd-src/contrib/binutils-2.27/gas/doc/c-z8k.texi (revision e656dc90e3d65d744d534af2f5ea88cf8101ebcf)
1*a9fa9459Szrj@c Copyright (C) 1991-2016 Free Software Foundation, Inc.
2*a9fa9459Szrj@c This is part of the GAS manual.
3*a9fa9459Szrj@c For copying conditions, see the file as.texinfo.
4*a9fa9459Szrj@ifset GENERIC
5*a9fa9459Szrj@page
6*a9fa9459Szrj@node Z8000-Dependent
7*a9fa9459Szrj@chapter Z8000 Dependent Features
8*a9fa9459Szrj@end ifset
9*a9fa9459Szrj@ifclear GENERIC
10*a9fa9459Szrj@node Machine Dependencies
11*a9fa9459Szrj@chapter Z8000 Dependent Features
12*a9fa9459Szrj@end ifclear
13*a9fa9459Szrj
14*a9fa9459Szrj@cindex Z8000 support
15*a9fa9459SzrjThe Z8000 @value{AS} supports both members of the Z8000 family: the
16*a9fa9459Szrjunsegmented Z8002, with 16 bit addresses, and the segmented Z8001 with
17*a9fa9459Szrj24 bit addresses.
18*a9fa9459Szrj
19*a9fa9459SzrjWhen the assembler is in unsegmented mode (specified with the
20*a9fa9459Szrj@code{unsegm} directive), an address takes up one word (16 bit)
21*a9fa9459Szrjsized register.  When the assembler is in segmented mode (specified with
22*a9fa9459Szrjthe @code{segm} directive), a 24-bit address takes up a long (32 bit)
23*a9fa9459Szrjregister.  @xref{Z8000 Directives,,Assembler Directives for the Z8000},
24*a9fa9459Szrjfor a list of other Z8000 specific assembler directives.
25*a9fa9459Szrj
26*a9fa9459Szrj@menu
27*a9fa9459Szrj* Z8000 Options::               Command-line options for the Z8000
28*a9fa9459Szrj* Z8000 Syntax::                Assembler syntax for the Z8000
29*a9fa9459Szrj* Z8000 Directives::            Special directives for the Z8000
30*a9fa9459Szrj* Z8000 Opcodes::               Opcodes
31*a9fa9459Szrj@end menu
32*a9fa9459Szrj
33*a9fa9459Szrj@node Z8000 Options
34*a9fa9459Szrj@section Options
35*a9fa9459Szrj
36*a9fa9459Szrj@cindex Z8000 options
37*a9fa9459Szrj@cindex options, Z8000
38*a9fa9459Szrj@table @option
39*a9fa9459Szrj@cindex @code{-z8001} command line option, Z8000
40*a9fa9459Szrj@item -z8001
41*a9fa9459SzrjGenerate segmented code by default.
42*a9fa9459Szrj
43*a9fa9459Szrj@cindex @code{-z8002} command line option, Z8000
44*a9fa9459Szrj@item -z8002
45*a9fa9459SzrjGenerate unsegmented code by default.
46*a9fa9459Szrj@end table
47*a9fa9459Szrj
48*a9fa9459Szrj@node Z8000 Syntax
49*a9fa9459Szrj@section Syntax
50*a9fa9459Szrj@menu
51*a9fa9459Szrj* Z8000-Chars::                Special Characters
52*a9fa9459Szrj* Z8000-Regs::                 Register Names
53*a9fa9459Szrj* Z8000-Addressing::           Addressing Modes
54*a9fa9459Szrj@end menu
55*a9fa9459Szrj
56*a9fa9459Szrj@node Z8000-Chars
57*a9fa9459Szrj@subsection Special Characters
58*a9fa9459Szrj
59*a9fa9459Szrj@cindex line comment character, Z8000
60*a9fa9459Szrj@cindex Z8000 line comment character
61*a9fa9459Szrj@samp{!} is the line comment character.
62*a9fa9459Szrj
63*a9fa9459SzrjIf a @samp{#} appears as the first character of a line then the whole
64*a9fa9459Szrjline is treated as a comment, but in this case the line could also be
65*a9fa9459Szrja logical line number directive (@pxref{Comments}) or a preprocessor
66*a9fa9459Szrjcontrol command (@pxref{Preprocessing}).
67*a9fa9459Szrj
68*a9fa9459Szrj@cindex line separator, Z8000
69*a9fa9459Szrj@cindex statement separator, Z8000
70*a9fa9459Szrj@cindex Z8000 line separator
71*a9fa9459SzrjYou can use @samp{;} instead of a newline to separate statements.
72*a9fa9459Szrj
73*a9fa9459Szrj@node Z8000-Regs
74*a9fa9459Szrj@subsection Register Names
75*a9fa9459Szrj
76*a9fa9459Szrj@cindex Z8000 registers
77*a9fa9459Szrj@cindex registers, Z8000
78*a9fa9459SzrjThe Z8000 has sixteen 16 bit registers, numbered 0 to 15.  You can refer
79*a9fa9459Szrjto different sized groups of registers by register number, with the
80*a9fa9459Szrjprefix @samp{r} for 16 bit registers, @samp{rr} for 32 bit registers and
81*a9fa9459Szrj@samp{rq} for 64 bit registers.  You can also refer to the contents of
82*a9fa9459Szrjthe first eight (of the sixteen 16 bit registers) by bytes.  They are
83*a9fa9459Szrjnamed @samp{rl@var{n}} and @samp{rh@var{n}}.
84*a9fa9459Szrj
85*a9fa9459Szrj@smallexample
86*a9fa9459Szrj@exdent @emph{byte registers}
87*a9fa9459Szrjrl0 rh0 rl1 rh1 rl2 rh2 rl3 rh3
88*a9fa9459Szrjrl4 rh4 rl5 rh5 rl6 rh6 rl7 rh7
89*a9fa9459Szrj
90*a9fa9459Szrj@exdent @emph{word registers}
91*a9fa9459Szrjr0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15
92*a9fa9459Szrj
93*a9fa9459Szrj@exdent @emph{long word registers}
94*a9fa9459Szrjrr0 rr2 rr4 rr6 rr8 rr10 rr12 rr14
95*a9fa9459Szrj
96*a9fa9459Szrj@exdent @emph{quad word registers}
97*a9fa9459Szrjrq0 rq4 rq8 rq12
98*a9fa9459Szrj@end smallexample
99*a9fa9459Szrj
100*a9fa9459Szrj@node Z8000-Addressing
101*a9fa9459Szrj@subsection Addressing Modes
102*a9fa9459Szrj
103*a9fa9459Szrj@cindex addressing modes, Z8000
104*a9fa9459Szrj@cindex Z800 addressing modes
105*a9fa9459Szrj@value{AS} understands the following addressing modes for the Z8000:
106*a9fa9459Szrj
107*a9fa9459Szrj@table @code
108*a9fa9459Szrj@item rl@var{n}
109*a9fa9459Szrj@itemx rh@var{n}
110*a9fa9459Szrj@itemx r@var{n}
111*a9fa9459Szrj@itemx rr@var{n}
112*a9fa9459Szrj@itemx rq@var{n}
113*a9fa9459SzrjRegister direct:  8bit, 16bit, 32bit, and 64bit registers.
114*a9fa9459Szrj
115*a9fa9459Szrj@item @@r@var{n}
116*a9fa9459Szrj@itemx @@rr@var{n}
117*a9fa9459SzrjIndirect register:  @@rr@var{n} in segmented mode, @@r@var{n} in unsegmented
118*a9fa9459Szrjmode.
119*a9fa9459Szrj
120*a9fa9459Szrj@item @var{addr}
121*a9fa9459SzrjDirect: the 16 bit or 24 bit address (depending on whether the assembler
122*a9fa9459Szrjis in segmented or unsegmented mode) of the operand is in the instruction.
123*a9fa9459Szrj
124*a9fa9459Szrj@item address(r@var{n})
125*a9fa9459SzrjIndexed: the 16 or 24 bit address is added to the 16 bit register to produce
126*a9fa9459Szrjthe final address in memory of the operand.
127*a9fa9459Szrj
128*a9fa9459Szrj@item r@var{n}(#@var{imm})
129*a9fa9459Szrj@itemx rr@var{n}(#@var{imm})
130*a9fa9459SzrjBase Address: the 16 or 24 bit register is added to the 16 bit sign
131*a9fa9459Szrjextended immediate displacement to produce the final address in memory
132*a9fa9459Szrjof the operand.
133*a9fa9459Szrj
134*a9fa9459Szrj@item r@var{n}(r@var{m})
135*a9fa9459Szrj@itemx rr@var{n}(r@var{m})
136*a9fa9459SzrjBase Index: the 16 or 24 bit register r@var{n} or rr@var{n} is added to
137*a9fa9459Szrjthe sign extended 16 bit index register r@var{m} to produce the final
138*a9fa9459Szrjaddress in memory of the operand.
139*a9fa9459Szrj
140*a9fa9459Szrj@item #@var{xx}
141*a9fa9459SzrjImmediate data @var{xx}.
142*a9fa9459Szrj@end table
143*a9fa9459Szrj
144*a9fa9459Szrj@node Z8000 Directives
145*a9fa9459Szrj@section Assembler Directives for the Z8000
146*a9fa9459Szrj
147*a9fa9459Szrj@cindex Z8000 directives
148*a9fa9459Szrj@cindex directives, Z8000
149*a9fa9459SzrjThe Z8000 port of @value{AS} includes additional assembler directives,
150*a9fa9459Szrjfor compatibility with other Z8000 assemblers.  These do not begin with
151*a9fa9459Szrj@samp{.} (unlike the ordinary @value{AS} directives).
152*a9fa9459Szrj
153*a9fa9459Szrj@table @code
154*a9fa9459Szrj@kindex segm
155*a9fa9459Szrj@item segm
156*a9fa9459Szrj@kindex .z8001
157*a9fa9459Szrj@itemx .z8001
158*a9fa9459SzrjGenerate code for the segmented Z8001.
159*a9fa9459Szrj
160*a9fa9459Szrj@kindex unsegm
161*a9fa9459Szrj@item unsegm
162*a9fa9459Szrj@kindex .z8002
163*a9fa9459Szrj@itemx .z8002
164*a9fa9459SzrjGenerate code for the unsegmented Z8002.
165*a9fa9459Szrj
166*a9fa9459Szrj@kindex name
167*a9fa9459Szrj@item name
168*a9fa9459SzrjSynonym for @code{.file}
169*a9fa9459Szrj
170*a9fa9459Szrj@kindex global
171*a9fa9459Szrj@item global
172*a9fa9459SzrjSynonym for @code{.global}
173*a9fa9459Szrj
174*a9fa9459Szrj@kindex wval
175*a9fa9459Szrj@item wval
176*a9fa9459SzrjSynonym for @code{.word}
177*a9fa9459Szrj
178*a9fa9459Szrj@kindex lval
179*a9fa9459Szrj@item lval
180*a9fa9459SzrjSynonym for @code{.long}
181*a9fa9459Szrj
182*a9fa9459Szrj@kindex bval
183*a9fa9459Szrj@item bval
184*a9fa9459SzrjSynonym for @code{.byte}
185*a9fa9459Szrj
186*a9fa9459Szrj@kindex sval
187*a9fa9459Szrj@item sval
188*a9fa9459SzrjAssemble a string.  @code{sval} expects one string literal, delimited by
189*a9fa9459Szrjsingle quotes.  It assembles each byte of the string into consecutive
190*a9fa9459Szrjaddresses.  You can use the escape sequence @samp{%@var{xx}} (where
191*a9fa9459Szrj@var{xx} represents a two-digit hexadecimal number) to represent the
192*a9fa9459Szrjcharacter whose @sc{ascii} value is @var{xx}.  Use this feature to
193*a9fa9459Szrjdescribe single quote and other characters that may not appear in string
194*a9fa9459Szrjliterals as themselves.  For example, the C statement @w{@samp{char *a =
195*a9fa9459Szrj"he said \"it's 50% off\"";}} is represented in Z8000 assembly language
196*a9fa9459Szrj(shown with the assembler output in hex at the left) as
197*a9fa9459Szrj
198*a9fa9459Szrj@iftex
199*a9fa9459Szrj@begingroup
200*a9fa9459Szrj@let@nonarrowing=@comment
201*a9fa9459Szrj@end iftex
202*a9fa9459Szrj@smallexample
203*a9fa9459Szrj68652073    sval    'he said %22it%27s 50%25 off%22%00'
204*a9fa9459Szrj61696420
205*a9fa9459Szrj22697427
206*a9fa9459Szrj73203530
207*a9fa9459Szrj25206F66
208*a9fa9459Szrj662200
209*a9fa9459Szrj@end smallexample
210*a9fa9459Szrj@iftex
211*a9fa9459Szrj@endgroup
212*a9fa9459Szrj@end iftex
213*a9fa9459Szrj
214*a9fa9459Szrj@kindex rsect
215*a9fa9459Szrj@item rsect
216*a9fa9459Szrjsynonym for @code{.section}
217*a9fa9459Szrj
218*a9fa9459Szrj@kindex block
219*a9fa9459Szrj@item block
220*a9fa9459Szrjsynonym for @code{.space}
221*a9fa9459Szrj
222*a9fa9459Szrj@kindex even
223*a9fa9459Szrj@item even
224*a9fa9459Szrjspecial case of @code{.align}; aligns output to even byte boundary.
225*a9fa9459Szrj@end table
226*a9fa9459Szrj
227*a9fa9459Szrj@node Z8000 Opcodes
228*a9fa9459Szrj@section Opcodes
229*a9fa9459Szrj
230*a9fa9459Szrj@cindex Z8000 opcode summary
231*a9fa9459Szrj@cindex opcode summary, Z8000
232*a9fa9459Szrj@cindex mnemonics, Z8000
233*a9fa9459Szrj@cindex instruction summary, Z8000
234*a9fa9459SzrjFor detailed information on the Z8000 machine instruction set, see
235*a9fa9459Szrj@cite{Z8000 Technical Manual}.
236*a9fa9459Szrj
237*a9fa9459Szrj@ifset SMALL
238*a9fa9459Szrj@c this table, due to the multi-col faking and hardcoded order, looks silly
239*a9fa9459Szrj@c except in smallbook.  See comments below "@set SMALL" near top of this file.
240*a9fa9459Szrj
241*a9fa9459SzrjThe following table summarizes the opcodes and their arguments:
242*a9fa9459Szrj@iftex
243*a9fa9459Szrj@begingroup
244*a9fa9459Szrj@let@nonarrowing=@comment
245*a9fa9459Szrj@end iftex
246*a9fa9459Szrj@smallexample
247*a9fa9459Szrj
248*a9fa9459Szrj            rs   @r{16 bit source register}
249*a9fa9459Szrj            rd   @r{16 bit destination register}
250*a9fa9459Szrj            rbs   @r{8 bit source register}
251*a9fa9459Szrj            rbd   @r{8 bit destination register}
252*a9fa9459Szrj            rrs   @r{32 bit source register}
253*a9fa9459Szrj            rrd   @r{32 bit destination register}
254*a9fa9459Szrj            rqs   @r{64 bit source register}
255*a9fa9459Szrj            rqd   @r{64 bit destination register}
256*a9fa9459Szrj            addr @r{16/24 bit address}
257*a9fa9459Szrj            imm  @r{immediate data}
258*a9fa9459Szrj
259*a9fa9459Szrjadc rd,rs               clrb addr               cpsir @@rd,@@rs,rr,cc
260*a9fa9459Szrjadcb rbd,rbs            clrb addr(rd)           cpsirb @@rd,@@rs,rr,cc
261*a9fa9459Szrjadd rd,@@rs              clrb rbd                dab rbd
262*a9fa9459Szrjadd rd,addr             com @@rd                 dbjnz rbd,disp7
263*a9fa9459Szrjadd rd,addr(rs)         com addr                dec @@rd,imm4m1
264*a9fa9459Szrjadd rd,imm16            com addr(rd)            dec addr(rd),imm4m1
265*a9fa9459Szrjadd rd,rs               com rd                  dec addr,imm4m1
266*a9fa9459Szrjaddb rbd,@@rs            comb @@rd                dec rd,imm4m1
267*a9fa9459Szrjaddb rbd,addr           comb addr               decb @@rd,imm4m1
268*a9fa9459Szrjaddb rbd,addr(rs)       comb addr(rd)           decb addr(rd),imm4m1
269*a9fa9459Szrjaddb rbd,imm8           comb rbd                decb addr,imm4m1
270*a9fa9459Szrjaddb rbd,rbs            comflg flags            decb rbd,imm4m1
271*a9fa9459Szrjaddl rrd,@@rs            cp @@rd,imm16            di i2
272*a9fa9459Szrjaddl rrd,addr           cp addr(rd),imm16       div rrd,@@rs
273*a9fa9459Szrjaddl rrd,addr(rs)       cp addr,imm16           div rrd,addr
274*a9fa9459Szrjaddl rrd,imm32          cp rd,@@rs               div rrd,addr(rs)
275*a9fa9459Szrjaddl rrd,rrs            cp rd,addr              div rrd,imm16
276*a9fa9459Szrjand rd,@@rs              cp rd,addr(rs)          div rrd,rs
277*a9fa9459Szrjand rd,addr             cp rd,imm16             divl rqd,@@rs
278*a9fa9459Szrjand rd,addr(rs)         cp rd,rs                divl rqd,addr
279*a9fa9459Szrjand rd,imm16            cpb @@rd,imm8            divl rqd,addr(rs)
280*a9fa9459Szrjand rd,rs               cpb addr(rd),imm8       divl rqd,imm32
281*a9fa9459Szrjandb rbd,@@rs            cpb addr,imm8           divl rqd,rrs
282*a9fa9459Szrjandb rbd,addr           cpb rbd,@@rs             djnz rd,disp7
283*a9fa9459Szrjandb rbd,addr(rs)       cpb rbd,addr            ei i2
284*a9fa9459Szrjandb rbd,imm8           cpb rbd,addr(rs)        ex rd,@@rs
285*a9fa9459Szrjandb rbd,rbs            cpb rbd,imm8            ex rd,addr
286*a9fa9459Szrjbit @@rd,imm4            cpb rbd,rbs             ex rd,addr(rs)
287*a9fa9459Szrjbit addr(rd),imm4       cpd rd,@@rs,rr,cc        ex rd,rs
288*a9fa9459Szrjbit addr,imm4           cpdb rbd,@@rs,rr,cc      exb rbd,@@rs
289*a9fa9459Szrjbit rd,imm4             cpdr rd,@@rs,rr,cc       exb rbd,addr
290*a9fa9459Szrjbit rd,rs               cpdrb rbd,@@rs,rr,cc     exb rbd,addr(rs)
291*a9fa9459Szrjbitb @@rd,imm4           cpi rd,@@rs,rr,cc        exb rbd,rbs
292*a9fa9459Szrjbitb addr(rd),imm4      cpib rbd,@@rs,rr,cc      ext0e imm8
293*a9fa9459Szrjbitb addr,imm4          cpir rd,@@rs,rr,cc       ext0f imm8
294*a9fa9459Szrjbitb rbd,imm4           cpirb rbd,@@rs,rr,cc     ext8e imm8
295*a9fa9459Szrjbitb rbd,rs             cpl rrd,@@rs             ext8f imm8
296*a9fa9459Szrjbpt                     cpl rrd,addr            exts rrd
297*a9fa9459Szrjcall @@rd                cpl rrd,addr(rs)        extsb rd
298*a9fa9459Szrjcall addr               cpl rrd,imm32           extsl rqd
299*a9fa9459Szrjcall addr(rd)           cpl rrd,rrs             halt
300*a9fa9459Szrjcalr disp12             cpsd @@rd,@@rs,rr,cc      in rd,@@rs
301*a9fa9459Szrjclr @@rd                 cpsdb @@rd,@@rs,rr,cc     in rd,imm16
302*a9fa9459Szrjclr addr                cpsdr @@rd,@@rs,rr,cc     inb rbd,@@rs
303*a9fa9459Szrjclr addr(rd)            cpsdrb @@rd,@@rs,rr,cc    inb rbd,imm16
304*a9fa9459Szrjclr rd                  cpsi @@rd,@@rs,rr,cc      inc @@rd,imm4m1
305*a9fa9459Szrjclrb @@rd                cpsib @@rd,@@rs,rr,cc     inc addr(rd),imm4m1
306*a9fa9459Szrjinc addr,imm4m1         ldb rbd,rs(rx)          mult rrd,addr(rs)
307*a9fa9459Szrjinc rd,imm4m1           ldb rd(imm16),rbs       mult rrd,imm16
308*a9fa9459Szrjincb @@rd,imm4m1         ldb rd(rx),rbs          mult rrd,rs
309*a9fa9459Szrjincb addr(rd),imm4m1    ldctl ctrl,rs           multl rqd,@@rs
310*a9fa9459Szrjincb addr,imm4m1        ldctl rd,ctrl           multl rqd,addr
311*a9fa9459Szrjincb rbd,imm4m1         ldd @@rs,@@rd,rr          multl rqd,addr(rs)
312*a9fa9459Szrjind @@rd,@@rs,ra          lddb @@rs,@@rd,rr         multl rqd,imm32
313*a9fa9459Szrjindb @@rd,@@rs,rba        lddr @@rs,@@rd,rr         multl rqd,rrs
314*a9fa9459Szrjinib @@rd,@@rs,ra         lddrb @@rs,@@rd,rr        neg @@rd
315*a9fa9459Szrjinibr @@rd,@@rs,ra        ldi @@rd,@@rs,rr          neg addr
316*a9fa9459Szrjiret                    ldib @@rd,@@rs,rr         neg addr(rd)
317*a9fa9459Szrjjp cc,@@rd               ldir @@rd,@@rs,rr         neg rd
318*a9fa9459Szrjjp cc,addr              ldirb @@rd,@@rs,rr        negb @@rd
319*a9fa9459Szrjjp cc,addr(rd)          ldk rd,imm4             negb addr
320*a9fa9459Szrjjr cc,disp8             ldl @@rd,rrs             negb addr(rd)
321*a9fa9459Szrjld @@rd,imm16            ldl addr(rd),rrs        negb rbd
322*a9fa9459Szrjld @@rd,rs               ldl addr,rrs            nop
323*a9fa9459Szrjld addr(rd),imm16       ldl rd(imm16),rrs       or rd,@@rs
324*a9fa9459Szrjld addr(rd),rs          ldl rd(rx),rrs          or rd,addr
325*a9fa9459Szrjld addr,imm16           ldl rrd,@@rs             or rd,addr(rs)
326*a9fa9459Szrjld addr,rs              ldl rrd,addr            or rd,imm16
327*a9fa9459Szrjld rd(imm16),rs         ldl rrd,addr(rs)        or rd,rs
328*a9fa9459Szrjld rd(rx),rs            ldl rrd,imm32           orb rbd,@@rs
329*a9fa9459Szrjld rd,@@rs               ldl rrd,rrs             orb rbd,addr
330*a9fa9459Szrjld rd,addr              ldl rrd,rs(imm16)       orb rbd,addr(rs)
331*a9fa9459Szrjld rd,addr(rs)          ldl rrd,rs(rx)          orb rbd,imm8
332*a9fa9459Szrjld rd,imm16             ldm @@rd,rs,n            orb rbd,rbs
333*a9fa9459Szrjld rd,rs                ldm addr(rd),rs,n       out @@rd,rs
334*a9fa9459Szrjld rd,rs(imm16)         ldm addr,rs,n           out imm16,rs
335*a9fa9459Szrjld rd,rs(rx)            ldm rd,@@rs,n            outb @@rd,rbs
336*a9fa9459Szrjlda rd,addr             ldm rd,addr(rs),n       outb imm16,rbs
337*a9fa9459Szrjlda rd,addr(rs)         ldm rd,addr,n           outd @@rd,@@rs,ra
338*a9fa9459Szrjlda rd,rs(imm16)        ldps @@rs                outdb @@rd,@@rs,rba
339*a9fa9459Szrjlda rd,rs(rx)           ldps addr               outib @@rd,@@rs,ra
340*a9fa9459Szrjldar rd,disp16          ldps addr(rs)           outibr @@rd,@@rs,ra
341*a9fa9459Szrjldb @@rd,imm8            ldr disp16,rs           pop @@rd,@@rs
342*a9fa9459Szrjldb @@rd,rbs             ldr rd,disp16           pop addr(rd),@@rs
343*a9fa9459Szrjldb addr(rd),imm8       ldrb disp16,rbs         pop addr,@@rs
344*a9fa9459Szrjldb addr(rd),rbs        ldrb rbd,disp16         pop rd,@@rs
345*a9fa9459Szrjldb addr,imm8           ldrl disp16,rrs         popl @@rd,@@rs
346*a9fa9459Szrjldb addr,rbs            ldrl rrd,disp16         popl addr(rd),@@rs
347*a9fa9459Szrjldb rbd,@@rs             mbit                    popl addr,@@rs
348*a9fa9459Szrjldb rbd,addr            mreq rd                 popl rrd,@@rs
349*a9fa9459Szrjldb rbd,addr(rs)        mres                    push @@rd,@@rs
350*a9fa9459Szrjldb rbd,imm8            mset                    push @@rd,addr
351*a9fa9459Szrjldb rbd,rbs             mult rrd,@@rs            push @@rd,addr(rs)
352*a9fa9459Szrjldb rbd,rs(imm16)       mult rrd,addr           push @@rd,imm16
353*a9fa9459Szrjpush @@rd,rs             set addr,imm4           subl rrd,imm32
354*a9fa9459Szrjpushl @@rd,@@rs           set rd,imm4             subl rrd,rrs
355*a9fa9459Szrjpushl @@rd,addr          set rd,rs               tcc cc,rd
356*a9fa9459Szrjpushl @@rd,addr(rs)      setb @@rd,imm4           tccb cc,rbd
357*a9fa9459Szrjpushl @@rd,rrs           setb addr(rd),imm4      test @@rd
358*a9fa9459Szrjres @@rd,imm4            setb addr,imm4          test addr
359*a9fa9459Szrjres addr(rd),imm4       setb rbd,imm4           test addr(rd)
360*a9fa9459Szrjres addr,imm4           setb rbd,rs             test rd
361*a9fa9459Szrjres rd,imm4             setflg imm4             testb @@rd
362*a9fa9459Szrjres rd,rs               sinb rbd,imm16          testb addr
363*a9fa9459Szrjresb @@rd,imm4           sinb rd,imm16           testb addr(rd)
364*a9fa9459Szrjresb addr(rd),imm4      sind @@rd,@@rs,ra         testb rbd
365*a9fa9459Szrjresb addr,imm4          sindb @@rd,@@rs,rba       testl @@rd
366*a9fa9459Szrjresb rbd,imm4           sinib @@rd,@@rs,ra        testl addr
367*a9fa9459Szrjresb rbd,rs             sinibr @@rd,@@rs,ra       testl addr(rd)
368*a9fa9459Szrjresflg imm4             sla rd,imm8             testl rrd
369*a9fa9459Szrjret cc                  slab rbd,imm8           trdb @@rd,@@rs,rba
370*a9fa9459Szrjrl rd,imm1or2           slal rrd,imm8           trdrb @@rd,@@rs,rba
371*a9fa9459Szrjrlb rbd,imm1or2         sll rd,imm8             trib @@rd,@@rs,rbr
372*a9fa9459Szrjrlc rd,imm1or2          sllb rbd,imm8           trirb @@rd,@@rs,rbr
373*a9fa9459Szrjrlcb rbd,imm1or2        slll rrd,imm8           trtdrb @@ra,@@rb,rbr
374*a9fa9459Szrjrldb rbb,rba            sout imm16,rs           trtib @@ra,@@rb,rr
375*a9fa9459Szrjrr rd,imm1or2           soutb imm16,rbs         trtirb @@ra,@@rb,rbr
376*a9fa9459Szrjrrb rbd,imm1or2         soutd @@rd,@@rs,ra        trtrb @@ra,@@rb,rbr
377*a9fa9459Szrjrrc rd,imm1or2          soutdb @@rd,@@rs,rba      tset @@rd
378*a9fa9459Szrjrrcb rbd,imm1or2        soutib @@rd,@@rs,ra       tset addr
379*a9fa9459Szrjrrdb rbb,rba            soutibr @@rd,@@rs,ra      tset addr(rd)
380*a9fa9459Szrjrsvd36                  sra rd,imm8             tset rd
381*a9fa9459Szrjrsvd38                  srab rbd,imm8           tsetb @@rd
382*a9fa9459Szrjrsvd78                  sral rrd,imm8           tsetb addr
383*a9fa9459Szrjrsvd7e                  srl rd,imm8             tsetb addr(rd)
384*a9fa9459Szrjrsvd9d                  srlb rbd,imm8           tsetb rbd
385*a9fa9459Szrjrsvd9f                  srll rrd,imm8           xor rd,@@rs
386*a9fa9459Szrjrsvdb9                  sub rd,@@rs              xor rd,addr
387*a9fa9459Szrjrsvdbf                  sub rd,addr             xor rd,addr(rs)
388*a9fa9459Szrjsbc rd,rs               sub rd,addr(rs)         xor rd,imm16
389*a9fa9459Szrjsbcb rbd,rbs            sub rd,imm16            xor rd,rs
390*a9fa9459Szrjsc imm8                 sub rd,rs               xorb rbd,@@rs
391*a9fa9459Szrjsda rd,rs               subb rbd,@@rs            xorb rbd,addr
392*a9fa9459Szrjsdab rbd,rs             subb rbd,addr           xorb rbd,addr(rs)
393*a9fa9459Szrjsdal rrd,rs             subb rbd,addr(rs)       xorb rbd,imm8
394*a9fa9459Szrjsdl rd,rs               subb rbd,imm8           xorb rbd,rbs
395*a9fa9459Szrjsdlb rbd,rs             subb rbd,rbs            xorb rbd,rbs
396*a9fa9459Szrjsdll rrd,rs             subl rrd,@@rs
397*a9fa9459Szrjset @@rd,imm4            subl rrd,addr
398*a9fa9459Szrjset addr(rd),imm4       subl rrd,addr(rs)
399*a9fa9459Szrj@end smallexample
400*a9fa9459Szrj@iftex
401*a9fa9459Szrj@endgroup
402*a9fa9459Szrj@end iftex
403*a9fa9459Szrj@end ifset
404*a9fa9459Szrj
405