123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113 |
- ; 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)
- )
|