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