12a6b7db3Sskrll; Morpho Technologies MT Arch description. -*- Scheme -*- 2*be12b8bcSchristos; Copyright 2001, 2007, 2009 Free Software Foundation, Inc. 32a6b7db3Sskrll; 42a6b7db3Sskrll; Contributed by Red Hat Inc; developed under contract from 52a6b7db3Sskrll; Morpho Technologies. 62a6b7db3Sskrll; 72a6b7db3Sskrll; This file is part of the GNU Binutils. 82a6b7db3Sskrll; 92a6b7db3Sskrll; This program is free software; you can redistribute it and/or modify 102a6b7db3Sskrll; it under the terms of the GNU General Public License as published by 112a6b7db3Sskrll; the Free Software Foundation; either version 3 of the License, or 122a6b7db3Sskrll; (at your option) any later version. 132a6b7db3Sskrll; 142a6b7db3Sskrll; This program is distributed in the hope that it will be useful, 152a6b7db3Sskrll; but WITHOUT ANY WARRANTY; without even the implied warranty of 162a6b7db3Sskrll; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 172a6b7db3Sskrll; GNU General Public License for more details. 182a6b7db3Sskrll; 192a6b7db3Sskrll; You should have received a copy of the GNU General Public License 202a6b7db3Sskrll; along with this program; if not, write to the Free Software 212a6b7db3Sskrll; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 222a6b7db3Sskrll; MA 02110-1301, USA. 232a6b7db3Sskrll 242a6b7db3Sskrll(include "simplify.inc") 252a6b7db3Sskrll 262a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 272a6b7db3Sskrll;; Define The Architecture, Attributes, ISA, CPU, Machine, And Model. ;; 282a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 292a6b7db3Sskrll 302a6b7db3Sskrll; define-arch must appear first 312a6b7db3Sskrll(define-arch 322a6b7db3Sskrll (name mt) ; name of cpu family 332a6b7db3Sskrll (comment "Morpho Technologies mRISC family") 342a6b7db3Sskrll (default-alignment aligned) 352a6b7db3Sskrll (insn-lsb0? #t) 362a6b7db3Sskrll (machs ms1 ms1-003 ms2) 372a6b7db3Sskrll (isas mt) 382a6b7db3Sskrll) 392a6b7db3Sskrll 402a6b7db3Sskrll; Instruction set parameters. 412a6b7db3Sskrll 422a6b7db3Sskrll(define-isa 432a6b7db3Sskrll (name mt) 442a6b7db3Sskrll (comment "Morpho Technologies MT ISA") 452a6b7db3Sskrll (default-insn-word-bitsize 32) 462a6b7db3Sskrll (default-insn-bitsize 32) 472a6b7db3Sskrll (base-insn-bitsize 32) 482a6b7db3Sskrll (parallel-insns 2) 492a6b7db3Sskrll) 502a6b7db3Sskrll 512a6b7db3Sskrll; Cpu family definitions. 522a6b7db3Sskrll 532a6b7db3Sskrll 542a6b7db3Sskrll(define-cpu 552a6b7db3Sskrll ; cpu names must be distinct from the architecture name and machine names. 562a6b7db3Sskrll (name ms1bf) 572a6b7db3Sskrll (comment "Morpho Technologies mRISC family") 582a6b7db3Sskrll (endian big) 592a6b7db3Sskrll (word-bitsize 32) 602a6b7db3Sskrll) 612a6b7db3Sskrll 622a6b7db3Sskrll(define-cpu 632a6b7db3Sskrll ; cpu names must be distinct from the architecture name and machine names. 642a6b7db3Sskrll (name ms1-003bf) 652a6b7db3Sskrll (comment "Morpho Technologies mRISC family") 662a6b7db3Sskrll (endian big) 672a6b7db3Sskrll (word-bitsize 32) 682a6b7db3Sskrll) 692a6b7db3Sskrll 702a6b7db3Sskrll(define-cpu 712a6b7db3Sskrll ; cpu names must be distinct from the architecture name and machine names. 722a6b7db3Sskrll (name ms2bf) 732a6b7db3Sskrll (comment "Morpho Technologies mRISC family") 742a6b7db3Sskrll (endian big) 752a6b7db3Sskrll (word-bitsize 32) 762a6b7db3Sskrll) 772a6b7db3Sskrll 782a6b7db3Sskrll(define-mach 792a6b7db3Sskrll (name ms1) 802a6b7db3Sskrll (comment "Morpho Technologies mrisc") 812a6b7db3Sskrll (cpu ms1bf) 822a6b7db3Sskrll (isas mt) 832a6b7db3Sskrll) 842a6b7db3Sskrll 852a6b7db3Sskrll(define-mach 862a6b7db3Sskrll (name ms1-003) 872a6b7db3Sskrll (comment "Morpho Technologies mrisc") 882a6b7db3Sskrll (cpu ms1-003bf) 892a6b7db3Sskrll (isas mt) 902a6b7db3Sskrll) 912a6b7db3Sskrll 922a6b7db3Sskrll(define-mach 932a6b7db3Sskrll (name ms2) 942a6b7db3Sskrll (comment "Morpho Technologies ms2") 952a6b7db3Sskrll (cpu ms2bf) 962a6b7db3Sskrll (isas mt) 972a6b7db3Sskrll) 982a6b7db3Sskrll 992a6b7db3Sskrll 1002a6b7db3Sskrll; Model descriptions. 1012a6b7db3Sskrll; Can probably take the u-exec out. We'll see. 1022a6b7db3Sskrll(define-model 1032a6b7db3Sskrll (name ms1) 1042a6b7db3Sskrll (comment "Morpho Technologies mrisc") 1052a6b7db3Sskrll (mach ms1) 1062a6b7db3Sskrll (unit u-exec "Execution Unit" () 1072a6b7db3Sskrll 1 1 ; issue done 1082a6b7db3Sskrll () ; state 1092a6b7db3Sskrll () ; inputs 1102a6b7db3Sskrll () ; outputs 1112a6b7db3Sskrll () ; profile action (default) 1122a6b7db3Sskrll ) 1132a6b7db3Sskrll) 1142a6b7db3Sskrll 1152a6b7db3Sskrll(define-model 1162a6b7db3Sskrll (name ms1-003) 1172a6b7db3Sskrll (comment "Morpho Technologies mrisc") 1182a6b7db3Sskrll (mach ms1-003) 1192a6b7db3Sskrll (unit u-exec "Execution Unit" () 1202a6b7db3Sskrll 1 1 ; issue done 1212a6b7db3Sskrll () ; state 1222a6b7db3Sskrll () ; inputs 1232a6b7db3Sskrll () ; outputs 1242a6b7db3Sskrll () ; profile action (default) 1252a6b7db3Sskrll ) 1262a6b7db3Sskrll) 1272a6b7db3Sskrll 1282a6b7db3Sskrll(define-model 1292a6b7db3Sskrll (name ms2) 1302a6b7db3Sskrll (comment "Morpho Technologies ms2") 1312a6b7db3Sskrll (mach ms2) 1322a6b7db3Sskrll (unit u-exec "Execution Unit" () 1332a6b7db3Sskrll 1 1 ; issue done 1342a6b7db3Sskrll () ; state 1352a6b7db3Sskrll () ; inputs 1362a6b7db3Sskrll () ; outputs 1372a6b7db3Sskrll () ; profile action (default) 1382a6b7db3Sskrll ) 1392a6b7db3Sskrll) 1402a6b7db3Sskrll 1412a6b7db3Sskrll; FIXME: It might simplify things to separate the execute process from the 1422a6b7db3Sskrll; one that updates the PC. 1432a6b7db3Sskrll 1442a6b7db3Sskrll 1452a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;; 1462a6b7db3Sskrll;; Instruction Fields ;; 1472a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;; 1482a6b7db3Sskrll 1492a6b7db3Sskrll; Attributes: 1502a6b7db3Sskrll; PCREL-ADDR: pc relative value (for reloc and disassembly purposes) 1512a6b7db3Sskrll; ABS-ADDR: absolute address (for reloc and disassembly purposes?) 1522a6b7db3Sskrll; RESERVED: bits are not used to decode insn, must be all 0 1532a6b7db3Sskrll; RELOC: there is a relocation associated with this field (experiment) 1542a6b7db3Sskrll; 1552a6b7db3Sskrll; f-msys: Identify a a morphosys insns. 1 if msys, 0 if not. 1562a6b7db3Sskrll; f-opc: 6 bit opcode for non-morphosys instructions. 1572a6b7db3Sskrll; f-msopc: 6 bit opcode for morphosys instructions. 1582a6b7db3Sskrll; f-imm: flag to indicate use of an immediate operand. 1 if yes, 0 if no. 1592a6b7db3Sskrll; f-sr1: source resgister 1. (also used for MSYS insns) 1602a6b7db3Sskrll; f-sr2: source register 2. (also used for MSYS insns) 1612a6b7db3Sskrll; f-dr: destination register when located in bits 19:16. 1622a6b7db3Sskrll; f-drrr: destination register when located in bits 15:12. (also for MSYS insns) 1632a6b7db3Sskrll; f-imm16: 16 bit immediate value when not an offset. 1642a6b7db3Sskrll; f-imm16a: 16 bit immediate value when it's a pc-rel offset. 1652a6b7db3Sskrll; f-uu4a: unused 4 bit field. 1662a6b7db3Sskrll; f-uu4b: second unsed 4 bit field. 1672a6b7db3Sskrll; f-uu1: unused 1 bit field 1682a6b7db3Sskrll; f-uu12: unused 12 bit field. 1692a6b7db3Sskrll; f-uu16: unused 16 bit field. 1702a6b7db3Sskrll; f-uu24: unused 24 bit field. 1712a6b7db3Sskrll 1722a6b7db3Sskrll(dnf f-msys "morphosys insn flag" () 31 1) 1732a6b7db3Sskrll(dnf f-opc "opcode field" () 30 6) 1742a6b7db3Sskrll(dnf f-imm "immedate flag" () 24 1) 1752a6b7db3Sskrll(dnf f-uu24 "unused 24 bits" () 23 24) 1762a6b7db3Sskrll(dnf f-sr1 "sr1 register field" (ABS-ADDR) 23 4) 1772a6b7db3Sskrll(dnf f-sr2 "sr2 register field" (ABS-ADDR) 19 4) 1782a6b7db3Sskrll(dnf f-dr "dr register field" (ABS-ADDR) 19 4) 1792a6b7db3Sskrll(dnf f-drrr "drrr register field" (ABS-ADDR) 15 4) 1802a6b7db3Sskrll(dnf f-imm16u "unsigned 16 bit immediate" () 15 16) 1812a6b7db3Sskrll(df f-imm16s "signed 16 bit immediate" () 15 16 INT ((value pc) (add HI value 0)) ((value pc) (add HI value 0))) 1822a6b7db3Sskrll(dnf f-imm16a "pc-rel offset" (PCREL-ADDR) 15 16) 1832a6b7db3Sskrll(dnf f-uu4a "unused 4 bit field" () 19 4) 1842a6b7db3Sskrll(dnf f-uu4b "unused 4 bit field" () 23 4) 1852a6b7db3Sskrll(dnf f-uu12 "unused 12 bit field" () 11 12) 1862a6b7db3Sskrll(dnf f-uu8 "unused 8 bit field" () 15 8) 1872a6b7db3Sskrll(dnf f-uu16 "unused 16 bit field" () 15 16) 1882a6b7db3Sskrll(dnf f-uu1 "unused 1 bit field" () 7 1) 1892a6b7db3Sskrll 1902a6b7db3Sskrll; The following ifields are used exclusively for the MorphoSys instructions. 1912a6b7db3Sskrll; In a few cases, a bit field is used for something in addition to what its 1922a6b7db3Sskrll; name suggests. For the most part, the names are meaningful though. 1932a6b7db3Sskrll 1942a6b7db3Sskrll(dnf f-msopc "opcode field" () 30 5) 1952a6b7db3Sskrll(dnf f-uu-26-25 "unused 26 bits" () 25 26) 1962a6b7db3Sskrll(dnf f-mask "mask" () 25 16) 1972a6b7db3Sskrll(dnf f-bankaddr "bank address" () 25 13) 1982a6b7db3Sskrll(dnf f-rda "rda" () 25 1) 1992a6b7db3Sskrll(dnf f-uu-2-25 "unused bits 25 & 24" () 25 2) 2002a6b7db3Sskrll(dnf f-rbbc "Omega network configuration" () 25 2) 2012a6b7db3Sskrll(dnf f-perm "perm" () 25 2) 2022a6b7db3Sskrll(dnf f-mode "mode" () 25 2) 2032a6b7db3Sskrll(dnf f-uu-1-24 "testing" () 24 1) 2042a6b7db3Sskrll(dnf f-wr "wr" () 24 1) 2052a6b7db3Sskrll(dnf f-fbincr "fb incr" () 23 4) 2062a6b7db3Sskrll(dnf f-uu-2-23 "unused bits 23 and 22" () 23 2) 2072a6b7db3Sskrll(dnf f-xmode "xmode" () 23 1) 2082a6b7db3Sskrll(dnf f-a23 "a23" () 23 1) 2092a6b7db3Sskrll(dnf f-mask1 "mask1" () 22 3) 2102a6b7db3Sskrll(dnf f-cr "cr" () 22 3) 2112a6b7db3Sskrll(dnf f-type "type" () 21 2) 2122a6b7db3Sskrll(dnf f-incamt "increment amount" () 19 8) 2132a6b7db3Sskrll(dnf f-cbs "cbs" () 19 2) 2142a6b7db3Sskrll(dnf f-uu-1-19 "unused bit 19" () 19 1) 2152a6b7db3Sskrll(dnf f-ball "b_all" () 19 1) 2162a6b7db3Sskrll(dnf f-colnum "column number" () 18 3) 2172a6b7db3Sskrll(dnf f-brc "b_r_c" () 18 3) 2182a6b7db3Sskrll(dnf f-incr "incr" () 17 6) 2192a6b7db3Sskrll(dnf f-fbdisp "frame buffer displacement" () 15 6) 2202a6b7db3Sskrll(dnf f-uu-4-15 "unused bits 15,14,13,12" () 15 4) 2212a6b7db3Sskrll(dnf f-length "length" () 15 3) 2222a6b7db3Sskrll(dnf f-uu-1-15 "unused bit 15" () 15 1) 2232a6b7db3Sskrll(dnf f-rc "row/column context" () 15 1) 2242a6b7db3Sskrll(dnf f-rcnum "starting cell of cntxt mem." () 14 3) 2252a6b7db3Sskrll(dnf f-rownum "row number" () 14 3) 2262a6b7db3Sskrll(dnf f-cbx "cbx" () 14 3) 2272a6b7db3Sskrll(dnf f-id "id" () 14 1) 2282a6b7db3Sskrll(dnf f-size "size" () 13 14) 2292a6b7db3Sskrll(dnf f-rownum1 "row number" () 12 3) 2302a6b7db3Sskrll(dnf f-uu-3-11 "unused 3 bits (11-9)" () 11 3) 2312a6b7db3Sskrll(dnf f-rc1 "row/column context" () 11 1) 2322a6b7db3Sskrll(dnf f-ccb "ccb" () 11 1) 2332a6b7db3Sskrll(dnf f-cbrb "data-bus orientation" () 10 1) 2342a6b7db3Sskrll(dnf f-cdb "cdb" () 10 1) 2352a6b7db3Sskrll(dnf f-rownum2 "row number" () 9 3) 2362a6b7db3Sskrll(dnf f-cell "cell" () 9 3) 2372a6b7db3Sskrll(dnf f-uu-3-9 "unused 3 bits (9-7)" () 9 3) 2382a6b7db3Sskrll(dnf f-contnum "context number" () 8 9) 2392a6b7db3Sskrll(dnf f-uu-1-6 "unused bit 6" () 6 1) 2402a6b7db3Sskrll(dnf f-dup "dup" () 6 1) 2412a6b7db3Sskrll(dnf f-rc2 "rc2" () 6 1) 2422a6b7db3Sskrll(dnf f-ctxdisp "context displacement" () 5 6) 2432a6b7db3Sskrll 2442a6b7db3Sskrll; additional fields in ms2 2452a6b7db3Sskrll(dnf f-imm16l "loop count" () 23 16) 2462a6b7db3Sskrll(df f-loopo "loop offset" () 7 8 UINT 2472a6b7db3Sskrll ((value pc) (srl SI value 2)) 2482a6b7db3Sskrll ((value pc) (add SI (sll value 2) 8)) 2492a6b7db3Sskrll ) 2502a6b7db3Sskrll(dnf f-cb1sel "cb1 select" () 25 3) 2512a6b7db3Sskrll(dnf f-cb2sel "cb2 select" () 22 3) 2522a6b7db3Sskrll(dnf f-cb1incr "cb1 increment" (SIGNED) 19 6) 2532a6b7db3Sskrll(dnf f-cb2incr "cb2 increment" (SIGNED) 13 6) 2542a6b7db3Sskrll(dnf f-rc3 "row/colum context" () 7 1) 2552a6b7db3Sskrll 2562a6b7db3Sskrll; The following is just for a test 2572a6b7db3Sskrll(dnf f-msysfrsr2 "sr2 for msys" () 19 4) 2582a6b7db3Sskrll(dnf f-brc2 "b_r_c2" () 14 3) 2592a6b7db3Sskrll(dnf f-ball2 "b_all2" () 15 1) 2602a6b7db3Sskrll 2612a6b7db3Sskrll 2622a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2632a6b7db3Sskrll;; Enumerations Of Instruction Fields ;; 2642a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2652a6b7db3Sskrll 2662a6b7db3Sskrll; insn-msys: bit 31. 1 for Morphosys Insns, 0 if not. 2672a6b7db3Sskrll(define-normal-insn-enum insn-msys "msys enums" () MSYS_ f-msys 2682a6b7db3Sskrll (NO YES) 2692a6b7db3Sskrll) 2702a6b7db3Sskrll 2712a6b7db3Sskrll; insn-opc: bits 30 through 25 . Non-MorphoSys Instructions 2722a6b7db3Sskrll; Note - the documentation is wrong for the encoding of the DBNZ 2732a6b7db3Sskrll; instruction. It is actually 011110. See Issue 67699. 2742a6b7db3Sskrll(define-normal-insn-enum insn-opc "opc enums" () OPC_ f-opc 2752a6b7db3Sskrll (ADD ADDU SUB SUBU MUL - - - 2762a6b7db3Sskrll AND OR XOR NAND NOR XNOR LDUI - 2772a6b7db3Sskrll LSL LSR ASR - - - - - 2782a6b7db3Sskrll BRLT BRLE BREQ JMP JAL BRNEQ DBNZ LOOP 2792a6b7db3Sskrll LDW STW - - - - - - 2802a6b7db3Sskrll - - - - - - - - 2812a6b7db3Sskrll EI DI SI RETI BREAK IFLUSH - - 2822a6b7db3Sskrll ) 2832a6b7db3Sskrll) 2842a6b7db3Sskrll 2852a6b7db3Sskrll; insn-msopc: bits 30 through 26 . MorphoSys Instructions 2862a6b7db3Sskrll(define-normal-insn-enum insn-msopc "msopc enums" () MSOPC_ f-msopc 2872a6b7db3Sskrll (LDCTXT LDFB STFB FBCB MFBCB FBCCI FBRCI FBCRI 2882a6b7db3Sskrll FBRRI MFBCCI MFBRCI MFBCRI MFBRRI FBCBDR RCFBCB MRCFBCB 2892a6b7db3Sskrll CBCAST DUPCBCAST WFBI WFB RCRISC FBCBINC RCXMODE INTLVR 2902a6b7db3Sskrll WFBINC MWFBINC WFBINCR MWFBINCR FBCBINCS MFBCBINCS FBCBINCRS MFBCBINCRS 2912a6b7db3Sskrll - - - - - - - - 2922a6b7db3Sskrll ) 2932a6b7db3Sskrll) 2942a6b7db3Sskrll 2952a6b7db3Sskrll; insn-imm: bit 24. Immediate operand indicator. 2962a6b7db3Sskrll(define-normal-insn-enum insn-imm "imm enums" () IMM_ f-imm 2972a6b7db3Sskrll ; This bit specifies whether and immediate operand will be present. 2982a6b7db3Sskrll ; It's 1 if there is, 0 if there is not. 2992a6b7db3Sskrll (NO YES) 3002a6b7db3Sskrll) 3012a6b7db3Sskrll;;;;;;;;;;;;;;;; 3022a6b7db3Sskrll;; Attributes ;; 3032a6b7db3Sskrll;;;;;;;;;;;;;;;; 3042a6b7db3Sskrll 3052a6b7db3Sskrll; Might not need this. Keep if for the sim just in case. 3062a6b7db3Sskrll;(define-attr 3072a6b7db3Sskrll; (for insn) 3082a6b7db3Sskrll; (type boolean) 3092a6b7db3Sskrll; (name EXT-SKIP-INSN) 3102a6b7db3Sskrll; (comment "instruction is a PAGE, LOADL or LOADH instruction") 3112a6b7db3Sskrll;) 3122a6b7db3Sskrll 3132a6b7db3Sskrll(define-attr 3142a6b7db3Sskrll (for insn) 3152a6b7db3Sskrll (type boolean) 3162a6b7db3Sskrll (name LOAD-DELAY) 3172a6b7db3Sskrll (comment "insn has a load delay") 3182a6b7db3Sskrll) 3192a6b7db3Sskrll 3202a6b7db3Sskrll(define-attr 3212a6b7db3Sskrll (for insn) 3222a6b7db3Sskrll (type boolean) 3232a6b7db3Sskrll (name MEMORY-ACCESS) 3242a6b7db3Sskrll (comment "insn performs a memory access") 3252a6b7db3Sskrll) 3262a6b7db3Sskrll 3272a6b7db3Sskrll(define-attr 3282a6b7db3Sskrll (for insn) 3292a6b7db3Sskrll (type boolean) 3302a6b7db3Sskrll (name AL-INSN) 3312a6b7db3Sskrll (comment "insn is an arithmetic or logic insn.") 3322a6b7db3Sskrll) 3332a6b7db3Sskrll 3342a6b7db3Sskrll(define-attr 3352a6b7db3Sskrll (for insn) 3362a6b7db3Sskrll (type boolean) 3372a6b7db3Sskrll (name IO-INSN) 3382a6b7db3Sskrll (comment "insn performs an I/O operation") 3392a6b7db3Sskrll) 3402a6b7db3Sskrll 3412a6b7db3Sskrll(define-attr 3422a6b7db3Sskrll (for insn) 3432a6b7db3Sskrll (type boolean) 3442a6b7db3Sskrll (name BR-INSN) 3452a6b7db3Sskrll (comment "insn performs an I/O operation") 3462a6b7db3Sskrll) 3472a6b7db3Sskrll 3482a6b7db3Sskrll(define-attr 3492a6b7db3Sskrll (for insn) 3502a6b7db3Sskrll (type boolean) 3512a6b7db3Sskrll (name JAL-HAZARD) 3522a6b7db3Sskrll (comment "insn has jal-like hazard") 3532a6b7db3Sskrll) 3542a6b7db3Sskrll 3552a6b7db3Sskrll(define-pmacro (define-reg-use-attr regfield) 3562a6b7db3Sskrll (define-attr 3572a6b7db3Sskrll (for insn) 3582a6b7db3Sskrll (type boolean) 3592a6b7db3Sskrll (name (.sym "USES-" (.upcase regfield))) 3602a6b7db3Sskrll (comment ("insn accesses register operand " regfield)))) 3612a6b7db3Sskrll 3622a6b7db3Sskrll(define-reg-use-attr "frdr") 3632a6b7db3Sskrll(define-reg-use-attr "frdrrr") 3642a6b7db3Sskrll(define-reg-use-attr "frsr1") 3652a6b7db3Sskrll(define-reg-use-attr "frsr2") 3662a6b7db3Sskrll 3672a6b7db3Sskrll 3682a6b7db3Sskrll; Might not need this. Keep it for the sim just in case. 3692a6b7db3Sskrll(define-attr 3702a6b7db3Sskrll (for insn) 3712a6b7db3Sskrll (type boolean) 3722a6b7db3Sskrll (name SKIPA) 3732a6b7db3Sskrll (comment "instruction is a SKIP instruction") 3742a6b7db3Sskrll) 3752a6b7db3Sskrll 3762a6b7db3Sskrll 3772a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;; 3782a6b7db3Sskrll;; Hardware Pieces ;; 3792a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;; 3802a6b7db3Sskrll 3812a6b7db3Sskrll;(define-pmacro (build-reg-name n) (.splice (.str "$" n) n)) 3822a6b7db3Sskrll 3832a6b7db3Sskrll; These are the 16 registers that the chip has. In later versions 3842a6b7db3Sskrll; where there will be more registers, this will need to be expanded. 3852a6b7db3Sskrll; Note that there are two entries for the registers with two names. 3862a6b7db3Sskrll(define-hardware 3872a6b7db3Sskrll (name h-spr) 3882a6b7db3Sskrll (comment "special-purpose registers") 3892a6b7db3Sskrll (type register SI (16)) 3902a6b7db3Sskrll (indices keyword "" (("R0" 0) ("R1" 1) ("R2" 2) ("R3" 3) ("R4" 4) ("R5" 5) 3912a6b7db3Sskrll ("R6" 6) ("R7" 7) ("R8" 8) ("R9" 9) ("R10" 10) ("R11" 11) ("R12" 12) ("fp" 12) 3922a6b7db3Sskrll ("R13" 13) ("sp" 13) ("R14" 14) ("ra" 14) ("R15" 15) ("ira" 15))) 3932a6b7db3Sskrll; (get (index) (and (raw-reg h-spr) #xffffffff)) 3942a6b7db3Sskrll; (set (index value) (set (raw-reg h-spr) (and value #xffffffff))) 3952a6b7db3Sskrll) 3962a6b7db3Sskrll 3972a6b7db3Sskrll; This is the program counter. 3982a6b7db3Sskrll(dnh h-pc "program counter" (PC PROFILE) (pc) () () ()) 3992a6b7db3Sskrll 4002a6b7db3Sskrll(define-keyword 4012a6b7db3Sskrll (name msys-syms) 4022a6b7db3Sskrll (print-name h-nil) 4032a6b7db3Sskrll (prefix "") 4042a6b7db3Sskrll (values (DUP 1) (XX 0)) 4052a6b7db3Sskrll) 4062a6b7db3Sskrll 4072a6b7db3Sskrll;;;;;;;;;;;;;; 4082a6b7db3Sskrll;; Operands ;; 4092a6b7db3Sskrll;;;;;;;;;;;;;; 4102a6b7db3Sskrll 4112a6b7db3Sskrll(define-operand (name frsr1) (comment "register") (attrs) 4122a6b7db3Sskrll (type h-spr) (index f-sr1) ) 4132a6b7db3Sskrll(define-operand (name frsr2) (comment "register") (attrs) 4142a6b7db3Sskrll (type h-spr) (index f-sr2) ) 4152a6b7db3Sskrll(define-operand (name frdr) (comment "register") (attrs) 4162a6b7db3Sskrll (type h-spr) (index f-dr) ) 4172a6b7db3Sskrll(define-operand (name frdrrr) (comment "register") (attrs) 4182a6b7db3Sskrll (type h-spr) (index f-drrr) ) 4192a6b7db3Sskrll(define-operand (name imm16) (comment "immediate value - sign extd") (attrs) 4202a6b7db3Sskrll (type h-sint) (index f-imm16s) (handlers (parse "imm16") (print "dollarhex"))) 4212a6b7db3Sskrll(define-operand (name imm16z) (comment "immediate value - zero extd") (attrs) 4222a6b7db3Sskrll (type h-uint) (index f-imm16u) (handlers (parse "imm16") (print "dollarhex"))) 4232a6b7db3Sskrll(define-operand (name imm16o) (comment "immediate value") (attrs PCREL-ADDR) 4242a6b7db3Sskrll (type h-uint) (index f-imm16s) (handlers (parse "imm16") (print "pcrel"))) 4252a6b7db3Sskrll 4262a6b7db3Sskrll; Operands for MorphoSys Instructions 4272a6b7db3Sskrll 4282a6b7db3Sskrll(define-operand (name rc) (comment "rc") (attrs) 4292a6b7db3Sskrll (type h-uint) (index f-rc) (handlers (parse "rc") (print "dollarhex"))) 4302a6b7db3Sskrll 4312a6b7db3Sskrll(define-operand (name rcnum) (comment "rcnum") (attrs) 4322a6b7db3Sskrll (type h-uint) (index f-rcnum) (handlers (print "dollarhex"))) 4332a6b7db3Sskrll 4342a6b7db3Sskrll(define-operand (name contnum) (comment "context number") (attrs) 4352a6b7db3Sskrll (type h-uint) (index f-contnum) (handlers (print "dollarhex"))) 4362a6b7db3Sskrll 4372a6b7db3Sskrll(define-operand (name rbbc) (comment "omega network configuration") (attrs) 4382a6b7db3Sskrll (type h-uint) (index f-rbbc) (handlers (parse "rbbc") (print "dollarhex"))) 4392a6b7db3Sskrll 4402a6b7db3Sskrll(define-operand (name colnum) (comment "column number") (attrs) 4412a6b7db3Sskrll (type h-uint) (index f-colnum) (handlers (print "dollarhex"))) 4422a6b7db3Sskrll 4432a6b7db3Sskrll(define-operand (name rownum) (comment "row number") (attrs) 4442a6b7db3Sskrll (type h-uint) (index f-rownum) (handlers (print "dollarhex"))) 4452a6b7db3Sskrll 4462a6b7db3Sskrll(define-operand (name rownum1) (comment "row number") (attrs) 4472a6b7db3Sskrll (type h-uint) (index f-rownum1) (handlers (print "dollarhex"))) 4482a6b7db3Sskrll 4492a6b7db3Sskrll(define-operand (name rownum2) (comment "row number") (attrs) 4502a6b7db3Sskrll (type h-uint) (index f-rownum2) (handlers (print "dollarhex"))) 4512a6b7db3Sskrll 4522a6b7db3Sskrll(define-operand (name rc1) (comment "rc1") (attrs) 4532a6b7db3Sskrll (type h-uint) (index f-rc1) (handlers (parse "rc") (print "dollarhex"))) 4542a6b7db3Sskrll 4552a6b7db3Sskrll(define-operand (name rc2) (comment "rc2") (attrs) 4562a6b7db3Sskrll (type h-uint) (index f-rc2) (handlers (parse "rc") (print "dollarhex"))) 4572a6b7db3Sskrll 4582a6b7db3Sskrll(define-operand (name cbrb) (comment "data-bus orientation") (attrs) 4592a6b7db3Sskrll (type h-uint) (index f-cbrb) (handlers (parse "cbrb") (print "dollarhex"))) 4602a6b7db3Sskrll 4612a6b7db3Sskrll(define-operand (name cell) (comment "cell") (attrs) 4622a6b7db3Sskrll (type h-uint) (index f-cell) (handlers (print "dollarhex"))) 4632a6b7db3Sskrll 4642a6b7db3Sskrll(define-operand (name dup) (comment "dup") (attrs) 4652a6b7db3Sskrll (type h-uint) (index f-dup) (handlers (parse "dup") (print "dollarhex"))) 4662a6b7db3Sskrll 4672a6b7db3Sskrll(define-operand (name ctxdisp) (comment "context displacement") (attrs) 4682a6b7db3Sskrll (type h-uint) (index f-ctxdisp) (handlers (print "dollarhex"))) 4692a6b7db3Sskrll 4702a6b7db3Sskrll(define-operand (name fbdisp) (comment "frame buffer displacement") (attrs) 4712a6b7db3Sskrll (type h-uint) (index f-fbdisp) (handlers (print "dollarhex"))) 4722a6b7db3Sskrll 4732a6b7db3Sskrll(define-operand (name type) (comment "type") (attrs) 4742a6b7db3Sskrll (type h-uint) (index f-type) (handlers (parse "type") (print "dollarhex"))) 4752a6b7db3Sskrll 4762a6b7db3Sskrll(define-operand (name mask) (comment "mask") (attrs) 4772a6b7db3Sskrll (type h-uint) (index f-mask) (handlers (print "dollarhex"))) 4782a6b7db3Sskrll 4792a6b7db3Sskrll(define-operand (name bankaddr) (comment "bank address") (attrs) 4802a6b7db3Sskrll (type h-uint) (index f-bankaddr) (handlers (print "dollarhex"))) 4812a6b7db3Sskrll 4822a6b7db3Sskrll(define-operand (name incamt) (comment "increment amount") (attrs) 4832a6b7db3Sskrll (type h-uint) (index f-incamt) (handlers (print "dollarhex"))) 4842a6b7db3Sskrll 4852a6b7db3Sskrll(define-operand (name xmode) (comment "xmode") (attrs) 4862a6b7db3Sskrll (type h-uint) (index f-xmode) (handlers (parse "xmode") (print "dollarhex"))) 4872a6b7db3Sskrll 4882a6b7db3Sskrll(define-operand (name mask1) (comment "mask1") (attrs) 4892a6b7db3Sskrll (type h-uint) (index f-mask1) (handlers (print "dollarhex"))) 4902a6b7db3Sskrll 4912a6b7db3Sskrll(define-operand (name ball) (comment "b_all") (attrs) 4922a6b7db3Sskrll (type h-uint) (index f-ball) (handlers (parse "ball") (print "dollarhex"))) 4932a6b7db3Sskrll 4942a6b7db3Sskrll(define-operand (name brc) (comment "b_r_c") (attrs) 4952a6b7db3Sskrll (type h-uint) (index f-brc) (handlers (print "dollarhex"))) 4962a6b7db3Sskrll 4972a6b7db3Sskrll(define-operand (name rda) (comment "rd") (attrs) 4982a6b7db3Sskrll (type h-uint) (index f-rda) (handlers (print "dollarhex"))) 4992a6b7db3Sskrll 5002a6b7db3Sskrll(define-operand (name wr) (comment "wr") (attrs) 5012a6b7db3Sskrll (type h-uint) (index f-wr) (handlers (print "dollarhex"))) 5022a6b7db3Sskrll 5032a6b7db3Sskrll(define-operand (name ball2) (comment "b_all2") (attrs) 5042a6b7db3Sskrll (type h-uint) (index f-ball2) (handlers (parse "ball") (print "dollarhex"))) 5052a6b7db3Sskrll 5062a6b7db3Sskrll(define-operand (name brc2) (comment "b_r_c2") (attrs) 5072a6b7db3Sskrll (type h-uint) (index f-brc2) (handlers (print "dollarhex"))) 5082a6b7db3Sskrll(define-operand (name perm) (comment "perm") (attrs) 5092a6b7db3Sskrll (type h-uint) (index f-perm) (handlers (print "dollarhex"))) 5102a6b7db3Sskrll(define-operand (name a23) (comment "a23") (attrs) 5112a6b7db3Sskrll (type h-uint) (index f-a23) (handlers (print "dollarhex"))) 5122a6b7db3Sskrll(define-operand (name cr) (comment "c-r") (attrs) 5132a6b7db3Sskrll (type h-uint) (index f-cr) (handlers (print "dollarhex"))) 5142a6b7db3Sskrll(define-operand (name cbs) (comment "cbs") (attrs) 5152a6b7db3Sskrll (type h-uint) (index f-cbs) (handlers (print "dollarhex"))) 5162a6b7db3Sskrll(define-operand (name incr) (comment "incr") (attrs) 5172a6b7db3Sskrll (type h-uint) (index f-incr) (handlers (print "dollarhex"))) 5182a6b7db3Sskrll(define-operand (name length) (comment "length") (attrs) 5192a6b7db3Sskrll (type h-uint) (index f-length) (handlers (print "dollarhex"))) 5202a6b7db3Sskrll(define-operand (name cbx) (comment "cbx") (attrs) 5212a6b7db3Sskrll (type h-uint) (index f-cbx) (handlers (print "dollarhex"))) 5222a6b7db3Sskrll(define-operand (name ccb) (comment "ccb") (attrs) 5232a6b7db3Sskrll (type h-uint) (index f-ccb) (handlers (print "dollarhex"))) 5242a6b7db3Sskrll(define-operand (name cdb) (comment "cdb") (attrs) 5252a6b7db3Sskrll (type h-uint) (index f-cdb) (handlers (print "dollarhex"))) 5262a6b7db3Sskrll 5272a6b7db3Sskrll; For the INTLVR insn 5282a6b7db3Sskrll(define-operand (name mode) (comment "mode") (attrs) 5292a6b7db3Sskrll (type h-uint) (index f-mode) (handlers (print "dollarhex"))) 5302a6b7db3Sskrll(define-operand (name id) (comment "i/d") (attrs) 5312a6b7db3Sskrll (type h-uint) (index f-id) (handlers (print "dollarhex"))) 5322a6b7db3Sskrll(define-operand (name size) (comment "size") (attrs) 5332a6b7db3Sskrll (type h-uint) (index f-size) (handlers (print "dollarhex"))) 5342a6b7db3Sskrll 5352a6b7db3Sskrll(define-operand (name fbincr) (comment "fb incr") (attrs) 5362a6b7db3Sskrll (type h-uint) (index f-fbincr) (handlers (print "dollarhex"))) 5372a6b7db3Sskrll 5382a6b7db3Sskrll; For the ms2 insns 5392a6b7db3Sskrll(define-operand (name loopsize) (comment "immediate value") 5402a6b7db3Sskrll (attrs (MACH ms2) PCREL-ADDR) 5412a6b7db3Sskrll (type h-uint) (index f-loopo) (handlers (parse "loopsize") (print "pcrel"))) 5422a6b7db3Sskrll(define-operand (name imm16l) (comment "immediate value") 5432a6b7db3Sskrll (attrs (MACH ms2)) 5442a6b7db3Sskrll (type h-uint) (index f-imm16l) (handlers (print "dollarhex"))) 5452a6b7db3Sskrll(define-operand (name rc3) (comment "rc3") (attrs (MACH ms2)) 5462a6b7db3Sskrll (type h-uint) (index f-rc3) (handlers (parse "rc") (print "dollarhex"))) 5472a6b7db3Sskrll(define-operand (name cb1sel) (comment "cb1sel") (attrs (MACH ms2)) 5482a6b7db3Sskrll (type h-uint) (index f-cb1sel) (handlers (print "dollarhex"))) 5492a6b7db3Sskrll(define-operand (name cb2sel) (comment "cb2sel") (attrs (MACH ms2)) 5502a6b7db3Sskrll (type h-uint) (index f-cb2sel) (handlers (print "dollarhex"))) 5512a6b7db3Sskrll(define-operand (name cb1incr) (comment "cb1incr") (attrs (MACH ms2)) 5522a6b7db3Sskrll (type h-sint) (index f-cb1incr) (handlers (print "dollarhex"))) 5532a6b7db3Sskrll(define-operand (name cb2incr) (comment "cb2incr") (attrs (MACH ms2)) 5542a6b7db3Sskrll (type h-sint) (index f-cb2incr) (handlers (print "dollarhex"))) 5552a6b7db3Sskrll 5562a6b7db3Sskrll; Probaby won't need most of these. 5572a6b7db3Sskrll(define-pmacro r0 (reg h-spr #x0)) 5582a6b7db3Sskrll(define-pmacro r1 (reg h-spr #x01)) 5592a6b7db3Sskrll(define-pmacro r2 (reg h-spr #x02)) 5602a6b7db3Sskrll(define-pmacro r3 (reg h-spr #x03)) 5612a6b7db3Sskrll(define-pmacro r4 (reg h-spr #x04)) 5622a6b7db3Sskrll(define-pmacro r5 (reg h-spr #x05)) 5632a6b7db3Sskrll(define-pmacro r6 (reg h-spr #x06)) 5642a6b7db3Sskrll(define-pmacro r7 (reg h-spr #x07)) 5652a6b7db3Sskrll(define-pmacro r8 (reg h-spr #x08)) 5662a6b7db3Sskrll(define-pmacro r9 (reg h-spr #x09)) 5672a6b7db3Sskrll(define-pmacro r10 (reg h-spr #xA)) 5682a6b7db3Sskrll(define-pmacro r11 (reg h-spr #xB)) 5692a6b7db3Sskrll(define-pmacro r12 (reg h-spr #xC)) 5702a6b7db3Sskrll(define-pmacro fp (reg h-spr #xC)) 5712a6b7db3Sskrll(define-pmacro r13 (reg h-spr #xD)) 5722a6b7db3Sskrll(define-pmacro sp (reg h-spr #xD)) 5732a6b7db3Sskrll(define-pmacro r14 (reg h-spr #xE)) 5742a6b7db3Sskrll(define-pmacro ra (reg h-spr #xE)) 5752a6b7db3Sskrll(define-pmacro r15 (reg h-spr #xF)) 5762a6b7db3Sskrll(define-pmacro ira (reg h-spr #xF)) 5772a6b7db3Sskrll 5782a6b7db3Sskrll; delayed set 5792a6b7db3Sskrll(define-pmacro (dset dest src) (set (delay 1 dest) src)) 5802a6b7db3Sskrll 5812a6b7db3Sskrll 5822a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 5832a6b7db3Sskrll;; Instructions As Defined In the MorphoRisc ISA Document ;; 5842a6b7db3Sskrll;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 5852a6b7db3Sskrll 5862a6b7db3Sskrll; Arithmetic Instructions 5872a6b7db3Sskrll 5882a6b7db3Sskrll(dni add "ADD DstReg, SrcReg1, SrcReg2" 5892a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 5902a6b7db3Sskrll "add $frdrrr,$frsr1,$frsr2" 5912a6b7db3Sskrll (+ MSYS_NO OPC_ADD IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 5922a6b7db3Sskrll (set frdrrr (add SI frsr1 frsr2)) 5932a6b7db3Sskrll () 5942a6b7db3Sskrll) 5952a6b7db3Sskrll 5962a6b7db3Sskrll(dni addu "ADDU DstReg, SrcReg1, SrcReg2" 5972a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 5982a6b7db3Sskrll "addu $frdrrr,$frsr1,$frsr2" 5992a6b7db3Sskrll (+ MSYS_NO OPC_ADDU IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 6002a6b7db3Sskrll (set frdrrr (add USI frsr1 frsr2)) 6012a6b7db3Sskrll () 6022a6b7db3Sskrll) 6032a6b7db3Sskrll 6042a6b7db3Sskrll(dni addi "ADDI DstReg, SrcReg1 UnsImm" 6052a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 6062a6b7db3Sskrll "addi $frdr,$frsr1,#$imm16" 6072a6b7db3Sskrll (+ MSYS_NO OPC_ADD IMM_YES frsr1 frdr imm16) 6082a6b7db3Sskrll (sequence((HI tmp)) 6092a6b7db3Sskrll (set HI tmp (and imm16 #xffff)) 6102a6b7db3Sskrll (set frdr (add SI frsr1 (ext SI tmp))) 6112a6b7db3Sskrll ) 6122a6b7db3Sskrll () 6132a6b7db3Sskrll) 6142a6b7db3Sskrll 6152a6b7db3Sskrll(dni addui "ADDUI DstReg, SrcReg1, UnsImm" 6162a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 6172a6b7db3Sskrll "addui $frdr,$frsr1,#$imm16z" 6182a6b7db3Sskrll (+ MSYS_NO OPC_ADDU IMM_YES frsr1 frdr imm16z) 6192a6b7db3Sskrll (set frdr (add USI frsr1 (ext USI imm16z))) 6202a6b7db3Sskrll () 6212a6b7db3Sskrll) 6222a6b7db3Sskrll 6232a6b7db3Sskrll(dni sub "SUB DstReg, SrcReg1, SrcReg2" 6242a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 6252a6b7db3Sskrll "sub $frdrrr,$frsr1,$frsr2" 6262a6b7db3Sskrll (+ MSYS_NO OPC_SUB IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 6272a6b7db3Sskrll (set frdrrr (sub SI frsr1 frsr2)) 6282a6b7db3Sskrll () 6292a6b7db3Sskrll) 6302a6b7db3Sskrll 6312a6b7db3Sskrll(dni subu "SUBU DstReg, SrcReg1, SrcReg2" 6322a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 6332a6b7db3Sskrll "subu $frdrrr,$frsr1,$frsr2" 6342a6b7db3Sskrll (+ MSYS_NO OPC_SUBU IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 6352a6b7db3Sskrll (set frdrrr (sub USI frsr1 frsr2)) 6362a6b7db3Sskrll () 6372a6b7db3Sskrll) 6382a6b7db3Sskrll 6392a6b7db3Sskrll(dni subi "SUBI DstReg, SrcReg1, UnsImm" 6402a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 6412a6b7db3Sskrll "subi $frdr,$frsr1,#$imm16" 6422a6b7db3Sskrll (+ MSYS_NO OPC_SUB IMM_YES frsr1 frdr imm16) 6432a6b7db3Sskrll (sequence((HI tmp)) 6442a6b7db3Sskrll (set HI tmp (and imm16 #xffff)) 6452a6b7db3Sskrll (set frdr (sub SI frsr1 (ext SI tmp))) 6462a6b7db3Sskrll ) 6472a6b7db3Sskrll ;(set frdr (sub SI frsr1 (ext SI imm16))) 6482a6b7db3Sskrll () 6492a6b7db3Sskrll) 6502a6b7db3Sskrll 6512a6b7db3Sskrll(dni subui "SUBUI DstReg, SrcReg1, UnsImm" 6522a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 6532a6b7db3Sskrll "subui $frdr,$frsr1,#$imm16z" 6542a6b7db3Sskrll (+ MSYS_NO OPC_SUBU IMM_YES frsr1 frdr imm16z) 6552a6b7db3Sskrll (set frdr (sub USI frsr1 (ext USI imm16z))) 6562a6b7db3Sskrll () 6572a6b7db3Sskrll) 6582a6b7db3Sskrll 6592a6b7db3Sskrll(dni mul "MUL DstReg, SrcReg1, SrcReg2" 6602a6b7db3Sskrll ((MACH ms1-003,ms2) AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 6612a6b7db3Sskrll "mul $frdrrr,$frsr1,$frsr2" 6622a6b7db3Sskrll (+ MSYS_NO OPC_MUL IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 6632a6b7db3Sskrll (sequence((HI op1) (HI op2)) 6642a6b7db3Sskrll (set op1 (and frsr1 #xffff)) 6652a6b7db3Sskrll (if (or (lt op1 (const -32768)) (gt op1 (const 32767))) 6662a6b7db3Sskrll (error "operand out of range") 6672a6b7db3Sskrll ) 6682a6b7db3Sskrll (set op2 (and frsr2 #xffff)) 6692a6b7db3Sskrll (if (or (lt op2 (const -32768)) (gt op2 (const 32767))) 6702a6b7db3Sskrll (error "operand out of range") 6712a6b7db3Sskrll ) 6722a6b7db3Sskrll (set frdrrr (mul SI (ext SI op1) (ext SI op2))) 6732a6b7db3Sskrll ) 6742a6b7db3Sskrll () 6752a6b7db3Sskrll) 6762a6b7db3Sskrll 6772a6b7db3Sskrll(dni muli "MULI DstReg, SrcReg1, UnsImm" 6782a6b7db3Sskrll ((MACH ms1-003,ms2) AL-INSN USES-FRDR USES-FRSR1) 6792a6b7db3Sskrll "muli $frdr,$frsr1,#$imm16" 6802a6b7db3Sskrll (+ MSYS_NO OPC_MUL IMM_YES frsr1 frdr imm16) 6812a6b7db3Sskrll (sequence((HI op1) (HI op2)) 6822a6b7db3Sskrll (set op1 (and frsr1 #xffff)) 6832a6b7db3Sskrll (if (or (lt op1 (const -32768)) (gt op1 (const 32767))) 6842a6b7db3Sskrll (error "operand out of range") 6852a6b7db3Sskrll ) 6862a6b7db3Sskrll (set op2 (and imm16 #xffff)) 6872a6b7db3Sskrll (if (eq op1 (const 0)) 6882a6b7db3Sskrll (error "op1 is 0") 6892a6b7db3Sskrll ) 6902a6b7db3Sskrll (if (eq op2 (const 0)) 6912a6b7db3Sskrll (error "op2 is 0") 6922a6b7db3Sskrll ) 6932a6b7db3Sskrll (set frdr (mul SI (ext SI op1) (ext SI op2))) 6942a6b7db3Sskrll ) 6952a6b7db3Sskrll () 6962a6b7db3Sskrll) 6972a6b7db3Sskrll 6982a6b7db3Sskrll; Logical Instructions 6992a6b7db3Sskrll 7002a6b7db3Sskrll(dni and "AND DstReg, SrcReg1, SrcReg2" 7012a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7022a6b7db3Sskrll "and $frdrrr,$frsr1,$frsr2" 7032a6b7db3Sskrll (+ MSYS_NO OPC_AND IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7042a6b7db3Sskrll (set frdrrr (and frsr1 frsr2)) 7052a6b7db3Sskrll () 7062a6b7db3Sskrll) 7072a6b7db3Sskrll 7082a6b7db3Sskrll(dni andi "ANDI DstReg, SrcReg1, UnsImm" 7092a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7102a6b7db3Sskrll "andi $frdr,$frsr1,#$imm16z" 7112a6b7db3Sskrll (+ MSYS_NO OPC_AND IMM_YES frsr1 frdr imm16z) 7122a6b7db3Sskrll (set frdr (and frsr1 (ext USI imm16z))) 7132a6b7db3Sskrll () 7142a6b7db3Sskrll) 7152a6b7db3Sskrll 7162a6b7db3Sskrll(dni or "OR DstReg, SrcReg1, SrcReg2" 7172a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7182a6b7db3Sskrll "or $frdrrr,$frsr1,$frsr2" 7192a6b7db3Sskrll (+ MSYS_NO OPC_OR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7202a6b7db3Sskrll (set frdrrr (or frsr1 frsr2)) 7212a6b7db3Sskrll () 7222a6b7db3Sskrll) 7232a6b7db3Sskrll 7242a6b7db3Sskrll(dni nop "nop" 7252a6b7db3Sskrll () 7262a6b7db3Sskrll "nop" 7272a6b7db3Sskrll (+ MSYS_NO OPC_OR IMM_NO (f-uu24 0)) 7282a6b7db3Sskrll (nop) 7292a6b7db3Sskrll () 7302a6b7db3Sskrll) 7312a6b7db3Sskrll 7322a6b7db3Sskrll(dni ori "ORI DstReg, SrcReg1, UnsImm" 7332a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7342a6b7db3Sskrll "ori $frdr,$frsr1,#$imm16z" 7352a6b7db3Sskrll (+ MSYS_NO OPC_OR IMM_YES frsr1 frdr imm16z) 7362a6b7db3Sskrll (set frdr (or frsr1 (ext USI imm16z))) 7372a6b7db3Sskrll () 7382a6b7db3Sskrll) 7392a6b7db3Sskrll 7402a6b7db3Sskrll(dni xor "XOR DstReg, SrcReg1, SrcReg2" 7412a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7422a6b7db3Sskrll "xor $frdrrr,$frsr1,$frsr2" 7432a6b7db3Sskrll (+ MSYS_NO OPC_XOR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7442a6b7db3Sskrll (set frdrrr (xor frsr1 frsr2)) 7452a6b7db3Sskrll () 7462a6b7db3Sskrll) 7472a6b7db3Sskrll 7482a6b7db3Sskrll(dni xori "XORI DstReg, SrcReg1, UnsImm" 7492a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7502a6b7db3Sskrll "xori $frdr,$frsr1,#$imm16z" 7512a6b7db3Sskrll (+ MSYS_NO OPC_XOR IMM_YES frsr1 frdr imm16z) 7522a6b7db3Sskrll (set frdr (xor frsr1 (ext USI imm16z))) 7532a6b7db3Sskrll () 7542a6b7db3Sskrll) 7552a6b7db3Sskrll 7562a6b7db3Sskrll(dni nand "NAND DstReg, SrcReg1, SrcReg2" 7572a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7582a6b7db3Sskrll "nand $frdrrr,$frsr1,$frsr2" 7592a6b7db3Sskrll (+ MSYS_NO OPC_NAND IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7602a6b7db3Sskrll (set frdrrr (inv (and frsr1 frsr2))) 7612a6b7db3Sskrll () 7622a6b7db3Sskrll) 7632a6b7db3Sskrll 7642a6b7db3Sskrll(dni nandi "NANDI DstReg, SrcReg1, UnsImm" 7652a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7662a6b7db3Sskrll "nandi $frdr,$frsr1,#$imm16z" 7672a6b7db3Sskrll (+ MSYS_NO OPC_NAND IMM_YES frsr1 frdr imm16z) 7682a6b7db3Sskrll (set frdr (inv (and frsr1 (ext USI imm16z)))) 7692a6b7db3Sskrll () 7702a6b7db3Sskrll) 7712a6b7db3Sskrll 7722a6b7db3Sskrll(dni nor "NOR DstReg, SrcReg1, SrcReg2" 7732a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7742a6b7db3Sskrll "nor $frdrrr,$frsr1,$frsr2" 7752a6b7db3Sskrll (+ MSYS_NO OPC_NOR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7762a6b7db3Sskrll (set frdrrr (inv (or frsr1 frsr2))) 7772a6b7db3Sskrll () 7782a6b7db3Sskrll) 7792a6b7db3Sskrll 7802a6b7db3Sskrll(dni nori "NORI DstReg, SrcReg1, UnsImm" 7812a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7822a6b7db3Sskrll "nori $frdr,$frsr1,#$imm16z" 7832a6b7db3Sskrll (+ MSYS_NO OPC_NOR IMM_YES frsr1 frdr imm16z) 7842a6b7db3Sskrll (set frdr (inv (or frsr1 (ext USI imm16z)))) 7852a6b7db3Sskrll () 7862a6b7db3Sskrll) 7872a6b7db3Sskrll 7882a6b7db3Sskrll(dni xnor "XNOR DstReg, SrcReg1, SrcReg2" 7892a6b7db3Sskrll (AL-INSN USES-FRDRRR USES-FRSR1 USES-FRSR2) 7902a6b7db3Sskrll "xnor $frdrrr,$frsr1,$frsr2" 7912a6b7db3Sskrll (+ MSYS_NO OPC_XNOR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 7922a6b7db3Sskrll (set frdrrr (inv (xor frsr1 frsr2))) 7932a6b7db3Sskrll () 7942a6b7db3Sskrll) 7952a6b7db3Sskrll 7962a6b7db3Sskrll(dni xnori "XNORI DstReg, SrcReg1, UnsImm" 7972a6b7db3Sskrll (AL-INSN USES-FRDR USES-FRSR1) 7982a6b7db3Sskrll "xnori $frdr,$frsr1,#$imm16z" 7992a6b7db3Sskrll (+ MSYS_NO OPC_XNOR IMM_YES frsr1 frdr imm16z) 8002a6b7db3Sskrll (set frdr (inv (xor frsr1 (ext USI imm16z)))) 8012a6b7db3Sskrll () 8022a6b7db3Sskrll) 8032a6b7db3Sskrll 8042a6b7db3Sskrll(dni ldui "LDUI DstReg, UnsImm" 8052a6b7db3Sskrll (AL-INSN USES-FRDR) 8062a6b7db3Sskrll "ldui $frdr,#$imm16z" 8072a6b7db3Sskrll (+ MSYS_NO OPC_LDUI IMM_YES (f-uu4b 0) frdr imm16z) 8082a6b7db3Sskrll (set frdr (and (sll imm16z 16) #xffff0000)) 8092a6b7db3Sskrll () 8102a6b7db3Sskrll) 8112a6b7db3Sskrll 8122a6b7db3Sskrll; Shift Instructions 8132a6b7db3Sskrll 8142a6b7db3Sskrll(dni lsl "LSL DstReg, SrcReg1, SrcReg2" 8152a6b7db3Sskrll (USES-FRDRRR USES-FRSR1 USES-FRSR2) 8162a6b7db3Sskrll "lsl $frdrrr,$frsr1,$frsr2" 8172a6b7db3Sskrll (+ MSYS_NO OPC_LSL IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 8182a6b7db3Sskrll (set frdrrr (sll frsr1 frsr2)) 8192a6b7db3Sskrll () 8202a6b7db3Sskrll) 8212a6b7db3Sskrll 8222a6b7db3Sskrll(dni lsli "LSLI DstReg, SrcReg1, UnsImm" 8232a6b7db3Sskrll (USES-FRDR USES-FRSR1) 8242a6b7db3Sskrll "lsli $frdr,$frsr1,#$imm16" 8252a6b7db3Sskrll (+ MSYS_NO OPC_LSL IMM_YES frsr1 frdr imm16) 8262a6b7db3Sskrll (set frdr (sll frsr1 imm16)) 8272a6b7db3Sskrll () 8282a6b7db3Sskrll) 8292a6b7db3Sskrll 8302a6b7db3Sskrll(dni lsr "LSR DstReg, SrcReg1, SrcReg2" 8312a6b7db3Sskrll (USES-FRDRRR USES-FRSR1 USES-FRSR2) 8322a6b7db3Sskrll "lsr $frdrrr,$frsr1,$frsr2" 8332a6b7db3Sskrll (+ MSYS_NO OPC_LSR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 8342a6b7db3Sskrll (set frdrrr (srl frsr1 frsr2)) 8352a6b7db3Sskrll () 8362a6b7db3Sskrll) 8372a6b7db3Sskrll 8382a6b7db3Sskrll(dni lsri "LSRI DstReg, SrcReg1, UnsImm" 8392a6b7db3Sskrll (USES-FRDR USES-FRSR1) 8402a6b7db3Sskrll "lsri $frdr,$frsr1,#$imm16" 8412a6b7db3Sskrll (+ MSYS_NO OPC_LSR IMM_YES frsr1 frdr imm16) 8422a6b7db3Sskrll (set frdr (srl frsr1 imm16)) 8432a6b7db3Sskrll () 8442a6b7db3Sskrll) 8452a6b7db3Sskrll 8462a6b7db3Sskrll(dni asr "ASR DstReg, SrcReg1, SrcReg2" 8472a6b7db3Sskrll (USES-FRDRRR USES-FRSR1 USES-FRSR2) 8482a6b7db3Sskrll "asr $frdrrr,$frsr1,$frsr2" 8492a6b7db3Sskrll (+ MSYS_NO OPC_ASR IMM_NO frsr1 frsr2 frdrrr (f-uu12 0)) 8502a6b7db3Sskrll (set frdrrr (sra frsr1 frsr2)) 8512a6b7db3Sskrll () 8522a6b7db3Sskrll) 8532a6b7db3Sskrll 8542a6b7db3Sskrll(dni asri "ASRI DstReg, SrcReg1, UnsImm" 8552a6b7db3Sskrll (USES-FRDR USES-FRSR1) 8562a6b7db3Sskrll "asri $frdr,$frsr1,#$imm16" 8572a6b7db3Sskrll (+ MSYS_NO OPC_ASR IMM_YES frsr1 frdr imm16) 8582a6b7db3Sskrll (set frdr (sra frsr1 imm16)) 8592a6b7db3Sskrll () 8602a6b7db3Sskrll) 8612a6b7db3Sskrll 8622a6b7db3Sskrll; Control Transfer Instructions 8632a6b7db3Sskrll 8642a6b7db3Sskrll(dni brlt "BRLT SrcReg1, SrcReg2, label" 8652a6b7db3Sskrll (BR-INSN DELAY-SLOT USES-FRDRRR USES-FRSR1 USES-FRSR2) 8662a6b7db3Sskrll "brlt $frsr1,$frsr2,$imm16o" 8672a6b7db3Sskrll (+ MSYS_NO OPC_BRLT IMM_YES frsr1 frsr2 imm16o) 8682a6b7db3Sskrll (sequence() 8692a6b7db3Sskrll (if (lt USI frsr1 frsr2) 8702a6b7db3Sskrll (dset pc (add pc (ext SI imm16o)))) 8712a6b7db3Sskrll ) 8722a6b7db3Sskrll () 8732a6b7db3Sskrll) 8742a6b7db3Sskrll 8752a6b7db3Sskrll(dni brle "BRLE SrcReg1, SrcReg2, label" 8762a6b7db3Sskrll (BR-INSN DELAY-SLOT USES-FRSR1 USES-FRSR2) 8772a6b7db3Sskrll "brle $frsr1,$frsr2,$imm16o" 8782a6b7db3Sskrll (+ MSYS_NO OPC_BRLE IMM_YES frsr1 frsr2 imm16o) 8792a6b7db3Sskrll (sequence() 8802a6b7db3Sskrll (if (le USI frsr1 frsr2) 8812a6b7db3Sskrll (dset pc (add pc (ext SI imm16o)))) 8822a6b7db3Sskrll ) 8832a6b7db3Sskrll () 8842a6b7db3Sskrll) 8852a6b7db3Sskrll 8862a6b7db3Sskrll(dni breq "BREQ SrcReg1, SrcReg2, label" 8872a6b7db3Sskrll (BR-INSN DELAY-SLOT USES-FRSR1 USES-FRSR2) 8882a6b7db3Sskrll "breq $frsr1,$frsr2,$imm16o" 8892a6b7db3Sskrll (+ MSYS_NO OPC_BREQ IMM_YES frsr1 frsr2 imm16o) 8902a6b7db3Sskrll (sequence() 8912a6b7db3Sskrll (if (eq USI frsr1 frsr2) 8922a6b7db3Sskrll (dset pc (add pc (ext SI imm16o)))) 8932a6b7db3Sskrll ) 8942a6b7db3Sskrll () 8952a6b7db3Sskrll) 8962a6b7db3Sskrll 8972a6b7db3Sskrll(dni brne "BRNE SrcReg1, SrcReg2, label" 8982a6b7db3Sskrll (BR-INSN DELAY-SLOT USES-FRSR1 USES-FRSR2) 8992a6b7db3Sskrll "brne $frsr1,$frsr2,$imm16o" 9002a6b7db3Sskrll (+ MSYS_NO OPC_BRNEQ IMM_YES frsr1 frsr2 imm16o) 9012a6b7db3Sskrll (sequence() 9022a6b7db3Sskrll (if (not (eq USI frsr1 frsr2)) 9032a6b7db3Sskrll (dset pc (add pc (ext SI imm16o)))) 9042a6b7db3Sskrll ) 9052a6b7db3Sskrll () 9062a6b7db3Sskrll) 9072a6b7db3Sskrll 9082a6b7db3Sskrll(dni jmp "JMP, label" 9092a6b7db3Sskrll (DELAY-SLOT BR-INSN) 9102a6b7db3Sskrll "jmp $imm16o" 9112a6b7db3Sskrll (+ MSYS_NO OPC_JMP IMM_YES (f-uu4b 0) (f-uu4a 0) imm16o) 9122a6b7db3Sskrll (dset pc (add pc (ext SI imm16o))) 9132a6b7db3Sskrll () 9142a6b7db3Sskrll) 9152a6b7db3Sskrll 9162a6b7db3Sskrll(dni jal "JAL DstReg, SrcReg1" 9172a6b7db3Sskrll (BR-INSN DELAY-SLOT BR-INSN USES-FRDR USES-FRSR1 JAL-HAZARD) 9182a6b7db3Sskrll "jal $frdrrr,$frsr1" 9192a6b7db3Sskrll (+ MSYS_NO OPC_JAL IMM_NO frsr1 (f-uu4a 0) frdrrr (f-uu12 0)) 9202a6b7db3Sskrll (sequence() 9212a6b7db3Sskrll (if (eq frsr1 #x0) 9222a6b7db3Sskrll (c-call VOID "do_syscall" pc) 9232a6b7db3Sskrll (sequence() ; else part. Do non-syscall stuff here. 9242a6b7db3Sskrll (dset frdrrr (add pc #x8)) 9252a6b7db3Sskrll (dset pc frsr1) 9262a6b7db3Sskrll ) 9272a6b7db3Sskrll ) 9282a6b7db3Sskrll ) 9292a6b7db3Sskrll () 9302a6b7db3Sskrll) 9312a6b7db3Sskrll 9322a6b7db3Sskrll(dni dbnz "DBNZ SrcReg1, label" 9332a6b7db3Sskrll ((MACH ms1-003,ms2) BR-INSN DELAY-SLOT USES-FRSR1) 9342a6b7db3Sskrll "dbnz $frsr1,$imm16o" 9352a6b7db3Sskrll (+ MSYS_NO OPC_DBNZ IMM_YES frsr1 (f-uu4a 0) imm16o) 9362a6b7db3Sskrll (sequence() 9372a6b7db3Sskrll (if (not (eq USI frsr1 0)) 9382a6b7db3Sskrll (dset pc (add pc (ext SI imm16o)))) 9392a6b7db3Sskrll ) 9402a6b7db3Sskrll () 9412a6b7db3Sskrll) 9422a6b7db3Sskrll 9432a6b7db3Sskrll; Interrupt Control Instructions 9442a6b7db3Sskrll 9452a6b7db3Sskrll(dni ei "EI - Enable Interrupt Processing" 9462a6b7db3Sskrll () 9472a6b7db3Sskrll "ei" 9482a6b7db3Sskrll (+ MSYS_NO OPC_EI IMM_NO (f-uu4b 0) (f-uu4a 0) (f-uu16 0)) 9492a6b7db3Sskrll (c-call VOID "enable_interrupts") 9502a6b7db3Sskrll () 9512a6b7db3Sskrll) 9522a6b7db3Sskrll 9532a6b7db3Sskrll(dni di "DI - Disable Interrupt Processing" 9542a6b7db3Sskrll () 9552a6b7db3Sskrll "di" 9562a6b7db3Sskrll (+ MSYS_NO OPC_DI IMM_NO (f-uu4b 0) (f-uu4a 0) (f-uu16 0)) 9572a6b7db3Sskrll (c-call VOID "disable_interrupts") 9582a6b7db3Sskrll () 9592a6b7db3Sskrll) 9602a6b7db3Sskrll 9612a6b7db3Sskrll(dni si "SI - Send software Interrupt" 9622a6b7db3Sskrll (DELAY-SLOT BR-INSN USES-FRDR) 9632a6b7db3Sskrll "si $frdrrr" 9642a6b7db3Sskrll (+ MSYS_NO OPC_SI IMM_NO (f-uu4b 0) (f-uu4a 0) frdrrr (f-uu12 0)) 9652a6b7db3Sskrll ;(sequence() 9662a6b7db3Sskrll ; (dset frdr (add pc #x4)) 9672a6b7db3Sskrll ; (c-call VOID "do_syscall1" pc) 9682a6b7db3Sskrll ; ; (dset pc frsr1) Do this later when we have the address. 9692a6b7db3Sskrll ;) 9702a6b7db3Sskrll (sequence() 9712a6b7db3Sskrll (set frdrrr (add pc #x4)) 9722a6b7db3Sskrll (c-call VOID "do_syscall" pc) 9732a6b7db3Sskrll ; (set pc frsr1) Do this later when we have the address. 9742a6b7db3Sskrll ) 9752a6b7db3Sskrll () 9762a6b7db3Sskrll) 9772a6b7db3Sskrll 9782a6b7db3Sskrll(dni reti "RETI SrcReg1" 9792a6b7db3Sskrll (DELAY-SLOT BR-INSN USES-FRSR1 JAL-HAZARD) 9802a6b7db3Sskrll "reti $frsr1" 9812a6b7db3Sskrll (+ MSYS_NO OPC_RETI IMM_NO frsr1 (f-uu4a 0) (f-uu16 0)) 9822a6b7db3Sskrll (sequence() 9832a6b7db3Sskrll (c-call VOID "enable_interrupts") 9842a6b7db3Sskrll (dset pc frsr1) 9852a6b7db3Sskrll ) 9862a6b7db3Sskrll () 9872a6b7db3Sskrll) 9882a6b7db3Sskrll 9892a6b7db3Sskrll; Memory Access Instructions 9902a6b7db3Sskrll 9912a6b7db3Sskrll(dni ldw "LDW DstReg, SrcReg1, Imm" 9922a6b7db3Sskrll (LOAD-DELAY MEMORY-ACCESS USES-FRDR USES-FRSR1) 9932a6b7db3Sskrll "ldw $frdr,$frsr1,#$imm16" 9942a6b7db3Sskrll (+ MSYS_NO OPC_LDW IMM_YES frsr1 frdr imm16) 9952a6b7db3Sskrll (sequence((USI ea) (HI tmp)) 9962a6b7db3Sskrll (set HI tmp (and imm16 #xffff)) 9972a6b7db3Sskrll (set ea (and (add SI frsr1 (ext SI tmp)) #xfffffffc)) 9982a6b7db3Sskrll (set frdr (mem SI ea)) 9992a6b7db3Sskrll ) 10002a6b7db3Sskrll () 10012a6b7db3Sskrll) 10022a6b7db3Sskrll 10032a6b7db3Sskrll(dni stw "STW SrcReg2, SrcReg1, Imm" 10042a6b7db3Sskrll (MEMORY-ACCESS USES-FRSR1 USES-FRSR2) 10052a6b7db3Sskrll "stw $frsr2,$frsr1,#$imm16" 10062a6b7db3Sskrll (+ MSYS_NO OPC_STW IMM_YES frsr1 frsr2 imm16) 10072a6b7db3Sskrll (sequence((USI ea) (HI tmp)) 10082a6b7db3Sskrll (set HI tmp (and imm16 #xffff)) 10092a6b7db3Sskrll (set ea (and (add SI frsr1 (ext SI tmp)) #xfffffffc)) 10102a6b7db3Sskrll (set (mem SI ea) frsr2) 10112a6b7db3Sskrll ) 10122a6b7db3Sskrll () 10132a6b7db3Sskrll) 10142a6b7db3Sskrll 10152a6b7db3Sskrll; Break Instruction 10162a6b7db3Sskrll 10172a6b7db3Sskrll(dni break "BREAK" 10182a6b7db3Sskrll () 10192a6b7db3Sskrll "break" 10202a6b7db3Sskrll (+ MSYS_NO OPC_BREAK (f-imm 0) (f-uu24 0)) 10212a6b7db3Sskrll (c-call VOID "do_break" pc) 10222a6b7db3Sskrll () 10232a6b7db3Sskrll) 10242a6b7db3Sskrll 10252a6b7db3Sskrll; Cache Flush Instruction 10262a6b7db3Sskrll 10272a6b7db3Sskrll(dni iflush "IFLUSH" 10282a6b7db3Sskrll ((MACH ms1-003,ms2)) 10292a6b7db3Sskrll "iflush" 10302a6b7db3Sskrll (+ MSYS_NO OPC_IFLUSH (f-imm 0) (f-uu24 0)) 10312a6b7db3Sskrll (nop) 10322a6b7db3Sskrll () 10332a6b7db3Sskrll) 10342a6b7db3Sskrll 10352a6b7db3Sskrll; MorphoSys Instructions 10362a6b7db3Sskrll 10372a6b7db3Sskrll(dni ldctxt "LDCTXT SRC1, SRC2, r/c, r/c#, context#" 10382a6b7db3Sskrll ((MACH ms1)) 10392a6b7db3Sskrll "ldctxt $frsr1,$frsr2,#$rc,#$rcnum,#$contnum" 10402a6b7db3Sskrll (+ MSYS_YES MSOPC_LDCTXT (f-uu-2-25 0) frsr1 frsr2 rc rcnum (f-uu-3-11 0) 10412a6b7db3Sskrll contnum ) 10422a6b7db3Sskrll (nop) 10432a6b7db3Sskrll () 10442a6b7db3Sskrll) 10452a6b7db3Sskrll 10462a6b7db3Sskrll(dni ldfb "LDFB SRC1, byte#" 10472a6b7db3Sskrll ((MACH ms1)) 10482a6b7db3Sskrll "ldfb $frsr1,$frsr2,#$imm16z" 10492a6b7db3Sskrll (+ MSYS_YES MSOPC_LDFB (f-uu-2-25 0) frsr1 frsr2 imm16z) 10502a6b7db3Sskrll (nop) 10512a6b7db3Sskrll () 10522a6b7db3Sskrll) 10532a6b7db3Sskrll 10542a6b7db3Sskrll(dni stfb "STFB SRC1, SRC2, byte " 10552a6b7db3Sskrll ((MACH ms1)) 10562a6b7db3Sskrll "stfb $frsr1,$frsr2,#$imm16z" 10572a6b7db3Sskrll (+ MSYS_YES MSOPC_STFB (f-uu-2-25 0) frsr1 frsr2 imm16z) 10582a6b7db3Sskrll (nop) 10592a6b7db3Sskrll () 10602a6b7db3Sskrll) 10612a6b7db3Sskrll 10622a6b7db3Sskrll(dni fbcb "FBCB SRC1, RT/BR1/BR2/CS, B_all, B_r_c, r/c, CB/RB, cell, dup, ctx_disp" 10632a6b7db3Sskrll ((MACH ms1,ms1-003)) 10642a6b7db3Sskrll "fbcb $frsr1,#$rbbc,#$ball,#$brc,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 10652a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCB rbbc frsr1 ball brc (f-uu-4-15 0) rc cbrb cell dup ctxdisp) 10662a6b7db3Sskrll (nop) 10672a6b7db3Sskrll () 10682a6b7db3Sskrll) 10692a6b7db3Sskrll 10702a6b7db3Sskrll(dni mfbcb "MFBCB SRC1, RT/BR1/BR2/CS, SRC2, r/c, CB/RB, cell, dup, ctx_disp" 10712a6b7db3Sskrll () 10722a6b7db3Sskrll "mfbcb $frsr1,#$rbbc,$frsr2,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 10732a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBCB rbbc frsr1 frsr2 (f-uu-4-15 0) rc1 cbrb cell dup ctxdisp) 10742a6b7db3Sskrll (nop) 10752a6b7db3Sskrll () 10762a6b7db3Sskrll) 10772a6b7db3Sskrll 10782a6b7db3Sskrll(dni fbcci "FBCCI SRC1, RT/BR1/BR2/CS, B_all, B_r_c, FB_disp, cell, dup, ctx_disp" 10792a6b7db3Sskrll () 10802a6b7db3Sskrll "fbcci $frsr1,#$rbbc,#$ball,#$brc,#$fbdisp,#$cell,#$dup,#$ctxdisp" 10812a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCCI rbbc frsr1 ball brc fbdisp cell dup ctxdisp) 10822a6b7db3Sskrll (nop) 10832a6b7db3Sskrll () 10842a6b7db3Sskrll) 10852a6b7db3Sskrll 10862a6b7db3Sskrll(dni fbrci "FBRCI SRC1, RT/BR1/BR2/CS, B_all, B_r_c, FB_disp, cell, dup, ctx_disp" 10872a6b7db3Sskrll () 10882a6b7db3Sskrll "fbrci $frsr1,#$rbbc,#$ball,#$brc,#$fbdisp,#$cell,#$dup,#$ctxdisp" 10892a6b7db3Sskrll (+ MSYS_YES MSOPC_FBRCI rbbc frsr1 ball brc fbdisp cell dup ctxdisp) 10902a6b7db3Sskrll (nop) 10912a6b7db3Sskrll () 10922a6b7db3Sskrll) 10932a6b7db3Sskrll 10942a6b7db3Sskrll(dni fbcri "FBCRI SRC1, RT/BR1/BR2/CS, B_all, B_r_c, FB_disp, cell, dup, ctx_disp" 10952a6b7db3Sskrll () 10962a6b7db3Sskrll "fbcri $frsr1,#$rbbc,#$ball,#$brc,#$fbdisp,#$cell,#$dup,#$ctxdisp" 10972a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCRI rbbc frsr1 ball brc fbdisp cell dup ctxdisp) 10982a6b7db3Sskrll (nop) 10992a6b7db3Sskrll () 11002a6b7db3Sskrll) 11012a6b7db3Sskrll 11022a6b7db3Sskrll(dni fbrri "FBRRI SRC1, RT/BR1/BR2/CS, B_all, B_r_c, FB_disp, cell, dup, ctx_disp" 11032a6b7db3Sskrll () 11042a6b7db3Sskrll "fbrri $frsr1,#$rbbc,#$ball,#$brc,#$fbdisp,#$cell,#$dup,#$ctxdisp" 11052a6b7db3Sskrll (+ MSYS_YES MSOPC_FBRRI rbbc frsr1 ball brc fbdisp cell dup ctxdisp) 11062a6b7db3Sskrll (nop) 11072a6b7db3Sskrll () 11082a6b7db3Sskrll) 11092a6b7db3Sskrll 11102a6b7db3Sskrll(dni mfbcci "MFBCCI SRC1, RT/BR1/BR2/CS, SRC2, FB_disp, cell, dup, ctx_disp" 11112a6b7db3Sskrll () 11122a6b7db3Sskrll "mfbcci $frsr1,#$rbbc,$frsr2,#$fbdisp,#$cell,#$dup,#$ctxdisp" 11132a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBCCI rbbc frsr1 frsr2 fbdisp cell dup ctxdisp) 11142a6b7db3Sskrll (nop) 11152a6b7db3Sskrll () 11162a6b7db3Sskrll) 11172a6b7db3Sskrll 11182a6b7db3Sskrll(dni mfbrci "MFBRCI SRC1, RT/BR1/BR2/CS, SRC2, FB_disp, cell, dup, ctx_disp" 11192a6b7db3Sskrll () 11202a6b7db3Sskrll "mfbrci $frsr1,#$rbbc,$frsr2,#$fbdisp,#$cell,#$dup,#$ctxdisp" 11212a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBRCI rbbc frsr1 frsr2 fbdisp cell dup ctxdisp) 11222a6b7db3Sskrll (nop) 11232a6b7db3Sskrll () 11242a6b7db3Sskrll) 11252a6b7db3Sskrll 11262a6b7db3Sskrll(dni mfbcri "MFBCRI SRC1, RT/BR1/BR2/CS, SRC2, FB_disp, cell, dup, ctx_disp" 11272a6b7db3Sskrll () 11282a6b7db3Sskrll "mfbcri $frsr1,#$rbbc,$frsr2,#$fbdisp,#$cell,#$dup,#$ctxdisp" 11292a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBCRI rbbc frsr1 frsr2 fbdisp cell dup ctxdisp) 11302a6b7db3Sskrll (nop) 11312a6b7db3Sskrll () 11322a6b7db3Sskrll) 11332a6b7db3Sskrll 11342a6b7db3Sskrll(dni mfbrri "MFBRRI SRC1, RT/BR1/BR2/CS, SRC2, FB_disp, cell, dup, ctx_disp" 11352a6b7db3Sskrll () 11362a6b7db3Sskrll "mfbrri $frsr1,#$rbbc,$frsr2,#$fbdisp,#$cell,#$dup,#$ctxdisp" 11372a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBRRI rbbc frsr1 frsr2 fbdisp cell dup ctxdisp) 11382a6b7db3Sskrll (nop) 11392a6b7db3Sskrll () 11402a6b7db3Sskrll) 11412a6b7db3Sskrll 11422a6b7db3Sskrll(dni fbcbdr "FBCBDR SRC1, RT/BR1/BR2/CS, SRC2, B_all, B_r_c, r/c, CB/RB, cell, dup, ctx_disp" 11432a6b7db3Sskrll () 11442a6b7db3Sskrll "fbcbdr $frsr1,#$rbbc,$frsr2,#$ball2,#$brc2,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 11452a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCBDR rbbc frsr1 frsr2 ball2 brc2 rc1 cbrb cell dup ctxdisp) 11462a6b7db3Sskrll (nop) 11472a6b7db3Sskrll () 11482a6b7db3Sskrll) 11492a6b7db3Sskrll 11502a6b7db3Sskrll(dni rcfbcb "RCFBCB RT/BR1/BR2/CS, type, B_all, B_r_c, row#, r/c, CB/RB, cell, dup, ctx_disp" 11512a6b7db3Sskrll () 11522a6b7db3Sskrll "rcfbcb #$rbbc,#$type,#$ball,#$brc,#$rownum,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 11532a6b7db3Sskrll (+ MSYS_YES MSOPC_RCFBCB rbbc (f-uu-2-23 0) type ball brc (f-uu-1-15 0) rownum rc1 cbrb cell dup ctxdisp) 11542a6b7db3Sskrll (nop) 11552a6b7db3Sskrll () 11562a6b7db3Sskrll) 11572a6b7db3Sskrll 11582a6b7db3Sskrll(dni mrcfbcb "MRCFBCB SRC2, RT/BR1/BR2/CS, type, row#, r/c, CB/RB, cell, dup, ctx_disp" 11592a6b7db3Sskrll () 11602a6b7db3Sskrll "mrcfbcb $frsr2,#$rbbc,#$type,#$rownum,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 11612a6b7db3Sskrll (+ MSYS_YES MSOPC_MRCFBCB rbbc (f-uu-2-23 0) type frsr2 (f-uu-1-15 0) rownum rc1 cbrb cell dup ctxdisp) 11622a6b7db3Sskrll (nop) 11632a6b7db3Sskrll () 11642a6b7db3Sskrll) 11652a6b7db3Sskrll 11662a6b7db3Sskrll(dni cbcast "CBCAST mask, r/c, ctx_disp " 11672a6b7db3Sskrll () 11682a6b7db3Sskrll "cbcast #$mask,#$rc2,#$ctxdisp" 11692a6b7db3Sskrll (+ MSYS_YES MSOPC_CBCAST mask (f-uu-3-9 0) rc2 ctxdisp) 11702a6b7db3Sskrll (nop) 11712a6b7db3Sskrll () 11722a6b7db3Sskrll) 11732a6b7db3Sskrll 11742a6b7db3Sskrll(dni dupcbcast "DUPCBCAST mask, cell, r/c, ctx_disp " 11752a6b7db3Sskrll () 11762a6b7db3Sskrll "dupcbcast #$mask,#$cell,#$rc2,#$ctxdisp" 11772a6b7db3Sskrll (+ MSYS_YES MSOPC_DUPCBCAST mask cell rc2 ctxdisp) 11782a6b7db3Sskrll (nop) 11792a6b7db3Sskrll () 11802a6b7db3Sskrll) 11812a6b7db3Sskrll 11822a6b7db3Sskrll(dni wfbi "WFBI Bank_address, row#, cell, dup, ctx_disp " 11832a6b7db3Sskrll () 11842a6b7db3Sskrll "wfbi #$bankaddr,#$rownum1,#$cell,#$dup,#$ctxdisp" 11852a6b7db3Sskrll (+ MSYS_YES MSOPC_WFBI bankaddr rownum1 cell dup ctxdisp) 11862a6b7db3Sskrll (nop) 11872a6b7db3Sskrll () 11882a6b7db3Sskrll) 11892a6b7db3Sskrll 11902a6b7db3Sskrll;(dni wfb "WFB SRC1, SRC2, FB_disp, row#, ctx_disp" 11912a6b7db3Sskrll; () 11922a6b7db3Sskrll; "wfb $frsr1,$frsr2,#$fbdisp,#$rownum,#$ctxdisp" 11932a6b7db3Sskrll; (+ MSYS_YES MSOPC_WFB (f-uu-2-25 0) frsr1 frsr2 fbdisp rownum (f-uu-1-6 0) ctxdisp) 11942a6b7db3Sskrll; (nop) 11952a6b7db3Sskrll; () 11962a6b7db3Sskrll;) 11972a6b7db3Sskrll 11982a6b7db3Sskrll(dni wfb "WFB, DRC1,SRC2,FB_disp,row#,ctx_disp" 11992a6b7db3Sskrll () 12002a6b7db3Sskrll "wfb $frsr1,$frsr2,#$fbdisp,#$rownum2,#$ctxdisp" 12012a6b7db3Sskrll (+ MSYS_YES MSOPC_WFB (f-uu-2-25 0) frsr1 frsr2 fbdisp rownum2 (f-uu-1-6 0) ctxdisp) 12022a6b7db3Sskrll (nop) 12032a6b7db3Sskrll () 12042a6b7db3Sskrll) 12052a6b7db3Sskrll 12062a6b7db3Sskrll 12072a6b7db3Sskrll(dni rcrisc "RCRISC DEST, RT/BR1/BR2/CS, SRC1, column#, r/c, CB/RB, cell, dup, ctx_disp" 12082a6b7db3Sskrll () 12092a6b7db3Sskrll "rcrisc $frdrrr,#$rbbc,$frsr1,#$colnum,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 12102a6b7db3Sskrll (+ MSYS_YES MSOPC_RCRISC rbbc frsr1 (f-uu-1-19 0) colnum frdrrr rc1 cbrb cell dup ctxdisp) 12112a6b7db3Sskrll (nop) 12122a6b7db3Sskrll () 12132a6b7db3Sskrll) 12142a6b7db3Sskrll 12152a6b7db3Sskrll(dni fbcbinc "FBCBINC SRC1, RT/BR1/BR2/CS, Incr_amount, r/c, CB/RB, cell, dup, ctx_disp " 12162a6b7db3Sskrll () 12172a6b7db3Sskrll "fbcbinc $frsr1,#$rbbc,#$incamt,#$rc1,#$cbrb,#$cell,#$dup,#$ctxdisp" 12182a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCBINC rbbc frsr1 incamt rc1 cbrb cell dup ctxdisp) 12192a6b7db3Sskrll (nop) 12202a6b7db3Sskrll () 12212a6b7db3Sskrll) 12222a6b7db3Sskrll 12232a6b7db3Sskrll(dni rcxmode "RCXMODE SRC2, rd, wr, xmode, mask, FB_disp, row#, r/c, ctx_disp" 12242a6b7db3Sskrll () 12252a6b7db3Sskrll "rcxmode $frsr2,#$rda,#$wr,#$xmode,#$mask1,#$fbdisp,#$rownum2,#$rc2,#$ctxdisp" 12262a6b7db3Sskrll (+ MSYS_YES MSOPC_RCXMODE rda wr xmode mask1 frsr2 fbdisp rownum2 rc2 ctxdisp) 12272a6b7db3Sskrll (nop) 12282a6b7db3Sskrll () 12292a6b7db3Sskrll) 12302a6b7db3Sskrll 12312a6b7db3Sskrll(dni interleaver "INTLVR ireg, mode, ireg, i/d, size" 12322a6b7db3Sskrll () 12332a6b7db3Sskrll "intlvr $frsr1,#$mode,$frsr2,#$id,#$size" 12342a6b7db3Sskrll (+ MSYS_YES MSOPC_INTLVR mode frsr1 frsr2 (f-uu-1-15 0) id size) 12352a6b7db3Sskrll (nop) 12362a6b7db3Sskrll () 12372a6b7db3Sskrll) 12382a6b7db3Sskrll 12392a6b7db3Sskrll;; Issue 66262: The documenatation gives the wrong order for 12402a6b7db3Sskrll;; the arguments to the WFBINC instruction. 12412a6b7db3Sskrll(dni wfbinc "WFBINC type, ccb/rcb, incr, all, c/r, length, rca_row, word, dup, ctxt_disp" 12422a6b7db3Sskrll ((MACH ms1-003,ms2)) 12432a6b7db3Sskrll "wfbinc #$rda,#$wr,#$fbincr,#$ball,#$colnum,#$length,#$rownum1,#$rownum2,#$dup,#$ctxdisp" 12442a6b7db3Sskrll (+ MSYS_YES MSOPC_WFBINC rda wr fbincr ball colnum length rownum1 rownum2 dup ctxdisp) 12452a6b7db3Sskrll (nop) 12462a6b7db3Sskrll () 12472a6b7db3Sskrll) 12482a6b7db3Sskrll 12492a6b7db3Sskrll(dni mwfbinc "MWFBINC mreg, type, ccb/rcb, incr, length, rca_row, word, dup, ctxt_disp" 12502a6b7db3Sskrll ((MACH ms1-003,ms2)) 12512a6b7db3Sskrll "mwfbinc $frsr2,#$rda,#$wr,#$fbincr,#$length,#$rownum1,#$rownum2,#$dup,#$ctxdisp" 12522a6b7db3Sskrll (+ MSYS_YES MSOPC_MWFBINC rda wr fbincr frsr2 length rownum1 rownum2 dup ctxdisp) 12532a6b7db3Sskrll (nop) 12542a6b7db3Sskrll () 12552a6b7db3Sskrll) 12562a6b7db3Sskrll 12572a6b7db3Sskrll(dni wfbincr "WFBINCR ireg, type, ccb/rcb, all, c/r, length, rca_row, word, dup, ctxt_disp" 12582a6b7db3Sskrll ((MACH ms1-003,ms2)) 12592a6b7db3Sskrll "wfbincr $frsr1,#$rda,#$wr,#$ball,#$colnum,#$length,#$rownum1,#$rownum2,#$dup,#$ctxdisp" 12602a6b7db3Sskrll (+ MSYS_YES MSOPC_WFBINCR rda wr frsr1 ball colnum length rownum1 rownum2 dup ctxdisp) 12612a6b7db3Sskrll (nop) 12622a6b7db3Sskrll () 12632a6b7db3Sskrll) 12642a6b7db3Sskrll 12652a6b7db3Sskrll(dni mwfbincr "MWFBINCR ireg, mreg, type, ccb/rcb, length, rca_row, word, dup, ctxt_disp" 12662a6b7db3Sskrll ((MACH ms1-003,ms2)) 12672a6b7db3Sskrll "mwfbincr $frsr1,$frsr2,#$rda,#$wr,#$length,#$rownum1,#$rownum2,#$dup,#$ctxdisp" 12682a6b7db3Sskrll (+ MSYS_YES MSOPC_MWFBINCR rda wr frsr1 frsr2 length rownum1 rownum2 dup ctxdisp) 12692a6b7db3Sskrll (nop) 12702a6b7db3Sskrll () 12712a6b7db3Sskrll) 12722a6b7db3Sskrll 12732a6b7db3Sskrll(dni fbcbincs "FBCBINCS perm, all, c/r, cbs, incr, ccb/rcb, cdb/rdb, word, dup, ctxt_disp" 12742a6b7db3Sskrll ((MACH ms1-003,ms2)) 12752a6b7db3Sskrll "fbcbincs #$perm,#$a23,#$cr,#$cbs,#$incr,#$ccb,#$cdb,#$rownum2,#$dup,#$ctxdisp" 12762a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCBINCS perm a23 cr cbs incr ccb cdb rownum2 dup ctxdisp) 12772a6b7db3Sskrll (nop) 12782a6b7db3Sskrll () 12792a6b7db3Sskrll) 12802a6b7db3Sskrll 12812a6b7db3Sskrll(dni mfbcbincs "MFBCBINCS ireg, perm, cbs, incr, ccb/rcb, cdb/rdb, word, dup, ctxt_disp" 12822a6b7db3Sskrll ((MACH ms1-003,ms2)) 12832a6b7db3Sskrll "mfbcbincs $frsr1,#$perm,#$cbs,#$incr,#$ccb,#$cdb,#$rownum2,#$dup,#$ctxdisp" 12842a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBCBINCS perm frsr1 cbs incr ccb cdb rownum2 dup ctxdisp) 12852a6b7db3Sskrll (nop) 12862a6b7db3Sskrll () 12872a6b7db3Sskrll) 12882a6b7db3Sskrll 12892a6b7db3Sskrll(dni fbcbincrs "FBCBINCRS ireg, perm, all, c/r, cbs, ccb/rcb, cdb/rdb, word, dup, ctxt_disp" 12902a6b7db3Sskrll ((MACH ms1-003,ms2)) 12912a6b7db3Sskrll "fbcbincrs $frsr1,#$perm,#$ball,#$colnum,#$cbx,#$ccb,#$cdb,#$rownum2,#$dup,#$ctxdisp" 12922a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCBINCRS perm frsr1 ball colnum (f-uu-1-15 0) cbx ccb cdb rownum2 dup ctxdisp) 12932a6b7db3Sskrll (nop) 12942a6b7db3Sskrll () 12952a6b7db3Sskrll) 12962a6b7db3Sskrll 12972a6b7db3Sskrll(dni mfbcbincrs "MFBCBINCRS ireg, mreg, perm, cbs, ccb/rcb, cdb/rdb, word, dup, ctxt_disp" 12982a6b7db3Sskrll ((MACH ms1-003,ms2)) 12992a6b7db3Sskrll "mfbcbincrs $frsr1,$frsr2,#$perm,#$cbx,#$ccb,#$cdb,#$rownum2,#$dup,#$ctxdisp" 13002a6b7db3Sskrll (+ MSYS_YES MSOPC_MFBCBINCRS perm frsr1 frsr2 (f-uu-1-15 0) cbx ccb cdb rownum2 dup ctxdisp) 13012a6b7db3Sskrll (nop) 13022a6b7db3Sskrll () 13032a6b7db3Sskrll) 13042a6b7db3Sskrll 13052a6b7db3Sskrll; MS2 instructions 13062a6b7db3Sskrll(dni loop "LOOP SrcReg1, label" 13072a6b7db3Sskrll ((MACH ms2) DELAY-SLOT USES-FRSR1) 13082a6b7db3Sskrll "loop $frsr1,$loopsize" 13092a6b7db3Sskrll (+ MSYS_NO OPC_LOOP IMM_NO frsr1 (f-uu4a 0) (f-uu8 0) loopsize) 13102a6b7db3Sskrll (nop) ;; to be filled in 13112a6b7db3Sskrll () 13122a6b7db3Sskrll) 13132a6b7db3Sskrll 13142a6b7db3Sskrll(dni loopi "LOOPI niter, label" 13152a6b7db3Sskrll ((MACH ms2) DELAY-SLOT) 13162a6b7db3Sskrll "loopi #$imm16l,$loopsize" 13172a6b7db3Sskrll (+ MSYS_NO OPC_LOOP IMM_YES imm16l loopsize) 13182a6b7db3Sskrll (nop) ;; to be filled in 13192a6b7db3Sskrll () 13202a6b7db3Sskrll) 13212a6b7db3Sskrll 13222a6b7db3Sskrll(dni dfbc "dfbc cb1sel,cb2sel,cb1inc,cb2inc,dr/c,cr/c,ctxdisp" 13232a6b7db3Sskrll ((MACH ms2)) 13242a6b7db3Sskrll "dfbc #$cb1sel,#$cb2sel,#$cb1incr,#$cb2incr,#$rc3,#$rc2,#$ctxdisp" 13252a6b7db3Sskrll (+ MSYS_YES MSOPC_LDCTXT cb1sel cb2sel cb1incr cb2incr rc3 rc2 ctxdisp) 13262a6b7db3Sskrll (nop) 13272a6b7db3Sskrll () 13282a6b7db3Sskrll) 13292a6b7db3Sskrll 13302a6b7db3Sskrll(dni dwfb "dwfb cb1sel,cb2sel,cb1inc,cb2inc,cr/c,ctxdisp" 13312a6b7db3Sskrll ((MACH ms2)) 13322a6b7db3Sskrll "dwfb #$cb1sel,#$cb2sel,#$cb1incr,#$cb2incr,#$rc2,#$ctxdisp" 13332a6b7db3Sskrll (+ MSYS_YES MSOPC_LDFB cb1sel cb2sel cb1incr cb2incr (f-uu1 0) rc2 ctxdisp) 13342a6b7db3Sskrll (nop) 13352a6b7db3Sskrll () 13362a6b7db3Sskrll) 13372a6b7db3Sskrll 13382a6b7db3Sskrll(dni fbwfb "fbwfb cb1sel,cb2sel,cb1inc,cb2inc,r0/1,cr/c,ctxdisp" 13392a6b7db3Sskrll ((MACH ms2)) 13402a6b7db3Sskrll "fbwfb #$cb1sel,#$cb2sel,#$cb1incr,#$cb2incr,#$rc3,#$rc2,#$ctxdisp" 13412a6b7db3Sskrll (+ MSYS_YES MSOPC_STFB cb1sel cb2sel cb1incr cb2incr rc3 rc2 ctxdisp) 13422a6b7db3Sskrll (nop) 13432a6b7db3Sskrll () 13442a6b7db3Sskrll) 13452a6b7db3Sskrll 13462a6b7db3Sskrll(dni dfbr "dfbr cb1sel,cb2sel,reg,W/O1,W/O2,mode,cr/c,ctxdisp" 13472a6b7db3Sskrll ((MACH ms2) USES-FRSR2) 13482a6b7db3Sskrll "dfbr #$cb1sel,#$cb2sel,$frsr2,#$length,#$rownum1,#$rownum2,#$rc2,#$ctxdisp" 13492a6b7db3Sskrll (+ MSYS_YES MSOPC_FBCB cb1sel cb2sel frsr2 length rownum1 rownum2 rc2 ctxdisp) 13502a6b7db3Sskrll (nop) 13512a6b7db3Sskrll () 13522a6b7db3Sskrll) 1353