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