; IQ10-only CPU description. -*- Scheme -*-
;
; Copyright 2001, 2002 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 2 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)
)

