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