1; IQ10-only CPU description. -*- Scheme -*- 2; 3; Copyright 2001, 2002, 2007, 2009 Free Software Foundation, Inc. 4; 5; Contributed by Red Hat Inc; developed under contract from Vitesse. 6; 7; This file is part of the GNU Binutils. 8; 9; This program is free software; you can redistribute it and/or modify 10; it under the terms of the GNU General Public License as published by 11; the Free Software Foundation; either version 3 of the License, or 12; (at your option) any later version. 13; 14; This program is distributed in the hope that it will be useful, 15; but WITHOUT ANY WARRANTY; without even the implied warranty of 16; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17; GNU General Public License for more details. 18; 19; You should have received a copy of the GNU General Public License 20; along with this program; if not, write to the Free Software 21; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 22; MA 02110-1301, USA. 23 24 25; Instructions. 26 27(dni andoui-q10 "iq10 and upper ones immediate" (MACH10 USES-RS USES-RT) 28 "andoui $rt,$rs,$hi16" 29 (+ OP10_ANDOUI rs rt hi16) 30 (set rt (and rs (or (sll hi16 16) #xFFFF))) 31 ()) 32 33(dni andoui2-q10 "iq10 and upper ones immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT) 34 "andoui ${rt-rs},$hi16" 35 (+ OP10_ANDOUI rt-rs hi16) 36 (set rt-rs (and rt-rs (or (sll hi16 16) #xFFFF))) 37 ()) 38 39(dni orui-q10 "or upper immediate" (MACH10 USES-RS USES-RT) 40 "orui $rt,$rs,$hi16" 41 (+ OP10_ORUI rs rt hi16) 42 (set rt (or rs (sll hi16 16))) 43 ()) 44 45(dni orui2-q10 "or upper immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT) 46 "orui ${rt-rs},$hi16" 47 (+ OP10_ORUI rt-rs hi16) 48 (set rt-rs (or rt-rs (sll hi16 16))) 49 ()) 50 51(dni mrgbq10 "merge bytes" (MACH10 USES-RD USES-RS USES-RT) 52 "mrgb $rd,$rs,$rt,$maskq10" 53 (+ OP_SPECIAL rs rt rd maskq10 FUNC_MRGB) 54 (sequence ((SI temp)) 55 (if (bitclear? mask 0) 56 (set temp (and rs #xFF)) 57 (set temp (and rt #xFF))) 58 (if (bitclear? mask 1) 59 (set temp (or temp (and rs #xFF00))) 60 (set temp (or temp (and rt #xFF00)))) 61 (if (bitclear? mask 2) 62 (set temp (or temp (and rs #xFF0000))) 63 (set temp (or temp (and rt #xFF0000)))) 64 (if (bitclear? mask 3) 65 (set temp (or temp (and rs #xFF000000))) 66 (set temp (or temp (and rt #xFF000000)))) 67 (set rd temp)) 68 ()) 69 70(dni mrgbq102 "merge bytes" (ALIAS NO-DIS MACH10 USES-RD USES-RS USES-RT) 71 "mrgb ${rd-rs},$rt,$maskq10" 72 (+ OP_SPECIAL rt rd-rs maskq10 FUNC_MRGB) 73 (sequence ((SI temp)) 74 (if (bitclear? mask 0) 75 (set temp (and rd-rs #xFF)) 76 (set temp (and rt #xFF))) 77 (if (bitclear? mask 1) 78 (set temp (or temp (and rd-rs #xFF00))) 79 (set temp (or temp (and rt #xFF00)))) 80 (if (bitclear? mask 2) 81 (set temp (or temp (and rd-rs #xFF0000))) 82 (set temp (or temp (and rt #xFF0000)))) 83 (if (bitclear? mask 3) 84 (set temp (or temp (and rd-rs #xFF000000))) 85 (set temp (or temp (and rt #xFF000000)))) 86 (set rd-rs temp)) 87 ()) 88 89; In the future, we'll want the j & jal to use the 21 bit target, with 90; the upper five bits shifted up. For now, give 'em the 16 bit target. 91 92(dni jq10 "jump" (MACH10) 93 "j $jmptarg" 94 (+ OP_J (f-rs 0) (f-rt 0) jmptarg) 95; "j $jmptargq10" 96; (+ OP_J upper-5-jmptargq10 (f-rt 0) lower-16-jmptargq10) 97 (delay 1 (set pc jmptarg)) 98 ()) 99 100(dni jalq10 "jump and link" (MACH10 USES-RT) 101 "jal $rt,$jmptarg" 102 (+ OP_JAL (f-rs 0) rt jmptarg) 103; "jal $rt,$jmptargq10" 104; (+ OP_JAL upper-5-jmptargq10 rt lower-16-jmptargq10) 105 (delay 1 106 (sequence () 107 (set rt (add pc 8)) 108 (set pc jmptarg))) 109 ()) 110 111(dni jalq10-2 "jump and link, implied r31" (MACH10 USES-RT) 112 "jal $jmptarg" 113 (+ OP_JAL (f-rs 0) (f-rt 31) jmptarg) 114 (delay 1 115 (sequence () 116 (set rt (add pc 8)) 117 (set pc jmptarg))) 118 ()) 119 120; Branch instructions. 121 122(dni bbil "branch bit immediate likely" (MACH10 USES-RS) 123 "bbil $rs($bitnum),$offset" 124 (+ OP10_BBIL rs bitnum offset) 125 (if (bitset? rs bitnum) 126 (delay 1 (set pc offset)) 127 (skip 1)) 128 ()) 129 130(dni bbinl "branch bit immediate negated likely" (MACH10 USES-RS) 131 "bbinl $rs($bitnum),$offset" 132 (+ OP10_BBINL rs bitnum offset) 133 (if (bitclear? rs bitnum) 134 (delay 1 (set pc offset)) 135 (skip 1)) 136 ()) 137 138(dni bbvl "branch bit variable likely" (MACH10 USES-RS USES-RT) 139 "bbvl $rs,$rt,$offset" 140 (+ OP10_BBVL rs rt offset) 141 (if (bitset? rs (and rt #x1F)) 142 (delay 1 (set pc offset)) 143 (skip 1)) 144 ()) 145 146(dni bbvnl "branch bit variable negated likely" (MACH10 USES-RS USES-RT) 147 "bbvnl $rs,$rt,$offset" 148 (+ OP10_BBVNL rs rt offset) 149 (if (bitclear? rs (and rt #x1F)) 150 (delay 1 (set pc offset)) 151 (skip 1)) 152 ()) 153 154(dni bgtzal "branch if greater than zero and link" (MACH10 USES-RS USES-R31) 155 "bgtzal $rs,$offset" 156 (+ OP_REGIMM rs FUNC_BGTZAL offset) 157 (if (gt rs 0) 158 (sequence () 159 (set (reg h-gr 31) (add pc 8)) 160 (delay 1 (set pc offset)))) 161 ()) 162 163(dni bgtzall 164 "branch if greater than zero and link likely" (MACH10 USES-RS USES-R31) 165 "bgtzall $rs,$offset" 166 (+ OP_REGIMM rs FUNC_BGTZALL offset) 167 (if (gt rs 0) 168 (sequence () 169 (set (reg h-gr 31) (add pc 8)) 170 (delay 1 (set pc offset))) 171 (skip 1)) 172 ()) 173 174(dni blezal "branch if less than or equal to zero and link" (MACH10 USES-RS USES-R31) 175 "blezal $rs,$offset" 176 (+ OP_REGIMM rs FUNC_BLEZAL offset) 177 (if (le rs 0) 178 (sequence () 179 (set (reg h-gr 31) (add pc 8)) 180 (delay 1 (set pc offset)))) 181 ()) 182 183(dni blezall 184 "branch if less than or equal to zero and link likely" (MACH10 USES-RS USES-R31) 185 "blezall $rs,$offset" 186 (+ OP_REGIMM rs FUNC_BLEZALL offset) 187 (if (le rs 0) 188 (sequence () 189 (set (reg h-gr 31) (add pc 8)) 190 (delay 1 (set pc offset))) 191 (skip 1)) 192 ()) 193 194(dni bgtz-q10 "branch if greater than zero" (MACH10 USES-RS) 195 "bgtz $rs,$offset" 196 (+ OP_REGIMM rs FUNC_BGTZ offset) 197 (if (gt rs 0) 198 (delay 1 (set pc offset))) 199 ()) 200 201(dni bgtzl-q10 "branch if greater than zero likely" (MACH10 USES-RS) 202 "bgtzl $rs,$offset" 203 (+ OP_REGIMM rs FUNC_BGTZL offset) 204 (if (gt rs 0) 205 (delay 1 (set pc offset)) 206 (skip 1)) 207 ()) 208 209 210(dni blez-q10 "branch if less than or equal to zero" (MACH10 USES-RS) 211 "blez $rs,$offset" 212 (+ OP_REGIMM rs FUNC_BLEZ offset) 213 (if (le rs 0) 214 (delay 1 (set pc offset))) 215 ()) 216 217(dni blezl-q10 "branch if less than or equal to zero likely" (MACH10 USES-RS) 218 "blezl $rs,$offset" 219 (+ OP_REGIMM rs FUNC_BLEZL offset) 220 (if (le rs 0) 221 (delay 1 (set pc offset)) 222 (skip 1)) 223 ()) 224 225(dni bmb-q10 "branch if matching byte-lane" (MACH10 USES-RS USES-RT) 226 "bmb $rs,$rt,$offset" 227 (+ OP10_BMB rs rt offset) 228 (sequence ((BI branch?)) 229 (set branch? 0) 230 (if (eq (and rs #xFF) (and rt #xFF)) 231 (set branch? 1)) 232 (if (eq (and rs #xFF00) (and rt #xFF00)) 233 (set branch? 1)) 234 (if (eq (and rs #xFF0000) (and rt #xFF0000)) 235 (set branch? 1)) 236 (if (eq (and rs #xFF000000) (and rt #xFF000000)) 237 (set branch? 1)) 238 (if branch? 239 (delay 1 (set pc offset)))) 240 ()) 241 242(dni bmbl "branch if matching byte-lane likely" (MACH10 USES-RS USES-RT) 243 "bmbl $rs,$rt,$offset" 244 (+ OP10_BMBL rs rt offset) 245 (sequence ((BI branch?)) 246 (set branch? 0) 247 (if (eq (and rs #xFF) (and rt #xFF)) 248 (set branch? 1)) 249 (if (eq (and rs #xFF00) (and rt #xFF00)) 250 (set branch? 1)) 251 (if (eq (and rs #xFF0000) (and rt #xFF0000)) 252 (set branch? 1)) 253 (if (eq (and rs #xFF000000) (and rt #xFF000000)) 254 (set branch? 1)) 255 (if branch? 256 (delay 1 (set pc offset)) 257 (skip 1))) 258 ()) 259 260(dni bri "branch if register invalid" (MACH10 USES-RS) 261 "bri $rs,$offset" 262 (+ OP_REGIMM rs FUNC_BRI offset) 263 (if (gt rs 0) 264 (delay 1 (set pc offset)) 265 (skip 1)) 266 ()) 267 268(dni brv "branch if register invalid" (MACH10 USES-RS) 269 "brv $rs,$offset" 270 (+ OP_REGIMM rs FUNC_BRV offset) 271 (if (gt rs 0) 272 (delay 1 (set pc offset)) 273 (skip 1)) 274 ()) 275 276; debug instructions 277 278(dni bctx "branch if the current context == instruction[21]" (MACH10 USES-RS) 279 "bctx $rs,$offset" 280 (+ OP_REGIMM rs FUNC_BCTX offset) 281 (delay 1 (set pc offset)) 282 ()) 283 284(dni yield "unconditional yield to the other context" (MACH10) 285 "yield" 286 (+ OP_SPECIAL (f-rs 0) (f-rt 0) (f-rd 0) (f-shamt 0) FUNC10_YIELD) 287 (unimp yield) 288 ()) 289 290; Special instructions. 291 292(dni crc32 "CRC, 32 bit input" (MACH10 USES-RD USES-RS USES-RT) 293 "crc32 $rd,$rs,$rt" 294 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32) 295 (unimp crc32) 296 ()) 297 298(dni crc32b "CRC, 8 bit input" (MACH10 USES-RD USES-RS USES-RT) 299 "crc32b $rd,$rs,$rt" 300 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32B) 301 (unimp crc32b) 302 ()) 303 304(dni cnt1s "Count ones" (MACH10 USES-RD USES-RS) 305 "cnt1s $rd,$rs" 306 (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC10_CNT1S) 307 (unimp crcp) 308 ()) 309 310 311; Special Instructions 312 313(dni avail "Mark Header Buffer Available" (MACH10 USES-RD) 314 "avail $rd" 315 (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_AVAIL) 316 (unimp avail) 317 ()) 318 319(dni free "Mark Header Buffer Free" (MACH10 USES-RS USES-RD) 320 "free $rd,$rs" 321 (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_FREE) 322 (unimp free) 323 ()) 324 325(dni tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD) 326 "tstod $rd,$rs" 327 (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_TSTOD) 328 (unimp tstod) 329 ()) 330 331(dni cmphdr "Get a Complete Header" (MACH10 USES-RD) 332 "cmphdr $rd" 333 (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_CMPHDR) 334 (unimp cmphdr) 335 ()) 336 337(dni mcid "Allocate a Multicast ID" (MACH10 USES-RD USES-RT) 338 "mcid $rd,$rt" 339 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_MCID) 340 (unimp mcid) 341 ()) 342 343(dni dba "Allocate a Data Buffer Pointer" (MACH10 USES-RD) 344 "dba $rd" 345 (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_DBA) 346 (unimp dba) 347 ()) 348 349(dni dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RS USES-RT USES-RD) 350 "dbd $rd,$rs,$rt" 351 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_DBD) 352 (unimp dbd) 353 ()) 354 355(dni dpwt "DSTN_PORT Write" (MACH10 USES-RS USES-RD) 356 "dpwt $rd,$rs" 357 (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_DPWT) 358 (unimp dpwt) 359 ()) 360 361; Architectural and coprocessor instructions. 362 363(dni chkhdrq10 "" (MACH10 USES-RS USES-RD) 364 "chkhdr $rd,$rs" 365 (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_CHKHDR) 366 (unimp chkhdr) 367 ()) 368 369; Coprocessor DMA Instructions (IQ10) 370 371(dni rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD) 372 "rba $rd,$rs,$rt" 373 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBA) 374 (unimp rba) 375 ()) 376 377(dni rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD) 378 "rbal $rd,$rs,$rt" 379 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAL) 380 (unimp rbal) 381 ()) 382 383(dni rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD) 384 "rbar $rd,$rs,$rt" 385 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAR) 386 (unimp rbar) 387 ()) 388 389(dni wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD) 390 "wba $rd,$rs,$rt" 391 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBA) 392 (unimp wba) 393 ()) 394 395(dni wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD) 396 "wbau $rd,$rs,$rt" 397 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAU) 398 (unimp wbau) 399 ()) 400 401(dni wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD) 402 "wbac $rd,$rs,$rt" 403 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAC) 404 (unimp wbac) 405 ()) 406 407(dni rbi "Read Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) 408 "rbi $rd,$rs,$rt,$bytecount" 409 (+ OP_COP3 rs rt rd FUNC10_RBI bytecount) 410 (unimp rbi) 411 ()) 412 413(dni rbil "Read Bytes Immediate and Lock" (MACH10 USES-RD USES-RS USES-RT) 414 "rbil $rd,$rs,$rt,$bytecount" 415 (+ OP_COP3 rs rt rd FUNC10_RBIL bytecount) 416 (unimp rbil) 417 ()) 418 419(dni rbir "Read Bytes Immediate and Release" (MACH10 USES-RD USES-RS USES-RT) 420 "rbir $rd,$rs,$rt,$bytecount" 421 (+ OP_COP3 rs rt rd FUNC10_RBIR bytecount) 422 (unimp rbir) 423 ()) 424 425(dni wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) 426 "wbi $rd,$rs,$rt,$bytecount" 427 (+ OP_COP3 rs rt rd FUNC10_WBI bytecount) 428 (unimp wbi) 429 ()) 430 431(dni wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT) 432 "wbic $rd,$rs,$rt,$bytecount" 433 (+ OP_COP3 rs rt rd FUNC10_WBIC bytecount) 434 (unimp wbic) 435 ()) 436 437(dni wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT) 438 "wbiu $rd,$rs,$rt,$bytecount" 439 (+ OP_COP3 rs rt rd FUNC10_WBIU bytecount) 440 (unimp wbiu) 441 ()) 442 443(dni pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT) 444 "pkrli $rd,$rs,$rt,$bytecount" 445 (+ OP_COP2 rs rt rd FUNC10_PKRLI bytecount) 446 (unimp pkrli) 447 ()) 448 449(dni pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT) 450 "pkrlih $rd,$rs,$rt,$bytecount" 451 (+ OP_COP2 rs rt rd FUNC10_PKRLIH bytecount) 452 (unimp pkrlih) 453 ()) 454 455(dni pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT) 456 "pkrliu $rd,$rs,$rt,$bytecount" 457 (+ OP_COP2 rs rt rd FUNC10_PKRLIU bytecount) 458 (unimp pkrliu) 459 ()) 460 461(dni pkrlic "Packet Release Immediate Continue" (MACH10 USES-RD USES-RS USES-RT) 462 "pkrlic $rd,$rs,$rt,$bytecount" 463 (+ OP_COP2 rs rt rd FUNC10_PKRLIC bytecount) 464 (unimp pkrlic) 465 ()) 466 467(dni pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD) 468 "pkrla $rd,$rs,$rt" 469 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLA) 470 (unimp pkrla) 471 ()) 472 473(dni pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD) 474 "pkrlau $rd,$rs,$rt" 475 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAU) 476 (unimp pkrlau) 477 ()) 478 479(dni pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD) 480 "pkrlah $rd,$rs,$rt" 481 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAH) 482 (unimp pkrlah) 483 ()) 484 485(dni pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD) 486 "pkrlac $rd,$rs,$rt" 487 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAC) 488 (unimp pkrlac) 489 ()) 490 491; Main Memory Access Instructions 492 493(dni lock "lock memory" (MACH10 USES-RD USES-RT) 494 "lock $rd,$rt" 495 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_LOCK) 496 (unimp lock) 497 ()) 498 499(dni unlk "unlock memory" (MACH10 USES-RT USES-RD) 500 "unlk $rd,$rt" 501 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_UNLK) 502 (unimp unlk) 503 ()) 504 505(dni swrd "Single Word Read" (MACH10 USES-RT USES-RD) 506 "swrd $rd,$rt" 507 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRD) 508 (unimp swrd) 509 ()) 510 511(dni swrdl "Single Word Read and Lock" (MACH10 USES-RT USES-RD) 512 "swrdl $rd,$rt" 513 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRDL) 514 (unimp swrdl) 515 ()) 516 517(dni swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD) 518 "swwr $rd,$rs,$rt" 519 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWR) 520 (unimp swwr) 521 ()) 522 523(dni swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD) 524 "swwru $rd,$rs,$rt" 525 (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWRU) 526 (unimp swwru) 527 ()) 528 529(dni dwrd "Double Word Read" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 530 "dwrd $rd,$rt" 531 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRD) 532 (unimp dwrd) 533 ()) 534 535(dni dwrdl "Double Word Read and Lock" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 536 "dwrdl $rd,$rt" 537 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRDL) 538 (unimp dwrdl) 539 ()) 540 541; CAM access instructions (IQ10) 542 543(dni cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD) 544 "cam36 $rd,$rt,${cam-z},${cam-y}" 545 (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM36 cam-z cam-y) 546 (unimp cam36) 547 ()) 548 549(dni cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD) 550 "cam72 $rd,$rt,${cam-y},${cam-z}" 551 (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM72 cam-z cam-y) 552 (unimp cam72) 553 ()) 554 555(dni cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD) 556 "cam144 $rd,$rt,${cam-y},${cam-z}" 557 (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM144 cam-z cam-y) 558 (unimp cam144) 559 ()) 560 561(dni cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD) 562 "cam288 $rd,$rt,${cam-y},${cam-z}" 563 (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM288 cam-z cam-y) 564 (unimp cam288) 565 ()) 566 567; Counter manager instructions (IQ10) 568 569(dni cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD) 570 "cm32and $rd,$rs,$rt" 571 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32AND) 572 (unimp cm32and) 573 ()) 574 575(dni cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD) 576 "cm32andn $rd,$rs,$rt" 577 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32ANDN) 578 (unimp cm32andn) 579 ()) 580 581(dni cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD) 582 "cm32or $rd,$rs,$rt" 583 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32OR) 584 (unimp cm32or) 585 ()) 586 587(dni cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD) 588 "cm32ra $rd,$rs,$rt" 589 (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RA) 590 (unimp cm32ra) 591 ()) 592 593(dni cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD) 594 "cm32rd $rd,$rt" 595 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RD) 596 (unimp cm32rd) 597 ()) 598 599(dni cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD) 600 "cm32ri $rd,$rt" 601 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RI) 602 (unimp cm32ri) 603 ()) 604 605(dni cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD) 606 "cm32rs $rd,$rs,$rt" 607 (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RS) 608 (unimp cm32rs) 609 ()) 610 611(dni cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD) 612 "cm32sa $rd,$rs,$rt" 613 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SA) 614 (unimp cm32sa) 615 ()) 616 617(dni cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD) 618 "cm32sd $rd,$rt" 619 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SD) 620 (unimp cm32sd) 621 ()) 622 623(dni cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD) 624 "cm32si $rd,$rt" 625 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SI) 626 (unimp cm32si) 627 ()) 628 629(dni cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD) 630 "cm32ss $rd,$rs,$rt" 631 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SS) 632 (unimp cm32ss) 633 ()) 634 635(dni cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD) 636 "cm32xor $rd,$rs,$rt" 637 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32XOR) 638 (unimp cm32xor) 639 ()) 640 641(dni cm64clr "Counter Manager Clear" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 642 "cm64clr $rd,$rt" 643 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64CLR) 644 (unimp cm64clr) 645 ()) 646 647(dni cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 648 "cm64ra $rd,$rs,$rt" 649 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RA) 650 (unimp cm64ra) 651 ()) 652 653(dni cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 654 "cm64rd $rd,$rt" 655 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RD) 656 (unimp cm64rd) 657 ()) 658 659(dni cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 660 "cm64ri $rd,$rt" 661 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RI) 662 (unimp cm64ri) 663 ()) 664 665(dni cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 666 "cm64ria2 $rd,$rs,$rt" 667 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RIA2) 668 (unimp cm64ria2) 669 ()) 670 671(dni cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 672 "cm64rs $rd,$rs,$rt" 673 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RS) 674 (unimp cm64rs) 675 ()) 676 677(dni cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 678 "cm64sa $rd,$rs,$rt" 679 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SA) 680 (unimp cm64sa) 681 ()) 682 683(dni cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 684 "cm64sd $rd,$rt" 685 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SD) 686 (unimp cm64sd) 687 ()) 688 689(dni cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD) 690 "cm64si $rd,$rt" 691 (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SI) 692 (unimp cm64si) 693 ()) 694 695(dni cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 696 "cm64sia2 $rd,$rs,$rt" 697 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SIA2) 698 (unimp cm64sia2) 699 ()) 700 701(dni cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 702 "cm64ss $rd,$rs,$rt" 703 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SS) 704 (unimp cm64ss) 705 ()) 706 707(dni cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 708 "cm128ria2 $rd,$rs,$rt" 709 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA2) 710 (unimp cm128ria2) 711 ()) 712 713(dni cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 714 "cm128ria3 $rd,$rs,$rt,${cm-3z}" 715 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA3 cm-3z) 716 (unimp cm128ria3) 717 ()) 718 719(dni cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD) 720 "cm128ria4 $rd,$rs,$rt,${cm-4z}" 721 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA4 cm-4z) 722 (unimp cm128ria4) 723 ()) 724 725(dni cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 726 "cm128sia2 $rd,$rs,$rt" 727 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA2) 728 (unimp cm128sia2) 729 ()) 730 731(dni cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD) 732 "cm128sia3 $rd,$rs,$rt,${cm-3z}" 733 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA3 cm-3z) 734 (unimp cm128sia3) 735 ()) 736 737(dni cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD) 738 "cm128sia4 $rd,$rs,$rt,${cm-4z}" 739 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA4 cm-4z) 740 (unimp cm128sia4) 741 ()) 742 743(dni cm128vsa "Counter Manager Continuous State Dual Leaky Token Bucket Policing" (MACH10 USES-RS USES-RT USES-RD) 744 "cm128vsa $rd,$rs,$rt" 745 (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128VSA) 746 (unimp cm128vsa) 747 ()) 748 749; Coprocessor Data Movement Instructions 750 751; Note that we don't set the USES-RD or USES-RT attributes for many of the following 752; instructions, as it's the COP register that's being specified. 753 754; ??? Is YIELD-INSN the right attribute for IQ10? The IQ2000 used the attribute to warn about 755; yielding instructions in a delay slot, but that's not relevant in IQ10. What *is* relevant 756; (and unique to IQ10) is instructions that yield if the destination register is accessed 757; before the value is there, causing a yield. 758 759(dni cfc "copy from coprocessor control register" (MACH10 LOAD-DELAY USES-RD YIELD-INSN) 760 "cfc $rd,$rt" 761 (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_CFC) 762 (unimp cfc) 763 ()) 764 765(dni ctc "copy to coprocessor control register" (MACH10 USES-RS) 766 "ctc $rs,$rt" 767 (+ OP_COP3 rs rt (f-rd 0) (f-shamt 0) FUNC10_CTC) 768 (unimp ctc) 769 ()) 770 771; Macros 772 773(dnmi m-avail "Mark Header Buffer Available" (MACH10 NO-DIS) 774 "avail" 775 (emit avail (f-rd 0)) 776) 777 778(dnmi m-cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) 779 "cam36 $rd,$rt,${cam-z}" 780 (emit cam36 rd rt cam-z (f-cam-y 0)) 781) 782 783(dnmi m-cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) 784 "cam72 $rd,$rt,${cam-z}" 785 (emit cam72 rd rt cam-z (f-cam-y 0)) 786) 787 788(dnmi m-cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) 789 "cam144 $rd,$rt,${cam-z}" 790 (emit cam144 rd rt cam-z (f-cam-y 0)) 791) 792 793(dnmi m-cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD NO-DIS) 794 "cam288 $rd,$rt,${cam-z}" 795 (emit cam288 rd rt cam-z (f-cam-y 0)) 796) 797 798(dnmi m-cm32read "Counter Manager 32-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS) 799 "cm32read $rd,$rt" 800 (emit cm32ra rd (f-rs 0) rt) 801) 802 803(dnmi m-cm64read "Counter Manager 64-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS) 804 "cm64read $rd,$rt" 805 (emit cm64ra rd (f-rs 0) rt) 806) 807 808(dnmi m-cm32mlog "Counter Manager 32-bit or R0" (MACH10 USES-RS USES-RT NO-DIS) 809 "cm32mlog $rs,$rt" 810 (emit cm32or (f-rd 0) rs rt) 811) 812 813(dnmi m-cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 814 "cm32and $rs,$rt" 815 (emit cm32and (f-rd 0) rs rt) 816) 817 818(dnmi m-cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 819 "cm32andn $rs,$rt" 820 (emit cm32andn (f-rd 0) rs rt) 821) 822 823(dnmi m-cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 824 "cm32or $rs,$rt" 825 (emit cm32or (f-rd 0) rs rt) 826) 827 828(dnmi m-cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 829 "cm32ra $rs,$rt" 830 (emit cm32ra (f-rd 0) rs rt) 831) 832 833(dnmi m-cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS) 834 "cm32rd $rt" 835 (emit cm32rd (f-rd 0) rt) 836) 837 838(dnmi m-cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS) 839 "cm32ri $rt" 840 (emit cm32ri (f-rd 0) rt) 841) 842 843(dnmi m-cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 844 "cm32rs $rs,$rt" 845 (emit cm32rs (f-rd 0) rs rt) 846) 847 848(dnmi m-cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 849 "cm32sa $rs,$rt" 850 (emit cm32sa (f-rd 0) rs rt) 851) 852 853(dnmi m-cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS) 854 "cm32sd $rt" 855 (emit cm32sd (f-rd 0) rt) 856) 857 858(dnmi m-cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS) 859 "cm32si $rt" 860 (emit cm32si (f-rd 0) rt) 861) 862 863(dnmi m-cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 864 "cm32ss $rs,$rt" 865 (emit cm32ss (f-rd 0) rs rt) 866) 867 868(dnmi m-cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 869 "cm32xor $rs,$rt" 870 (emit cm32xor (f-rd 0) rs rt) 871) 872 873(dnmi m-cm64clr "Counter Manager Clear" (MACH10 USES-RT USES-RD NO-DIS) 874 "cm64clr $rt" 875 (emit cm64clr (f-rd 0) rt) 876) 877 878(dnmi m-cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 879 "cm64ra $rs,$rt" 880 (emit cm64ra (f-rd 0) rs rt) 881) 882 883(dnmi m-cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS) 884 "cm64rd $rt" 885 (emit cm64rd (f-rd 0) rt) 886) 887 888(dnmi m-cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS) 889 "cm64ri $rt" 890 (emit cm64ri (f-rd 0) rt) 891) 892 893(dnmi m-cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 894 "cm64ria2 $rs,$rt" 895 (emit cm64ria2 (f-rd 0) rs rt) 896) 897 898(dnmi m-cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 899 "cm64rs $rs,$rt" 900 (emit cm64rs (f-rd 0) rs rt) 901) 902 903(dnmi m-cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 904 "cm64sa $rs,$rt" 905 (emit cm64sa (f-rd 0) rs rt) 906) 907 908(dnmi m-cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS) 909 "cm64sd $rt" 910 (emit cm64sd (f-rd 0) rt) 911) 912 913(dnmi m-cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS) 914 "cm64si $rt" 915 (emit cm64si (f-rd 0) rt) 916) 917 918(dnmi m-cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 919 "cm64sia2 $rs,$rt" 920 (emit cm64sia2 (f-rd 0) rs rt) 921) 922 923(dnmi m-cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 924 "cm64ss $rs,$rt" 925 (emit cm64ss (f-rd 0) rs rt) 926) 927 928(dnmi m-cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 929 "cm128ria2 $rs,$rt" 930 (emit cm128ria2 (f-rd 0) rs rt) 931) 932 933(dnmi m-cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 934 "cm128ria3 $rs,$rt,${cm-3z}" 935 (emit cm128ria3 (f-rd 0) rs rt cm-3z) 936) 937 938(dnmi m-cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 939 "cm128ria4 $rs,$rt,${cm-4z}" 940 (emit cm128ria4 (f-rd 0) rs rt cm-4z) 941) 942 943(dnmi m-cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 944 "cm128sia2 $rs,$rt" 945 (emit cm128sia2 (f-rd 0) rs rt) 946) 947 948(dnmi m-cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 949 "cm128sia3 $rs,$rt,${cm-3z}" 950 (emit cm128sia3 (f-rd 0) rs rt cm-3z) 951) 952 953(dnmi m-cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 954 "cm128sia4 $rs,$rt,${cm-4z}" 955 (emit cm128sia4 (f-rd 0) rs rt cm-4z) 956) 957 958(dnmi m-cmphdr "Get a Complete Header" (MACH10 NO-DIS) 959 "cmphdr" 960 (emit cmphdr (f-rd 0)) 961) 962 963(dnmi m-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RD USES-RT NO-DIS) 964 "dbd $rd,$rt" 965 (emit dbd rd (f-rs 0) rt) 966) 967 968(dnmi m2-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RT NO-DIS) 969 "dbd $rt" 970 (emit dbd (f-rd 0) (f-rs 0) rt) 971) 972 973(dnmi m-dpwt "DSTN_PORT Write" (MACH10 USES-RS NO-DIS) 974 "dpwt $rs" 975 (emit dpwt (f-rd 0) rs) 976) 977 978(dnmi m-free "" (MACH10 USES-RS USES-RD NO-DIS) 979 "free $rs" 980 (emit free (f-rd 0) rs) 981) 982 983;(dnmi m-jal "jump and link, implied r31" (MACH10 USES-RT NO-DIS) 984; "jal $jmptarg" 985; (emit jal (f-rt 31) jmptarg) 986;) 987 988(dnmi m-lock "lock memory" (MACH10 USES-RT NO-DIS) 989 "lock $rt" 990 (emit lock (f-rd 0) rt) 991) 992 993(dnmi m-pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 994 "pkrla $rs,$rt" 995 (emit pkrla (f-rd 0) rs rt) 996) 997 998(dnmi m-pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 999 "pkrlac $rs,$rt" 1000 (emit pkrlac (f-rd 0) rs rt) 1001) 1002 1003(dnmi m-pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1004 "pkrlah $rs,$rt" 1005 (emit pkrlah (f-rd 0) rs rt) 1006) 1007 1008(dnmi m-pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1009 "pkrlau $rs,$rt" 1010 (emit pkrlau (f-rd 0) rs rt) 1011) 1012 1013(dnmi m-pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1014 "pkrli $rs,$rt,$bytecount" 1015 (emit pkrli (f-rd 0) rs rt bytecount) 1016) 1017 1018(dnmi m-pkrlic "Packet Release Immediate Continue" (MACH10 USES-RS USES-RT NO-DIS) 1019 "pkrlic $rs,$rt,$bytecount" 1020 (emit pkrlic (f-rd 0) rs rt bytecount) 1021) 1022 1023(dnmi m-pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1024 "pkrlih $rs,$rt,$bytecount" 1025 (emit pkrlih (f-rd 0) rs rt bytecount) 1026) 1027 1028(dnmi m-pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1029 "pkrliu $rs,$rt,$bytecount" 1030 (emit pkrliu (f-rd 0) rs rt bytecount) 1031) 1032 1033(dnmi m-rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1034 "rba $rs,$rt" 1035 (emit rba (f-rd 0) rs rt) 1036) 1037 1038(dnmi m-rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1039 "rbal $rs,$rt" 1040 (emit rbal (f-rd 0) rs rt) 1041) 1042 1043(dnmi m-rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1044 "rbar $rs,$rt" 1045 (emit rbar (f-rd 0) rs rt) 1046) 1047 1048(dnmi m-rbi "Read Bytes Immediate" (MACH10 USES-RS USES-RT NO-DIS) 1049 "rbi $rs,$rt,$bytecount" 1050 (emit rbi (f-rd 0) rs rt bytecount) 1051) 1052 1053(dnmi m-rbil "Read Bytes Immediate and Lock" (MACH10 USES-RS USES-RT NO-DIS) 1054 "rbil $rs,$rt,$bytecount" 1055 (emit rbil (f-rd 0) rs rt bytecount) 1056) 1057 1058(dnmi m-rbir "Read Bytes Immediate and Release" (MACH10 USES-RS USES-RT NO-DIS) 1059 "rbir $rs,$rt,$bytecount" 1060 (emit rbir (f-rd 0) rs rt bytecount) 1061) 1062 1063(dnmi m-swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1064 "swwr $rs,$rt" 1065 (emit swwr (f-rd 0) rs rt) 1066) 1067 1068(dnmi m-swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1069 "swwru $rs,$rt" 1070 (emit swwru (f-rd 0) rs rt) 1071) 1072 1073(dnmi m-tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD NO-DIS) 1074 "tstod $rs" 1075 (emit tstod (f-rd 0) rs) 1076) 1077 1078(dnmi m-unlk "" (MACH10 USES-RT USES-RD NO-DIS) 1079 "unlk $rt" 1080 (emit unlk (f-rd 0) rt) 1081) 1082 1083(dnmi m-wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1084 "wba $rs,$rt" 1085 (emit wba (f-rd 0) rs rt) 1086) 1087 1088(dnmi m-wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1089 "wbac $rs,$rt" 1090 (emit wbac (f-rd 0) rs rt) 1091) 1092 1093(dnmi m-wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS) 1094 "wbau $rs,$rt" 1095 (emit wbau (f-rd 0) rs rt) 1096) 1097 1098(dnmi m-wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1099 "wbi $rs,$rt,$bytecount" 1100 (emit wbi (f-rd 0) rs rt bytecount) 1101) 1102 1103(dnmi m-wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1104 "wbic $rs,$rt,$bytecount" 1105 (emit wbic (f-rd 0) rs rt bytecount) 1106) 1107 1108(dnmi m-wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS) 1109 "wbiu $rs,$rt,$bytecount" 1110 (emit wbiu (f-rd 0) rs rt bytecount) 1111) 1112 1113