; IQ10-only CPU description. -*- Scheme -*-
;
; Copyright 2001, 2002, 2007, 2009 Free Software Foundation, Inc.
;
; Contributed by Red Hat Inc; developed under contract from Vitesse.
;
; This file is part of the GNU Binutils.
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 3 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
; MA 02110-1301, USA.


; Instructions.

(dni andoui-q10 "iq10 and upper ones immediate" (MACH10 USES-RS USES-RT)
     "andoui $rt,$rs,$hi16"
     (+ OP10_ANDOUI rs rt hi16)
     (set rt (and rs (or (sll hi16 16) #xFFFF)))
     ())

(dni andoui2-q10 "iq10 and upper ones immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT)
     "andoui ${rt-rs},$hi16"
     (+ OP10_ANDOUI rt-rs hi16)
     (set rt-rs (and rt-rs (or (sll hi16 16) #xFFFF)))
     ())

(dni orui-q10 "or upper immediate" (MACH10 USES-RS USES-RT)
     "orui $rt,$rs,$hi16"
     (+ OP10_ORUI rs rt hi16)
     (set rt (or rs (sll hi16 16)))
     ())

(dni orui2-q10 "or upper immediate" (ALIAS NO-DIS MACH10 USES-RS USES-RT)
     "orui ${rt-rs},$hi16"
     (+ OP10_ORUI rt-rs hi16)
     (set rt-rs (or rt-rs (sll hi16 16)))
     ())

(dni mrgbq10 "merge bytes" (MACH10 USES-RD USES-RS USES-RT)
     "mrgb $rd,$rs,$rt,$maskq10"
     (+ OP_SPECIAL rs rt rd maskq10 FUNC_MRGB)
     (sequence ((SI temp))
	       (if (bitclear? mask 0)
		   (set temp (and rs #xFF))
		   (set temp (and rt #xFF)))
	       (if (bitclear? mask 1)
		   (set temp (or temp (and rs #xFF00)))
		   (set temp (or temp (and rt #xFF00))))
	       (if (bitclear? mask 2)
		   (set temp (or temp (and rs #xFF0000)))
		   (set temp (or temp (and rt #xFF0000))))
	       (if (bitclear? mask 3)
		   (set temp (or temp (and rs #xFF000000)))
		   (set temp (or temp (and rt #xFF000000))))
	       (set rd temp))
     ())

(dni mrgbq102 "merge bytes" (ALIAS NO-DIS MACH10 USES-RD USES-RS USES-RT)
     "mrgb ${rd-rs},$rt,$maskq10"
     (+ OP_SPECIAL rt rd-rs maskq10 FUNC_MRGB)
     (sequence ((SI temp))
	       (if (bitclear? mask 0)
		   (set temp (and rd-rs #xFF))
		   (set temp (and rt #xFF)))
	       (if (bitclear? mask 1)
		   (set temp (or temp (and rd-rs #xFF00)))
		   (set temp (or temp (and rt #xFF00))))
	       (if (bitclear? mask 2)
		   (set temp (or temp (and rd-rs #xFF0000)))
		   (set temp (or temp (and rt #xFF0000))))
	       (if (bitclear? mask 3)
		   (set temp (or temp (and rd-rs #xFF000000)))
		   (set temp (or temp (and rt #xFF000000))))
	       (set rd-rs temp))
     ())

; In the future, we'll want the j & jal to use the 21 bit target, with 
; the upper five bits shifted up.  For now, give 'em the 16 bit target.

(dni jq10 "jump" (MACH10)
     "j $jmptarg"
     (+ OP_J (f-rs 0) (f-rt 0) jmptarg)
;     "j $jmptargq10"
;     (+ OP_J upper-5-jmptargq10 (f-rt 0) lower-16-jmptargq10)
     (delay 1 (set pc jmptarg))
     ())

(dni jalq10 "jump and link" (MACH10 USES-RT)
     "jal $rt,$jmptarg"
     (+ OP_JAL (f-rs 0) rt jmptarg)
;     "jal $rt,$jmptargq10"
;     (+ OP_JAL upper-5-jmptargq10 rt lower-16-jmptargq10)
     (delay 1
	    (sequence ()
		      (set rt (add pc 8))
		      (set pc jmptarg)))
     ())

(dni jalq10-2 "jump and link, implied r31" (MACH10 USES-RT)
     "jal $jmptarg"
     (+ OP_JAL (f-rs 0) (f-rt 31) jmptarg)
     (delay 1
	    (sequence ()
		      (set rt (add pc 8))
		      (set pc jmptarg)))
     ())

; Branch instructions.

(dni bbil "branch bit immediate likely" (MACH10 USES-RS)
     "bbil $rs($bitnum),$offset"
     (+ OP10_BBIL rs bitnum offset)
     (if (bitset? rs bitnum)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni bbinl "branch bit immediate negated likely" (MACH10 USES-RS)
     "bbinl $rs($bitnum),$offset"
     (+ OP10_BBINL rs bitnum offset)
     (if (bitclear? rs bitnum)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni bbvl "branch bit variable likely" (MACH10 USES-RS USES-RT)
     "bbvl $rs,$rt,$offset"
     (+ OP10_BBVL rs rt offset)
     (if (bitset? rs (and rt #x1F))
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni bbvnl "branch bit variable negated likely" (MACH10 USES-RS USES-RT)
     "bbvnl $rs,$rt,$offset"
     (+ OP10_BBVNL rs rt offset)
     (if (bitclear? rs (and rt #x1F))
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni bgtzal "branch if greater than zero and link" (MACH10 USES-RS USES-R31)
     "bgtzal $rs,$offset"
     (+ OP_REGIMM rs FUNC_BGTZAL offset)
     (if (gt rs 0)
	 (sequence ()
		   (set (reg h-gr 31) (add pc 8))
		   (delay 1 (set pc offset))))
     ())

(dni bgtzall
     "branch if greater than zero and link likely" (MACH10 USES-RS USES-R31)
     "bgtzall $rs,$offset"
     (+ OP_REGIMM rs FUNC_BGTZALL offset)
     (if (gt rs 0)
	 (sequence ()
		   (set (reg h-gr 31) (add pc 8))
		   (delay 1 (set pc offset)))
	 (skip 1))
     ())

(dni blezal "branch if less than or equal to zero and link" (MACH10 USES-RS USES-R31)
     "blezal $rs,$offset"
     (+ OP_REGIMM rs FUNC_BLEZAL offset)
     (if (le rs 0)
	 (sequence ()
		   (set (reg h-gr 31) (add pc 8))
		   (delay 1 (set pc offset))))
     ())

(dni blezall
     "branch if less than or equal to zero and link likely" (MACH10 USES-RS USES-R31)
     "blezall $rs,$offset"
     (+ OP_REGIMM rs FUNC_BLEZALL offset)
     (if (le rs 0)
	 (sequence ()
		   (set (reg h-gr 31) (add pc 8))
		   (delay 1 (set pc offset)))
	 (skip 1))
     ())

(dni bgtz-q10 "branch if greater than zero" (MACH10 USES-RS)
     "bgtz $rs,$offset"
     (+ OP_REGIMM rs FUNC_BGTZ offset)
     (if (gt rs 0)
	 (delay 1 (set pc offset)))
     ())

(dni bgtzl-q10 "branch if greater than zero likely" (MACH10 USES-RS)
     "bgtzl $rs,$offset"
     (+ OP_REGIMM rs FUNC_BGTZL offset)
     (if (gt rs 0)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())


(dni blez-q10 "branch if less than or equal to zero" (MACH10 USES-RS)
     "blez $rs,$offset"
     (+ OP_REGIMM rs FUNC_BLEZ offset)
     (if (le rs 0)
	 (delay 1 (set pc offset)))
     ())

(dni blezl-q10 "branch if less than or equal to zero likely" (MACH10 USES-RS)
     "blezl $rs,$offset"
     (+ OP_REGIMM rs FUNC_BLEZL offset)
     (if (le rs 0)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni bmb-q10 "branch if matching byte-lane" (MACH10 USES-RS USES-RT)
     "bmb $rs,$rt,$offset"
     (+ OP10_BMB rs rt offset)
     (sequence ((BI branch?))
	       (set branch? 0)
	       (if (eq (and rs #xFF) (and rt #xFF))
		   (set branch? 1))
	       (if (eq (and rs #xFF00) (and rt #xFF00))
		   (set branch? 1))
	       (if (eq (and rs #xFF0000) (and rt #xFF0000))
		   (set branch? 1))
	       (if (eq (and rs #xFF000000) (and rt #xFF000000))
		   (set branch? 1))
	       (if branch?
		   (delay 1 (set pc offset))))
     ())

(dni bmbl "branch if matching byte-lane likely" (MACH10 USES-RS USES-RT)
     "bmbl $rs,$rt,$offset"
     (+ OP10_BMBL rs rt offset)
     (sequence ((BI branch?))
	       (set branch? 0)
	       (if (eq (and rs #xFF) (and rt #xFF))
		   (set branch? 1))
	       (if (eq (and rs #xFF00) (and rt #xFF00))
		   (set branch? 1))
	       (if (eq (and rs #xFF0000) (and rt #xFF0000))
		   (set branch? 1))
	       (if (eq (and rs #xFF000000) (and rt #xFF000000))
		   (set branch? 1))
	       (if branch?
		   (delay 1 (set pc offset))
		   (skip 1)))
     ())

(dni bri "branch if register invalid" (MACH10 USES-RS)
     "bri $rs,$offset"
     (+ OP_REGIMM rs FUNC_BRI offset)
     (if (gt rs 0)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

(dni brv "branch if register invalid" (MACH10 USES-RS)
     "brv $rs,$offset"
     (+ OP_REGIMM rs FUNC_BRV offset)
     (if (gt rs 0)
	 (delay 1 (set pc offset))
	 (skip 1))
     ())

; debug instructions

(dni bctx "branch if the current context == instruction[21]" (MACH10 USES-RS)
     "bctx $rs,$offset"
     (+ OP_REGIMM rs FUNC_BCTX offset)
     (delay 1 (set pc offset))
     ())

(dni yield "unconditional yield to the other context" (MACH10)
     "yield"
     (+ OP_SPECIAL (f-rs 0) (f-rt 0) (f-rd 0) (f-shamt 0) FUNC10_YIELD)
     (unimp yield)
     ())

; Special instructions.

(dni crc32 "CRC, 32 bit input" (MACH10 USES-RD USES-RS USES-RT)
     "crc32 $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32)
     (unimp crc32)
     ())

(dni crc32b "CRC, 8 bit input" (MACH10 USES-RD USES-RS USES-RT)
     "crc32b $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_CRC32B)
     (unimp crc32b)
     ())

(dni cnt1s "Count ones" (MACH10 USES-RD USES-RS)
     "cnt1s $rd,$rs"
     (+ OP_SPECIAL rs rt rd (f-shamt 0) FUNC10_CNT1S)
     (unimp crcp)
     ())


; Special Instructions

(dni avail "Mark Header Buffer Available" (MACH10 USES-RD)
     "avail $rd"
     (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_AVAIL)
     (unimp avail)
     ())

(dni free "Mark Header Buffer Free" (MACH10 USES-RS USES-RD)
     "free $rd,$rs"
     (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_FREE)
     (unimp free)
     ())

(dni tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD)
     "tstod $rd,$rs"
     (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_TSTOD)
     (unimp tstod)
     ())

(dni cmphdr "Get a Complete Header" (MACH10 USES-RD)
     "cmphdr $rd"
     (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_CMPHDR)
     (unimp cmphdr)
     ())

(dni mcid "Allocate a Multicast ID" (MACH10 USES-RD USES-RT)
     "mcid $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_MCID)
     (unimp mcid)
     ())

(dni dba "Allocate a Data Buffer Pointer" (MACH10 USES-RD)
     "dba $rd"
     (+ OP_COP3 (f-rs 0) (f-rt 0) rd (f-shamt 0) FUNC10_DBA)
     (unimp dba)
     ())

(dni dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RS USES-RT USES-RD)
     "dbd $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_DBD)
     (unimp dbd)
     ())

(dni dpwt "DSTN_PORT Write" (MACH10 USES-RS USES-RD)
     "dpwt $rd,$rs"
     (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_DPWT)
     (unimp dpwt)
     ())

; Architectural and coprocessor instructions.

(dni chkhdrq10 "" (MACH10 USES-RS USES-RD)
     "chkhdr $rd,$rs"
     (+ OP_COP3 rs (f-rt 0) rd (f-shamt 0) FUNC10_CHKHDR)
     (unimp chkhdr)
     ())

; Coprocessor DMA Instructions (IQ10)

(dni rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD)
     "rba $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBA)
     (unimp rba)
     ())

(dni rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD)
     "rbal $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAL)
     (unimp rbal)
     ())

(dni rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD)
     "rbar $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_RBAR)
     (unimp rbar)
     ())

(dni wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD)
     "wba $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBA)
     (unimp wba)
     ())

(dni wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD)
     "wbau $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAU)
     (unimp wbau)
     ())

(dni wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD)
     "wbac $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_WBAC)
     (unimp wbac)
     ())

(dni rbi "Read Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT)
     "rbi $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_RBI bytecount)
     (unimp rbi)
     ())

(dni rbil "Read Bytes Immediate and Lock" (MACH10 USES-RD USES-RS USES-RT)
     "rbil $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_RBIL bytecount)
     (unimp rbil)
     ())

(dni rbir "Read Bytes Immediate and Release" (MACH10 USES-RD USES-RS USES-RT)
     "rbir $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_RBIR bytecount)
     (unimp rbir)
     ())

(dni wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT)
     "wbi $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_WBI bytecount)
     (unimp wbi)
     ())

(dni wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT)
     "wbic $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_WBIC bytecount)
     (unimp wbic)
     ())

(dni wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT)
     "wbiu $rd,$rs,$rt,$bytecount"
     (+ OP_COP3 rs rt rd FUNC10_WBIU bytecount)
     (unimp wbiu)
     ())

(dni pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT)
     "pkrli $rd,$rs,$rt,$bytecount"
     (+ OP_COP2 rs rt rd FUNC10_PKRLI bytecount)
     (unimp pkrli)
     ())

(dni pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT)
     "pkrlih $rd,$rs,$rt,$bytecount"
     (+ OP_COP2 rs rt rd FUNC10_PKRLIH bytecount)
     (unimp pkrlih)
     ())

(dni pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT)
     "pkrliu $rd,$rs,$rt,$bytecount"
     (+ OP_COP2 rs rt rd FUNC10_PKRLIU bytecount)
     (unimp pkrliu)
     ())

(dni pkrlic "Packet Release Immediate Continue" (MACH10 USES-RD USES-RS USES-RT)
     "pkrlic $rd,$rs,$rt,$bytecount"
     (+ OP_COP2 rs rt rd FUNC10_PKRLIC bytecount)
     (unimp pkrlic)
     ())

(dni pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD)
     "pkrla $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLA)
     (unimp pkrla)
     ())

(dni pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD)
     "pkrlau $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAU)
     (unimp pkrlau)
     ())

(dni pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD)
     "pkrlah $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAH)
     (unimp pkrlah)
     ())

(dni pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD)
     "pkrlac $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_PKRLAC)
     (unimp pkrlac)
     ())

; Main Memory Access Instructions

(dni lock "lock memory" (MACH10 USES-RD USES-RT)
     "lock $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_LOCK)
     (unimp lock)
     ())

(dni unlk "unlock memory" (MACH10 USES-RT USES-RD)
     "unlk $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_UNLK)
     (unimp unlk)
     ())
     
(dni swrd "Single Word Read" (MACH10 USES-RT USES-RD)
     "swrd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRD)
     (unimp swrd)
     ())

(dni swrdl "Single Word Read and Lock" (MACH10 USES-RT USES-RD)
     "swrdl $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_SWRDL)
     (unimp swrdl)
     ())

(dni swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD)
     "swwr $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWR)
     (unimp swwr)
     ())

(dni swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD)
     "swwru $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 0) FUNC10_SWWRU)
     (unimp swwru)
     ())

(dni dwrd "Double Word Read" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "dwrd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRD)
     (unimp dwrd)
     ())

(dni dwrdl "Double Word Read and Lock" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "dwrdl $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_DWRDL)
     (unimp dwrdl)
     ())

; CAM access instructions (IQ10)

(dni cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD)
     "cam36 $rd,$rt,${cam-z},${cam-y}"
     (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM36 cam-z cam-y)
     (unimp cam36)
     ())

(dni cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD)
     "cam72 $rd,$rt,${cam-y},${cam-z}"
     (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM72 cam-z cam-y)
     (unimp cam72)
     ())

(dni cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD)
     "cam144 $rd,$rt,${cam-y},${cam-z}"
     (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM144 cam-z cam-y)
     (unimp cam144)
     ())

(dni cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD)
     "cam288 $rd,$rt,${cam-y},${cam-z}"
     (+ OP_COP3 (f-rs 0) rt rd FUNC10_CAM288 cam-z cam-y)
     (unimp cam288)
     ())

; Counter manager instructions (IQ10)

(dni cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD)
     "cm32and $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32AND)
     (unimp cm32and)
     ())

(dni cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD)
     "cm32andn $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32ANDN)
     (unimp cm32andn)
     ())

(dni cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD)
     "cm32or $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32OR)
     (unimp cm32or)
     ())

(dni cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD)
     "cm32ra $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RA)
     (unimp cm32ra)
     ())

(dni cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD)
     "cm32rd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RD)
     (unimp cm32rd)
     ())

(dni cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD)
     "cm32ri $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32RI)
     (unimp cm32ri)
     ())

(dni cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD)
     "cm32rs $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-shamt 2) FUNC10_CM32RS)
     (unimp cm32rs)
     ())

(dni cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD)
     "cm32sa $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SA)
     (unimp cm32sa)
     ())

(dni cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD)
     "cm32sd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SD)
     (unimp cm32sd)
     ())

(dni cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD)
     "cm32si $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SI)
     (unimp cm32si)
     ())

(dni cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD)
     "cm32ss $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32SS)
     (unimp cm32ss)
     ())

(dni cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD)
     "cm32xor $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM32XOR)
     (unimp cm32xor)
     ())

(dni cm64clr "Counter Manager Clear" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "cm64clr $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64CLR)
     (unimp cm64clr)
     ())

(dni cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64ra $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RA)
     (unimp cm64ra)
     ())

(dni cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "cm64rd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RD)
     (unimp cm64rd)
     ())

(dni cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "cm64ri $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RI)
     (unimp cm64ri)
     ())

(dni cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64ria2 $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RIA2)
     (unimp cm64ria2)
     ())

(dni cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64rs $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64RS)
     (unimp cm64rs)
     ())

(dni cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64sa $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SA)
     (unimp cm64sa)
     ())

(dni cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "cm64sd $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SD)
     (unimp cm64sd)
     ())

(dni cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 EVEN-REG-NUM USES-RT USES-RD)
     "cm64si $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SI)
     (unimp cm64si)
     ())

(dni cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64sia2 $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SIA2)
     (unimp cm64sia2)
     ())

(dni cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm64ss $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM64SS)
     (unimp cm64ss)
     ())

(dni cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm128ria2 $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA2)
     (unimp cm128ria2)
     ())

(dni cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm128ria3 $rd,$rs,$rt,${cm-3z}"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA3 cm-3z)
     (unimp cm128ria3)
     ())

(dni cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD)
     "cm128ria4 $rd,$rs,$rt,${cm-4z}"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128RIA4 cm-4z)
     (unimp cm128ria4)
     ())

(dni cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm128sia2 $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA2)
     (unimp cm128sia2)
     ())

(dni cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 EVEN-REG-NUM USES-RS USES-RT USES-RD)
     "cm128sia3 $rd,$rs,$rt,${cm-3z}"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA3 cm-3z)
     (unimp cm128sia3)
     ())

(dni cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD)
     "cm128sia4 $rd,$rs,$rt,${cm-4z}"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128SIA4 cm-4z)
     (unimp cm128sia4)
     ())

(dni cm128vsa "Counter Manager Continuous State Dual Leaky Token Bucket Policing" (MACH10 USES-RS USES-RT USES-RD)
     "cm128vsa $rd,$rs,$rt"
     (+ OP_COP3 rs rt rd (f-cp-op 0) (f-cp-grp 2) FUNC10_CM128VSA)
     (unimp cm128vsa)
     ())

; Coprocessor Data Movement Instructions

; Note that we don't set the USES-RD or USES-RT attributes for many of the following 
; instructions, as it's the COP register that's being specified.

; ??? Is YIELD-INSN the right attribute for IQ10?  The IQ2000 used the attribute to warn about 
; yielding instructions in a delay slot, but that's not relevant in IQ10.  What *is* relevant 
; (and unique to IQ10) is instructions that yield if the destination register is accessed 
; before the value is there, causing a yield.

(dni cfc "copy from coprocessor control register" (MACH10 LOAD-DELAY USES-RD YIELD-INSN)
     "cfc $rd,$rt"
     (+ OP_COP3 (f-rs 0) rt rd (f-shamt 0) FUNC10_CFC)
     (unimp cfc)
     ())

(dni ctc "copy to coprocessor control register" (MACH10 USES-RS)
     "ctc $rs,$rt"
     (+ OP_COP3 rs rt (f-rd 0) (f-shamt 0) FUNC10_CTC)
     (unimp ctc)
     ())

; Macros

(dnmi m-avail "Mark Header Buffer Available" (MACH10 NO-DIS)
     "avail"
     (emit avail (f-rd 0))
)

(dnmi m-cam36 "CAM Access in 36-bit Mode" (MACH10 USES-RT USES-RD NO-DIS)
     "cam36 $rd,$rt,${cam-z}"
     (emit cam36 rd rt cam-z (f-cam-y 0))
)

(dnmi m-cam72 "CAM Access in 72-bit Mode" (MACH10 USES-RT USES-RD NO-DIS)
     "cam72 $rd,$rt,${cam-z}"
     (emit cam72 rd rt cam-z (f-cam-y 0))
)

(dnmi m-cam144 "CAM Access in 144-bit Mode" (MACH10 USES-RT USES-RD NO-DIS)
     "cam144 $rd,$rt,${cam-z}"
     (emit cam144 rd rt cam-z (f-cam-y 0))
)

(dnmi m-cam288 "CAM Access in 288-bit Mode" (MACH10 USES-RT USES-RD NO-DIS)
     "cam288 $rd,$rt,${cam-z}"
     (emit cam288 rd rt cam-z (f-cam-y 0))
)

(dnmi m-cm32read "Counter Manager 32-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS)
     "cm32read $rd,$rt"
     (emit cm32ra rd (f-rs 0) rt)
)

(dnmi m-cm64read "Counter Manager 64-bit Rolling Add R0" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64read $rd,$rt"
     (emit cm64ra rd (f-rs 0) rt)
)

(dnmi m-cm32mlog "Counter Manager 32-bit or R0" (MACH10 USES-RS USES-RT NO-DIS)
     "cm32mlog $rs,$rt"
     (emit cm32or (f-rd 0) rs rt)
)

(dnmi m-cm32and "Counter Manager And" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32and $rs,$rt"
     (emit cm32and (f-rd 0) rs rt)
)

(dnmi m-cm32andn "Counter Manager And With Inverse" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32andn $rs,$rt"
     (emit cm32andn (f-rd 0) rs rt)
)

(dnmi m-cm32or "Counter Manager Or" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32or $rs,$rt"
     (emit cm32or (f-rd 0) rs rt)
)

(dnmi m-cm32ra "Counter Manager 32-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32ra $rs,$rt"
     (emit cm32ra (f-rd 0) rs rt)
)

(dnmi m-cm32rd "Counter Manager 32-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS)
     "cm32rd $rt"
     (emit cm32rd (f-rd 0) rt)
)

(dnmi m-cm32ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS)
     "cm32ri $rt"
     (emit cm32ri (f-rd 0) rt)
)

(dnmi m-cm32rs "Counter Manager 32-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32rs $rs,$rt"
     (emit cm32rs (f-rd 0) rs rt)
)

(dnmi m-cm32sa "Counter Manager 32-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32sa $rs,$rt"
     (emit cm32sa (f-rd 0) rs rt)
)

(dnmi m-cm32sd "Counter Manager 32-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS)
     "cm32sd $rt"
     (emit cm32sd (f-rd 0) rt)
)

(dnmi m-cm32si "Counter Manager 32-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS)
     "cm32si $rt"
     (emit cm32si (f-rd 0) rt)
)

(dnmi m-cm32ss "Counter Manager 32-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32ss $rs,$rt"
     (emit cm32ss (f-rd 0) rs rt)
)

(dnmi m-cm32xor "Counter Manager Xor" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm32xor $rs,$rt"
     (emit cm32xor (f-rd 0) rs rt)
)

(dnmi m-cm64clr "Counter Manager Clear" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64clr $rt"
     (emit cm64clr (f-rd 0) rt)
)

(dnmi m-cm64ra "Counter Manager 64-bit Rolling Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64ra $rs,$rt"
     (emit cm64ra (f-rd 0) rs rt)
)

(dnmi m-cm64rd "Counter Manager 64-bit Rolling Decrement" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64rd $rt"
     (emit cm64rd (f-rd 0) rt)
)

(dnmi m-cm64ri "Counter Manager 32-bit Rolling Increment" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64ri $rt"
     (emit cm64ri (f-rd 0) rt)
)

(dnmi m-cm64ria2 "Counter Manager 32/32 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64ria2 $rs,$rt"
     (emit cm64ria2 (f-rd 0) rs rt)
)

(dnmi m-cm64rs "Counter Manager 64-bit Rolling Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64rs $rs,$rt"
     (emit cm64rs (f-rd 0) rs rt)
)

(dnmi m-cm64sa "Counter Manager 64-bit Saturating Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64sa $rs,$rt"
     (emit cm64sa (f-rd 0) rs rt)
)

(dnmi m-cm64sd "Counter Manager 64-bit Saturating Decrement" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64sd $rt"
     (emit cm64sd (f-rd 0) rt)
)

(dnmi m-cm64si "Counter Manager 64-bit Saturating Increment" (MACH10 USES-RT USES-RD NO-DIS)
     "cm64si $rt"
     (emit cm64si (f-rd 0) rt)
)

(dnmi m-cm64sia2 "Counter Manager 32/32 Saturating Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64sia2 $rs,$rt"
     (emit cm64sia2 (f-rd 0) rs rt)
)

(dnmi m-cm64ss "Counter Manager 64-bit Saturating Subtract" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm64ss $rs,$rt"
     (emit cm64ss (f-rd 0) rs rt)
)

(dnmi m-cm128ria2 "Counter Manager 128-bit 64/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128ria2 $rs,$rt"
     (emit cm128ria2 (f-rd 0) rs rt)
)

(dnmi m-cm128ria3 "Counter Manager 128-bit 32/32/64 Rolling Increment/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128ria3 $rs,$rt,${cm-3z}"
     (emit cm128ria3 (f-rd 0) rs rt cm-3z)
)

(dnmi m-cm128ria4 "Counter Manager 128-bit 32/32/32/32 Rolling Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128ria4 $rs,$rt,${cm-4z}"
     (emit cm128ria4 (f-rd 0) rs rt cm-4z)
)

(dnmi m-cm128sia2 "Counter Manager 128-bit 64/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128sia2 $rs,$rt"
     (emit cm128sia2 (f-rd 0) rs rt)
)

(dnmi m-cm128sia3 "Counter Manager 128-bit 32/32/64 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128sia3 $rs,$rt,${cm-3z}"
     (emit cm128sia3 (f-rd 0) rs rt cm-3z)
)

(dnmi m-cm128sia4 "Counter Manager 128-bit 32/32/32/32 Saturating Inc/Add" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "cm128sia4 $rs,$rt,${cm-4z}"
     (emit cm128sia4 (f-rd 0) rs rt cm-4z)
)

(dnmi m-cmphdr "Get a Complete Header" (MACH10 NO-DIS)
     "cmphdr"
     (emit cmphdr (f-rd 0))
)

(dnmi m-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RD USES-RT NO-DIS)
     "dbd $rd,$rt"
     (emit dbd rd (f-rs 0) rt)
)

(dnmi m2-dbd "Deallocate a Data Buffer Pointer" (MACH10 USES-RT NO-DIS)
     "dbd $rt"
     (emit dbd (f-rd 0) (f-rs 0) rt)
)

(dnmi m-dpwt "DSTN_PORT Write" (MACH10 USES-RS NO-DIS)
     "dpwt $rs"
     (emit dpwt (f-rd 0) rs)
)

(dnmi m-free "" (MACH10 USES-RS USES-RD NO-DIS)
     "free $rs"
     (emit free (f-rd 0) rs)
)

;(dnmi m-jal "jump and link, implied r31" (MACH10 USES-RT NO-DIS)
;     "jal $jmptarg"
;     (emit jal (f-rt 31) jmptarg)
;)

(dnmi m-lock "lock memory" (MACH10 USES-RT NO-DIS)
     "lock $rt"
     (emit lock (f-rd 0) rt)
)

(dnmi m-pkrla "Packet Release Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "pkrla $rs,$rt"
     (emit pkrla (f-rd 0) rs rt)
)

(dnmi m-pkrlac "Packet Release Absolute Continue" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "pkrlac $rs,$rt"
     (emit pkrlac (f-rd 0) rs rt)
)

(dnmi m-pkrlah "Packet Release Absolute and Hold" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "pkrlah $rs,$rt"
     (emit pkrlah (f-rd 0) rs rt)
)

(dnmi m-pkrlau "Packet Release Absolute Unconditional" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "pkrlau $rs,$rt"
     (emit pkrlau (f-rd 0) rs rt)
)

(dnmi m-pkrli "Packet Release Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "pkrli $rs,$rt,$bytecount"
     (emit pkrli (f-rd 0) rs rt bytecount)
)

(dnmi m-pkrlic "Packet Release Immediate Continue" (MACH10 USES-RS USES-RT NO-DIS)
     "pkrlic $rs,$rt,$bytecount"
     (emit pkrlic (f-rd 0) rs rt bytecount)
)

(dnmi m-pkrlih "Packet Release Immediate and Hold" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "pkrlih $rs,$rt,$bytecount"
     (emit pkrlih (f-rd 0) rs rt bytecount)
)

(dnmi m-pkrliu "Packet Release Immediate Unconditional" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "pkrliu $rs,$rt,$bytecount"
     (emit pkrliu (f-rd 0) rs rt bytecount)
)

(dnmi m-rba "Read Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "rba $rs,$rt"
     (emit rba (f-rd 0) rs rt)
)

(dnmi m-rbal "Read Bytes Absolute and Lock" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "rbal $rs,$rt"
     (emit rbal (f-rd 0) rs rt)
)

(dnmi m-rbar "Read Bytes Absolute and Release" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "rbar $rs,$rt"
     (emit rbar (f-rd 0) rs rt)
)

(dnmi m-rbi "Read Bytes Immediate" (MACH10 USES-RS USES-RT NO-DIS)
     "rbi $rs,$rt,$bytecount"
     (emit rbi (f-rd 0) rs rt bytecount)
)

(dnmi m-rbil "Read Bytes Immediate and Lock" (MACH10 USES-RS USES-RT NO-DIS)
     "rbil $rs,$rt,$bytecount"
     (emit rbil (f-rd 0) rs rt bytecount)
)

(dnmi m-rbir "Read Bytes Immediate and Release" (MACH10 USES-RS USES-RT NO-DIS)
     "rbir $rs,$rt,$bytecount"
     (emit rbir (f-rd 0) rs rt bytecount)
)

(dnmi m-swwr "Single Word Write" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "swwr $rs,$rt"
     (emit swwr (f-rd 0) rs rt)
)

(dnmi m-swwru "Single Word Write and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "swwru $rs,$rt"
     (emit swwru (f-rd 0) rs rt)
)

(dnmi m-tstod "Test Header Buffer Order Dependency" (MACH10 USES-RS USES-RD NO-DIS)
     "tstod $rs"
     (emit tstod (f-rd 0) rs)
)

(dnmi m-unlk "" (MACH10 USES-RT USES-RD NO-DIS)
     "unlk $rt"
     (emit unlk (f-rd 0) rt)
)
     
(dnmi m-wba "Write Bytes Absolute" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "wba $rs,$rt"
     (emit wba (f-rd 0) rs rt)
)

(dnmi m-wbac "Write Bytes Absolute Cacheable" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "wbac $rs,$rt"
     (emit wbac (f-rd 0) rs rt)
)

(dnmi m-wbau "Write Bytes Absolute and Unlock" (MACH10 USES-RS USES-RT USES-RD NO-DIS)
     "wbau $rs,$rt"
     (emit wbau (f-rd 0) rs rt)
)

(dnmi m-wbi "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "wbi $rs,$rt,$bytecount"
     (emit wbi (f-rd 0) rs rt bytecount)
)

(dnmi m-wbic "Write Bytes Immediate Cacheable" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "wbic $rs,$rt,$bytecount"
     (emit wbic (f-rd 0) rs rt bytecount)
)

(dnmi m-wbiu "Write Bytes Immediate" (MACH10 USES-RD USES-RS USES-RT NO-DIS)
     "wbiu $rs,$rt,$bytecount"
     (emit wbiu (f-rd 0) rs rt bytecount)
)

