Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /* SPU ELF support for BFD.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)    Copyright 2006 Free Software Foundation, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)    This file is part of BFD, the Binary File Descriptor library.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) /* SPU Opcode Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) -=-=-= FORMAT =-=-=-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)                                              		                                             
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)        +----+-------+-------+-------+-------+  		       +------------+-------+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) RRR    | op |  RC   |  RB   |  RA   |  RT   |		RI7    | op         |  I7   |  RA   |  RT   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)        +----+-------+-------+-------+-------+		       +------------+-------+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)         0  3       1       1       2       3		        0          1       1       2       3 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)                    0       7       4       1		                   0       7       4       1 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)        +-----------+--------+-------+-------+		       +---------+----------+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) RI8    | op        |   I8   |  RA   |  RT   |		RI10   | op      |   I10    |  RA   |  RT   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)        +-----------+--------+-------+-------+		       +---------+----------+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)         0         9        1       2       3		        0       7          1       2       3 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)                            7       4       1		                           7       4       1 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)        +----------+-----------------+-------+		       +--------+-------------------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) RI16   | op       |       I16       |  RT   |		RI18   | op     |       I18         |  RT   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)        +----------+-----------------+-------+		       +--------+-------------------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)         0        8                 2       3		        0      6                   2       3 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)                                    4       1		                                   4       1 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)        +------------+-------+-------+-------+		       +-------+--+-----------------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) RR     | op         |  RB   |  RA   |  RT   |		LBT    | op    |RO|       I16       |  RO   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)        +------------+-------+-------+-------+		       +-------+--+-----------------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)         0          1       1       2       3		        0     6  8                 2       3 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)                    0       7       4       1		                                   4       1 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 							       +------------+----+--+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 							LBTI   | op         | // |RO|  RA   |  RO   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 							       +------------+----+--+-------+-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 							        0          1    1  1       2       3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 							                   0    5  7       4       1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) -=-=-= OPCODE =-=-=-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) OPCODE field specifies the most significant 11bit of the instruction. Some formats don't have 11bits for opcode field, and in this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) case, bit field other than op are defined as 0s. For example, opcode of fma instruction which is RRR format is defined as 0x700,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) since 0x700 -> 11'b11100000000, this means opcode is 4'b1110, and other 7bits are defined as 7'b0000000.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) -=-=-= ASM_FORMAT =-=-=-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) RRR category						RI7 category                               
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	ASM_RRR		mnemonic RC, RA, RB, RT		        ASM_RI4         mnemonic RT, RA, I4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 							        ASM_RI7         mnemonic RT, RA, I7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) RI8 category						RI10 category                               
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	ASM_RUI8	mnemonic RT, RA, UI8		        ASM_AI10        mnemonic RA, I10    
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 							        ASM_RI10        mnemonic RT, RA, R10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 							        ASM_RI10IDX     mnemonic RT, I10(RA)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) RI16 category						RI18 category                           
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	ASM_I16W	mnemonic I16W			        ASM_RI18        mnemonic RT, I18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	ASM_RI16	mnemonic RT, I16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	ASM_RI16W	mnemonic RT, I16W
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) RR category						LBT category                                    
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	ASM_MFSPR	mnemonic RT, SA			        ASM_LBT         mnemonic brinst, brtarg 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	ASM_MTSPR	mnemonic SA, RT			                                                
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	ASM_NOOP	mnemonic			LBTI category                                   
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	ASM_RA		mnemonic RA			        ASM_LBTI        mnemonic brinst, RA     
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	ASM_RAB		mnemonic RA, RB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	ASM_RDCH	mnemonic RT, CA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	ASM_RR		mnemonic RT, RA, RB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	ASM_RT		mnemonic RT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	ASM_RTA		mnemonic RT, RA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	ASM_WRCH	mnemonic CA, RT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) Note that RRR instructions have the names for RC and RT reversed from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) what's in the ISA, in order to put RT in the same position it appears
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) for other formats.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) -=-=-= DEPENDENCY =-=-=-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) DEPENDENCY filed consists of 5 digits. This represents which register is used as source and which register is used as target.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) The first(most significant) digit is always 0. Then it is followd by RC, RB, RA and RT digits.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) If the digit is 0, this means the corresponding register is not used in the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) If the digit is 1, this means the corresponding register is used as a source in the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) If the digit is 2, this means the corresponding register is used as a target in the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) If the digit is 3, this means the corresponding register is used as both source and target in the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) For example, fms instruction has 00113 as the DEPENDENCY field. This means RC is not used in this operation, RB and RA are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) used as sources and RT is the target.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) -=-=-= PIPE =-=-=-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) This field shows which execution pipe is used for the instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) pipe0 execution pipelines:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	FP6	SP floating pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	FP7	integer operations executed in SP floating pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	FPD	DP floating pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	FX2	FXU pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	FX3	Rotate/Shift pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	FXB	Byte pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	NOP	No pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) pipe1 execution pipelines:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	BR	Branch pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	LNOP	No pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	LS	Load/Store pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	SHUF	Shuffle pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	SPR	SPR/CH pipeline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define _A0() {0}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #define _A1(a) {1,a}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define _A2(a,b) {2,a,b}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define _A3(a,b,c) {3,a,b,c}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define _A4(a,b,c,d) {4,a,b,c,d}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) /*    TAG		FORMAT	OPCODE	MNEMONIC	ASM_FORMAT	DEPENDENCY	PIPE	COMMENT				*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) /*									0[RC][RB][RA][RT]					*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) /*									1:src, 2:target						*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) APUOP(M_BR,		RI16,	0x190,	"br",		_A1(A_R18),	00000,	BR)	/* BRel          IP<-IP+I16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) APUOP(M_BRSL,		RI16,	0x198,	"brsl",		_A2(A_T,A_R18),	00002,	BR)	/* BRelSetLink   RT,IP<-IP,IP+I16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) APUOP(M_BRA,		RI16,	0x180,	"bra",		_A1(A_S18),	00000,	BR)	/* BRAbs         IP<-I16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) APUOP(M_BRASL,		RI16,	0x188,	"brasl",	_A2(A_T,A_S18),	00002,	BR)	/* BRAbsSetLink  RT,IP<-IP,I16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) APUOP(M_FSMBI,		RI16,	0x194,	"fsmbi",	_A2(A_T,A_X16),	00002,	SHUF)	/* FormSelMask%I RT<-fsm(I16) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) APUOP(M_LQA,		RI16,	0x184,	"lqa",		_A2(A_T,A_S18),	00002,	LS)	/* LoadQAbs      RT<-M[I16] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) APUOP(M_LQR,		RI16,	0x19C,	"lqr",		_A2(A_T,A_R18),	00002,	LS)	/* LoadQRel      RT<-M[IP+I16] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) APUOP(M_STOP,		RR,	0x000,	"stop",		_A0(),		00000,	BR)	/* STOP          stop */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) APUOP(M_STOP2,		RR,	0x000,	"stop",		_A1(A_U14),	00000,	BR)	/* STOP          stop */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) APUOP(M_STOPD,		RR,	0x140,	"stopd",	_A3(A_T,A_A,A_B),         00111,	BR)	/* STOPD         stop (with register dependencies) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) APUOP(M_LNOP,		RR,	0x001,	"lnop",		_A0(),		00000,	LNOP)	/* LNOP          no_operation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) APUOP(M_SYNC,		RR,	0x002,	"sync",		_A0(),		00000,	BR)	/* SYNC          flush_pipe */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) APUOP(M_DSYNC,		RR,	0x003,	"dsync",	_A0(),		00000,	BR)	/* DSYNC         flush_store_queue */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) APUOP(M_MFSPR,		RR,	0x00c,	"mfspr",	_A2(A_T,A_S),	00002,	SPR)	/* MFSPR         RT<-SA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) APUOP(M_RDCH,		RR,	0x00d,	"rdch",		_A2(A_T,A_H),	00002,	SPR)	/* ReaDCHannel   RT<-CA:data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) APUOP(M_RCHCNT,		RR,	0x00f,	"rchcnt",	_A2(A_T,A_H),	00002,	SPR)	/* ReaDCHanCouNT RT<-CA:count */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) APUOP(M_HBRA,		LBT,	0x080,	"hbra",		_A2(A_S11,A_S18),	00000,	LS)	/* HBRA          BTB[B9]<-M[I16] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) APUOP(M_HBRR,		LBT,	0x090,	"hbrr",		_A2(A_S11,A_R18),	00000,	LS)	/* HBRR          BTB[B9]<-M[IP+I16] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) APUOP(M_BRZ,		RI16,	0x100,	"brz",		_A2(A_T,A_R18),	00001,	BR)	/* BRZ           IP<-IP+I16_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) APUOP(M_BRNZ,		RI16,	0x108,	"brnz",		_A2(A_T,A_R18),	00001,	BR)	/* BRNZ          IP<-IP+I16_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) APUOP(M_BRHZ,		RI16,	0x110,	"brhz",		_A2(A_T,A_R18),	00001,	BR)	/* BRHZ          IP<-IP+I16_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) APUOP(M_BRHNZ,		RI16,	0x118,	"brhnz",	_A2(A_T,A_R18),	00001,	BR)	/* BRHNZ         IP<-IP+I16_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) APUOP(M_STQA,		RI16,	0x104,	"stqa",		_A2(A_T,A_S18),	00001,	LS)	/* SToreQAbs     M[I16]<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) APUOP(M_STQR,		RI16,	0x11C,	"stqr",		_A2(A_T,A_R18),	00001,	LS)	/* SToreQRel     M[IP+I16]<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) APUOP(M_MTSPR,		RR,	0x10c,	"mtspr",	_A2(A_S,A_T),	00001,	SPR)	/* MTSPR         SA<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) APUOP(M_WRCH,		RR,	0x10d,	"wrch",		_A2(A_H,A_T),	00001,	SPR)	/* ChanWRite     CA<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) APUOP(M_LQD,		RI10,	0x1a0,	"lqd",		_A4(A_T,A_S14,A_P,A_A),	00012,	LS)	/* LoadQDisp     RT<-M[Ra+I10] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) APUOP(M_BI,		RR,	0x1a8,	"bi",		_A1(A_A),		00010,	BR)	/* BI            IP<-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) APUOP(M_BISL,		RR,	0x1a9,	"bisl",		_A2(A_T,A_A),	00012,	BR)	/* BISL          RT,IP<-IP,RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) APUOP(M_IRET,  		RR,	0x1aa,	"iret",	        _A1(A_A), 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) APUOP(M_IRET2, 		RR,	0x1aa,	"iret",	        _A0(),	 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) APUOP(M_BISLED,		RR,	0x1ab,	"bisled",	_A2(A_T,A_A),	00012,	BR)	/* BISLED        RT,IP<-IP,RA_if(ext) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) APUOP(M_HBR,		LBTI,	0x1ac,	"hbr",		_A2(A_S11I,A_A),	00010,	LS)	/* HBR           BTB[B9]<-M[Ra] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) APUOP(M_FREST,		RR,	0x1b8,	"frest",	_A2(A_T,A_A),	00012,	SHUF)	/* FREST         RT<-recip(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) APUOP(M_FRSQEST,	RR,	0x1b9,	"frsqest",	_A2(A_T,A_A),	00012,	SHUF)	/* FRSQEST       RT<-rsqrt(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) APUOP(M_FSM,		RR,	0x1b4,	"fsm",		_A2(A_T,A_A),	00012,	SHUF)	/* FormSelMask%  RT<-expand(Ra) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) APUOP(M_FSMH,		RR,	0x1b5,	"fsmh",		_A2(A_T,A_A),	00012,	SHUF)	/* FormSelMask%  RT<-expand(Ra) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) APUOP(M_FSMB,		RR,	0x1b6,	"fsmb",		_A2(A_T,A_A),	00012,	SHUF)	/* FormSelMask%  RT<-expand(Ra) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) APUOP(M_GB,		RR,	0x1b0,	"gb",		_A2(A_T,A_A),	00012,	SHUF)	/* GatherBits%   RT<-gather(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) APUOP(M_GBH,		RR,	0x1b1,	"gbh",		_A2(A_T,A_A),	00012,	SHUF)	/* GatherBits%   RT<-gather(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) APUOP(M_GBB,		RR,	0x1b2,	"gbb",		_A2(A_T,A_A),	00012,	SHUF)	/* GatherBits%   RT<-gather(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) APUOP(M_CBD,		RI7,	0x1f4,	"cbd",		_A4(A_T,A_U7,A_P,A_A),	00012,	SHUF)	/* genCtl%%insD  RT<-sta(Ra+I4,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) APUOP(M_CHD,		RI7,	0x1f5,	"chd",		_A4(A_T,A_U7,A_P,A_A),	00012,	SHUF)	/* genCtl%%insD  RT<-sta(Ra+I4,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) APUOP(M_CWD,		RI7,	0x1f6,	"cwd",		_A4(A_T,A_U7,A_P,A_A),	00012,	SHUF)	/* genCtl%%insD  RT<-sta(Ra+I4,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) APUOP(M_CDD,		RI7,	0x1f7,	"cdd",		_A4(A_T,A_U7,A_P,A_A),	00012,	SHUF)	/* genCtl%%insD  RT<-sta(Ra+I4,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) APUOP(M_ROTQBII,	RI7,	0x1f8,	"rotqbii",	_A3(A_T,A_A,A_U3),	00012,	SHUF)	/* ROTQBII       RT<-RA<<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) APUOP(M_ROTQBYI,	RI7,	0x1fc,	"rotqbyi",	_A3(A_T,A_A,A_S7N),	00012,	SHUF)	/* ROTQBYI       RT<-RA<<<(I7*8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) APUOP(M_ROTQMBII,	RI7,	0x1f9,	"rotqmbii",	_A3(A_T,A_A,A_S3),	00012,	SHUF)	/* ROTQMBII      RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) APUOP(M_ROTQMBYI,	RI7,	0x1fd,	"rotqmbyi",	_A3(A_T,A_A,A_S6),	00012,	SHUF)	/* ROTQMBYI      RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) APUOP(M_SHLQBII,	RI7,	0x1fb,	"shlqbii",	_A3(A_T,A_A,A_U3),	00012,	SHUF)	/* SHLQBII       RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) APUOP(M_SHLQBYI,	RI7,	0x1ff,	"shlqbyi",	_A3(A_T,A_A,A_U5),	00012,	SHUF)	/* SHLQBYI       RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) APUOP(M_STQD,		RI10,	0x120,	"stqd",		_A4(A_T,A_S14,A_P,A_A),	00011,	LS)	/* SToreQDisp    M[Ra+I10]<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) APUOP(M_BIHNZ,		RR,	0x12b,	"bihnz",	_A2(A_T,A_A),	00011,	BR)	/* BIHNZ         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) APUOP(M_BIHZ,		RR,	0x12a,	"bihz",		_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) APUOP(M_BINZ,		RR,	0x129,	"binz",		_A2(A_T,A_A),	00011,	BR)	/* BINZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) APUOP(M_BIZ,		RR,	0x128,	"biz",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) APUOP(M_CBX,		RR,	0x1d4,	"cbx",		_A3(A_T,A_A,A_B),		00112,	SHUF)	/* genCtl%%insX  RT<-sta(Ra+Rb,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) APUOP(M_CHX,		RR,	0x1d5,	"chx",		_A3(A_T,A_A,A_B),		00112,	SHUF)	/* genCtl%%insX  RT<-sta(Ra+Rb,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) APUOP(M_CWX,		RR,	0x1d6,	"cwx",		_A3(A_T,A_A,A_B),		00112,	SHUF)	/* genCtl%%insX  RT<-sta(Ra+Rb,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) APUOP(M_CDX,		RR,	0x1d7,	"cdx",		_A3(A_T,A_A,A_B),		00112,	SHUF)	/* genCtl%%insX  RT<-sta(Ra+Rb,siz) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) APUOP(M_LQX,		RR,	0x1c4,	"lqx",		_A3(A_T,A_A,A_B),		00112,	LS)	/* LoadQindeX    RT<-M[Ra+Rb] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) APUOP(M_ROTQBI,		RR,	0x1d8,	"rotqbi",	_A3(A_T,A_A,A_B),		00112,	SHUF)	/* ROTQBI        RT<-RA<<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) APUOP(M_ROTQMBI,	RR,	0x1d9,	"rotqmbi",	_A3(A_T,A_A,A_B),		00112,	SHUF)	/* ROTQMBI       RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) APUOP(M_SHLQBI,		RR,	0x1db,	"shlqbi",	_A3(A_T,A_A,A_B),		00112,	SHUF)	/* SHLQBI        RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) APUOP(M_ROTQBY,		RR,	0x1dc,	"rotqby",	_A3(A_T,A_A,A_B),		00112,		SHUF)	/* ROTQBY        RT<-RA<<<(Rb*8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) APUOP(M_ROTQMBY,	RR,	0x1dd,	"rotqmby",	_A3(A_T,A_A,A_B),		00112,		SHUF)	/* ROTQMBY       RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) APUOP(M_SHLQBY,		RR,	0x1df,	"shlqby",	_A3(A_T,A_A,A_B),		00112,	SHUF)	/* SHLQBY        RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) APUOP(M_ROTQBYBI,	RR,	0x1cc,	"rotqbybi",	_A3(A_T,A_A,A_B),		00112,		SHUF)	/* ROTQBYBI      RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) APUOP(M_ROTQMBYBI,	RR,	0x1cd,	"rotqmbybi",	_A3(A_T,A_A,A_B),		00112,		SHUF)	/* ROTQMBYBI     RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) APUOP(M_SHLQBYBI,	RR,	0x1cf,	"shlqbybi",	_A3(A_T,A_A,A_B),		00112,	SHUF)	/* SHLQBYBI      RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) APUOP(M_STQX,		RR,	0x144,	"stqx",		_A3(A_T,A_A,A_B),		00111,	LS)	/* SToreQindeX   M[Ra+Rb]<-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) APUOP(M_SHUFB,		RRR,	0x580,	"shufb",	_A4(A_C,A_A,A_B,A_T),	02111,	SHUF)	/* SHUFfleBytes  RC<-f(RA,RB,RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) APUOP(M_IL,		RI16,	0x204,	"il",		_A2(A_T,A_S16),	00002,	FX2)	/* ImmLoad       RT<-sxt(I16) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) APUOP(M_ILH,		RI16,	0x20c,	"ilh",		_A2(A_T,A_X16),	00002,	FX2)	/* ImmLoadH      RT<-I16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) APUOP(M_ILHU,		RI16,	0x208,	"ilhu",		_A2(A_T,A_X16),	00002,	FX2)	/* ImmLoadHUpper RT<-I16<<16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) APUOP(M_ILA,		RI18,	0x210,	"ila",		_A2(A_T,A_U18),	00002,	FX2)	/* ImmLoadAddr   RT<-zxt(I18) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) APUOP(M_NOP,		RR,	0x201,	"nop",		_A1(A_T),		00000,	NOP)	/* XNOP          no_operation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) APUOP(M_NOP2,		RR,	0x201,	"nop",		_A0(),		00000,	NOP)	/* XNOP          no_operation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) APUOP(M_IOHL,		RI16,	0x304,	"iohl",		_A2(A_T,A_X16),	00003,	FX2)	/* AddImmeXt     RT<-RT+sxt(I16) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) APUOP(M_ANDBI,		RI10,	0x0b0,	"andbi",	_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* AND%I         RT<-RA&I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) APUOP(M_ANDHI,		RI10,	0x0a8,	"andhi",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* AND%I         RT<-RA&I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) APUOP(M_ANDI,		RI10,	0x0a0,	"andi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* AND%I         RT<-RA&I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) APUOP(M_ORBI,		RI10,	0x030,	"orbi",		_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* OR%I          RT<-RA|I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) APUOP(M_ORHI,		RI10,	0x028,	"orhi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* OR%I          RT<-RA|I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) APUOP(M_ORI,		RI10,	0x020,	"ori",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* OR%I          RT<-RA|I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) APUOP(M_ORX,		RR,	0x1f0,	"orx",		_A2(A_T,A_A),		00012,	BR)	/* ORX           RT<-RA.w0|RA.w1|RA.w2|RA.w3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) APUOP(M_XORBI,		RI10,	0x230,	"xorbi",	_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* XOR%I         RT<-RA^I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) APUOP(M_XORHI,		RI10,	0x228,	"xorhi",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* XOR%I         RT<-RA^I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) APUOP(M_XORI,		RI10,	0x220,	"xori",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* XOR%I         RT<-RA^I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) APUOP(M_AHI,		RI10,	0x0e8,	"ahi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* Add%Immed     RT<-RA+I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) APUOP(M_AI,		RI10,	0x0e0,	"ai",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* Add%Immed     RT<-RA+I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) APUOP(M_SFHI,		RI10,	0x068,	"sfhi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* SubFrom%Imm   RT<-I10-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) APUOP(M_SFI,		RI10,	0x060,	"sfi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* SubFrom%Imm   RT<-I10-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) APUOP(M_CGTBI,		RI10,	0x270,	"cgtbi",	_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* CGT%I         RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) APUOP(M_CGTHI,		RI10,	0x268,	"cgthi",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CGT%I         RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) APUOP(M_CGTI,		RI10,	0x260,	"cgti",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CGT%I         RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) APUOP(M_CLGTBI,		RI10,	0x2f0,	"clgtbi",	_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* CLGT%I        RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) APUOP(M_CLGTHI,		RI10,	0x2e8,	"clgthi",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CLGT%I        RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) APUOP(M_CLGTI,		RI10,	0x2e0,	"clgti",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CLGT%I        RT<-(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) APUOP(M_CEQBI,		RI10,	0x3f0,	"ceqbi",	_A3(A_T,A_A,A_S10B),	00012,	FX2)	/* CEQ%I         RT<-(RA=I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) APUOP(M_CEQHI,		RI10,	0x3e8,	"ceqhi",	_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CEQ%I         RT<-(RA=I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) APUOP(M_CEQI,		RI10,	0x3e0,	"ceqi",		_A3(A_T,A_A,A_S10),	00012,	FX2)	/* CEQ%I         RT<-(RA=I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) APUOP(M_HGTI,		RI10,	0x278,	"hgti",		_A3(A_T,A_A,A_S10),	00010,	FX2)	/* HaltGTI       halt_if(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) APUOP(M_HGTI2,		RI10,	0x278,	"hgti",		_A2(A_A,A_S10),	00010,	FX2)	/* HaltGTI       halt_if(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) APUOP(M_HLGTI,		RI10,	0x2f8,	"hlgti",	_A3(A_T,A_A,A_S10),	00010,	FX2)	/* HaltLGTI      halt_if(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) APUOP(M_HLGTI2,		RI10,	0x2f8,	"hlgti",	_A2(A_A,A_S10),	00010,	FX2)	/* HaltLGTI      halt_if(RA>I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) APUOP(M_HEQI,		RI10,	0x3f8,	"heqi",		_A3(A_T,A_A,A_S10),	00010,	FX2)	/* HaltEQImm     halt_if(RA=I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) APUOP(M_HEQI2,		RI10,	0x3f8,	"heqi",		_A2(A_A,A_S10),	00010,	FX2)	/* HaltEQImm     halt_if(RA=I10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) APUOP(M_MPYI,		RI10,	0x3a0,	"mpyi",		_A3(A_T,A_A,A_S10),	00012,	FP7)	/* MPYI          RT<-RA*I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) APUOP(M_MPYUI,		RI10,	0x3a8,	"mpyui",	_A3(A_T,A_A,A_S10),	00012,	FP7)	/* MPYUI         RT<-RA*I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) APUOP(M_CFLTS,		RI8,	0x3b0,	"cflts",	_A3(A_T,A_A,A_U7A),	00012,	FP7)	/* CFLTS         RT<-int(RA,I8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) APUOP(M_CFLTU,		RI8,	0x3b2,	"cfltu",	_A3(A_T,A_A,A_U7A),	00012,	FP7)	/* CFLTU         RT<-int(RA,I8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) APUOP(M_CSFLT,		RI8,	0x3b4,	"csflt",	_A3(A_T,A_A,A_U7B),	00012,	FP7)	/* CSFLT         RT<-flt(RA,I8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) APUOP(M_CUFLT,		RI8,	0x3b6,	"cuflt",	_A3(A_T,A_A,A_U7B),	00012,	FP7)	/* CUFLT         RT<-flt(RA,I8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) APUOP(M_FESD,		RR,	0x3b8,	"fesd",		_A2(A_T,A_A),	00012,	FPD)	/* FESD          RT<-double(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) APUOP(M_FRDS,		RR,	0x3b9,	"frds",		_A2(A_T,A_A),	00012,	FPD)	/* FRDS          RT<-single(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) APUOP(M_FSCRRD,		RR,	0x398,	"fscrrd",	_A1(A_T),		00002,	FPD)	/* FSCRRD        RT<-FP_status */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) APUOP(M_FSCRWR,		RR,	0x3ba,	"fscrwr",	_A2(A_T,A_A),	00010,	FP7)	/* FSCRWR        FP_status<-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) APUOP(M_FSCRWR2,	RR,	0x3ba,	"fscrwr",	_A1(A_A),		00010,	FP7)	/* FSCRWR        FP_status<-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) APUOP(M_CLZ,		RR,	0x2a5,	"clz",		_A2(A_T,A_A),	00012,	FX2)	/* CLZ           RT<-clz(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) APUOP(M_CNTB,		RR,	0x2b4,	"cntb",		_A2(A_T,A_A),	00012,	FXB)	/* CNT           RT<-pop(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) APUOP(M_XSBH,		RR,	0x2b6,	"xsbh",		_A2(A_T,A_A),	00012,	FX2)	/* eXtSignBtoH   RT<-sign_ext(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) APUOP(M_XSHW,		RR,	0x2ae,	"xshw",		_A2(A_T,A_A),	00012,	FX2)	/* eXtSignHtoW   RT<-sign_ext(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) APUOP(M_XSWD,		RR,	0x2a6,	"xswd",		_A2(A_T,A_A),	00012,	FX2)	/* eXtSignWtoD   RT<-sign_ext(RA) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) APUOP(M_ROTI,		RI7,	0x078,	"roti",		_A3(A_T,A_A,A_S7N),	00012,	FX3)	/* ROT%I         RT<-RA<<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) APUOP(M_ROTMI,		RI7,	0x079,	"rotmi",	_A3(A_T,A_A,A_S7),	00012,	FX3)	/* ROT%MI        RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) APUOP(M_ROTMAI,		RI7,	0x07a,	"rotmai",	_A3(A_T,A_A,A_S7),	00012,	FX3)	/* ROTMA%I       RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) APUOP(M_SHLI,		RI7,	0x07b,	"shli",		_A3(A_T,A_A,A_U6),	00012,	FX3)	/* SHL%I         RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) APUOP(M_ROTHI,		RI7,	0x07c,	"rothi",	_A3(A_T,A_A,A_S7N),	00012,	FX3)	/* ROT%I         RT<-RA<<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) APUOP(M_ROTHMI,		RI7,	0x07d,	"rothmi",	_A3(A_T,A_A,A_S6),	00012,	FX3)	/* ROT%MI        RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) APUOP(M_ROTMAHI,	RI7,	0x07e,	"rotmahi",	_A3(A_T,A_A,A_S6),	00012,	FX3)	/* ROTMA%I       RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) APUOP(M_SHLHI,		RI7,	0x07f,	"shlhi",	_A3(A_T,A_A,A_U5),	00012,	FX3)	/* SHL%I         RT<-RA<<I7 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) APUOP(M_A,		RR,	0x0c0,	"a",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* Add%          RT<-RA+RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) APUOP(M_AH,		RR,	0x0c8,	"ah",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* Add%          RT<-RA+RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) APUOP(M_SF,		RR,	0x040,	"sf",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* SubFrom%      RT<-RB-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) APUOP(M_SFH,		RR,	0x048,	"sfh",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* SubFrom%      RT<-RB-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) APUOP(M_CGT,		RR,	0x240,	"cgt",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CGT%          RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) APUOP(M_CGTB,		RR,	0x250,	"cgtb",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CGT%          RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) APUOP(M_CGTH,		RR,	0x248,	"cgth",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CGT%          RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) APUOP(M_CLGT,		RR,	0x2c0,	"clgt",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CLGT%         RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) APUOP(M_CLGTB,		RR,	0x2d0,	"clgtb",	_A3(A_T,A_A,A_B),		00112,	FX2)	/* CLGT%         RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) APUOP(M_CLGTH,		RR,	0x2c8,	"clgth",	_A3(A_T,A_A,A_B),		00112,	FX2)	/* CLGT%         RT<-(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) APUOP(M_CEQ,		RR,	0x3c0,	"ceq",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CEQ%          RT<-(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) APUOP(M_CEQB,		RR,	0x3d0,	"ceqb",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CEQ%          RT<-(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) APUOP(M_CEQH,		RR,	0x3c8,	"ceqh",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* CEQ%          RT<-(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) APUOP(M_HGT,		RR,	0x258,	"hgt",		_A3(A_T,A_A,A_B),		00110,	FX2)	/* HaltGT        halt_if(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) APUOP(M_HGT2,		RR,	0x258,	"hgt",		_A2(A_A,A_B),	00110,	FX2)	/* HaltGT        halt_if(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) APUOP(M_HLGT,		RR,	0x2d8,	"hlgt",		_A3(A_T,A_A,A_B),		00110,	FX2)	/* HaltLGT       halt_if(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) APUOP(M_HLGT2,		RR,	0x2d8,	"hlgt",		_A2(A_A,A_B),	00110,	FX2)	/* HaltLGT       halt_if(RA>RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) APUOP(M_HEQ,		RR,	0x3d8,	"heq",		_A3(A_T,A_A,A_B),		00110,	FX2)	/* HaltEQ        halt_if(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) APUOP(M_HEQ2,		RR,	0x3d8,	"heq",		_A2(A_A,A_B),	00110,	FX2)	/* HaltEQ        halt_if(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) APUOP(M_FCEQ,		RR,	0x3c2,	"fceq",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* FCEQ          RT<-(RA=RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) APUOP(M_FCMEQ,		RR,	0x3ca,	"fcmeq",	_A3(A_T,A_A,A_B),		00112,	FX2)	/* FCMEQ         RT<-(|RA|=|RB|) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) APUOP(M_FCGT,		RR,	0x2c2,	"fcgt",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* FCGT          RT<-(RA<RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) APUOP(M_FCMGT,		RR,	0x2ca,	"fcmgt",	_A3(A_T,A_A,A_B),		00112,	FX2)	/* FCMGT         RT<-(|RA|<|RB|) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) APUOP(M_AND,		RR,	0x0c1,	"and",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* AND           RT<-RA&RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) APUOP(M_NAND,		RR,	0x0c9,	"nand",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* NAND          RT<-!(RA&RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) APUOP(M_OR,		RR,	0x041,	"or",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* OR            RT<-RA|RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) APUOP(M_NOR,		RR,	0x049,	"nor",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* NOR           RT<-!(RA&RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) APUOP(M_XOR,		RR,	0x241,	"xor",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* XOR           RT<-RA^RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) APUOP(M_EQV,		RR,	0x249,	"eqv",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* EQuiValent    RT<-!(RA^RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) APUOP(M_ANDC,		RR,	0x2c1,	"andc",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* ANDComplement RT<-RA&!RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) APUOP(M_ORC,		RR,	0x2c9,	"orc",		_A3(A_T,A_A,A_B),		00112,	FX2)	/* ORComplement  RT<-RA|!RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) APUOP(M_ABSDB,		RR,	0x053,	"absdb",	_A3(A_T,A_A,A_B),		00112,	FXB)	/* ABSoluteDiff  RT<-|RA-RB| */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) APUOP(M_AVGB,		RR,	0x0d3,	"avgb",		_A3(A_T,A_A,A_B),		00112,	FXB)	/* AVG%          RT<-(RA+RB+1)/2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) APUOP(M_SUMB,		RR,	0x253,	"sumb",		_A3(A_T,A_A,A_B),		00112,	FXB)	/* SUM%          RT<-f(RA,RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) APUOP(M_DFA,		RR,	0x2cc,	"dfa",		_A3(A_T,A_A,A_B),		00112,	FPD)	/* DFAdd         RT<-RA+RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) APUOP(M_DFM,		RR,	0x2ce,	"dfm",		_A3(A_T,A_A,A_B),		00112,	FPD)	/* DFMul         RT<-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) APUOP(M_DFS,		RR,	0x2cd,	"dfs",		_A3(A_T,A_A,A_B),		00112,	FPD)	/* DFSub         RT<-RA-RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) APUOP(M_FA,		RR,	0x2c4,	"fa",		_A3(A_T,A_A,A_B),		00112,	FP6)	/* FAdd          RT<-RA+RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) APUOP(M_FM,		RR,	0x2c6,	"fm",		_A3(A_T,A_A,A_B),		00112,	FP6)	/* FMul          RT<-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) APUOP(M_FS,		RR,	0x2c5,	"fs",		_A3(A_T,A_A,A_B),		00112,	FP6)	/* FSub          RT<-RA-RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) APUOP(M_MPY,		RR,	0x3c4,	"mpy",		_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPY           RT<-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) APUOP(M_MPYH,		RR,	0x3c5,	"mpyh",		_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPYH          RT<-(RAh*RB)<<16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) APUOP(M_MPYHH,		RR,	0x3c6,	"mpyhh",	_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPYHH         RT<-RAh*RBh */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) APUOP(M_MPYHHU,		RR,	0x3ce,	"mpyhhu",	_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPYHHU        RT<-RAh*RBh */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) APUOP(M_MPYS,		RR,	0x3c7,	"mpys",		_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPYS          RT<-(RA*RB)>>16 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) APUOP(M_MPYU,		RR,	0x3cc,	"mpyu",		_A3(A_T,A_A,A_B),		00112,	FP7)	/* MPYU          RT<-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) APUOP(M_FI,		RR,	0x3d4,	"fi",		_A3(A_T,A_A,A_B),		00112,	FP7)	/* FInterpolate  RT<-f(RA,RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) APUOP(M_ROT,		RR,	0x058,	"rot",		_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROT%          RT<-RA<<<RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) APUOP(M_ROTM,		RR,	0x059,	"rotm",		_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROT%M         RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) APUOP(M_ROTMA,		RR,	0x05a,	"rotma",	_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROTMA%        RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) APUOP(M_SHL,		RR,	0x05b,	"shl",		_A3(A_T,A_A,A_B),		00112,	FX3)	/* SHL%          RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) APUOP(M_ROTH,		RR,	0x05c,	"roth",		_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROT%          RT<-RA<<<RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) APUOP(M_ROTHM,		RR,	0x05d,	"rothm",	_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROT%M         RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) APUOP(M_ROTMAH,		RR,	0x05e,	"rotmah",	_A3(A_T,A_A,A_B),		00112,	FX3)	/* ROTMA%        RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) APUOP(M_SHLH,		RR,	0x05f,	"shlh",		_A3(A_T,A_A,A_B),		00112,	FX3)	/* SHL%          RT<-RA<<Rb */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) APUOP(M_MPYHHA,		RR,	0x346,	"mpyhha",	_A3(A_T,A_A,A_B),		00113,	FP7)	/* MPYHHA        RT<-RAh*RBh+RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) APUOP(M_MPYHHAU,	RR,	0x34e,	"mpyhhau",	_A3(A_T,A_A,A_B),		00113,	FP7)	/* MPYHHAU       RT<-RAh*RBh+RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) APUOP(M_DFMA,		RR,	0x35c,	"dfma",		_A3(A_T,A_A,A_B),		00113,	FPD)	/* DFMAdd        RT<-RT+RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) APUOP(M_DFMS,		RR,	0x35d,	"dfms",		_A3(A_T,A_A,A_B),		00113,	FPD)	/* DFMSub        RT<-RA*RB-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) APUOP(M_DFNMS,		RR,	0x35e,	"dfnms",	_A3(A_T,A_A,A_B),		00113,	FPD)	/* DFNMSub       RT<-RT-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) APUOP(M_DFNMA,		RR,	0x35f,	"dfnma",	_A3(A_T,A_A,A_B),		00113,	FPD)	/* DFNMAdd       RT<-(-RT)-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) APUOP(M_FMA,		RRR,	0x700,	"fma",		_A4(A_C,A_A,A_B,A_T),	02111,	FP6)	/* FMAdd         RC<-RT+RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) APUOP(M_FMS,		RRR,	0x780,	"fms",		_A4(A_C,A_A,A_B,A_T),	02111,	FP6)	/* FMSub         RC<-RA*RB-RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) APUOP(M_FNMS,		RRR,	0x680,	"fnms",		_A4(A_C,A_A,A_B,A_T),	02111,	FP6)	/* FNMSub        RC<-RT-RA*RB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) APUOP(M_MPYA,		RRR,	0x600,	"mpya",		_A4(A_C,A_A,A_B,A_T),	02111,	FP7)	/* MPYA          RC<-RA*RB+RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) APUOP(M_SELB,		RRR,	0x400,	"selb",		_A4(A_C,A_A,A_B,A_T),	02111,	FX2)	/* SELectBits    RC<-RA&RT|RB&!RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) /* for system function call, this uses op-code of mtspr */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) APUOP(M_SYSCALL,	RI7,    0x10c,	"syscall",      _A3(A_T,A_A,A_S7N),	00002,	SPR)        /* System Call */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) pseudo instruction:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) system call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) value of I9	operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 0	halt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 1		rt[0] = open(MEM[ra[0]],	ra[1])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 2		rt[0] = close(ra[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 3		rt[0] = read(ra[0],	MEM[ra[1]],	ra[2])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 4		rt[0] = write(ra[0],	MEM[ra[1]],	ra[2])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 5		printf(MEM[ra[0]],	ra[1],	ra[2],	ra[3])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 42		rt[0] = clock()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 52		rt[0] = lseek(ra0,	ra1,	ra2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) /* new multiprecision add/sub */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) APUOP(M_ADDX,		RR,	0x340,	"addx",		_A3(A_T,A_A,A_B),		00113,		FX2)	/* Add_eXtended  RT<-RA+RB+RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) APUOP(M_CG,		RR,	0x0c2,	"cg",		_A3(A_T,A_A,A_B),		00112,		FX2)	/* CarryGenerate RT<-cout(RA+RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) APUOP(M_CGX,		RR,	0x342,	"cgx",		_A3(A_T,A_A,A_B),		00113,		FX2)	/* CarryGen_eXtd RT<-cout(RA+RB+RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) APUOP(M_SFX,		RR,	0x341,	"sfx",		_A3(A_T,A_A,A_B),		00113,		FX2)	/* Add_eXtended  RT<-RA+RB+RT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) APUOP(M_BG,		RR,	0x042,	"bg",		_A3(A_T,A_A,A_B),		00112,		FX2)	/* CarryGenerate RT<-cout(RA+RB) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) APUOP(M_BGX,		RR,	0x343,	"bgx",		_A3(A_T,A_A,A_B),		00113,		FX2)	/* CarryGen_eXtd RT<-cout(RA+RB+RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) The following ops are a subset of above except with feature bits set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) Feature bits are bits 11-17 of the instruction:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)   11 - C & P feature bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355)   12 - disable interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)   13 - enable interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) APUOPFB(M_BID,		RR,	0x1a8,	0x20,	"bid",		_A1(A_A),		00010,	BR)	/* BI            IP<-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) APUOPFB(M_BIE,		RR,	0x1a8,	0x10,	"bie",		_A1(A_A),		00010,	BR)	/* BI            IP<-RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) APUOPFB(M_BISLD,	RR,	0x1a9,	0x20,	"bisld",	_A2(A_T,A_A),	00012,	BR)	/* BISL          RT,IP<-IP,RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) APUOPFB(M_BISLE,	RR,	0x1a9,	0x10,	"bisle",	_A2(A_T,A_A),	00012,	BR)	/* BISL          RT,IP<-IP,RA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) APUOPFB(M_IRETD,  	RR,	0x1aa,	0x20,	"iretd",	_A1(A_A), 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) APUOPFB(M_IRETD2,  	RR,	0x1aa,	0x20,	"iretd",	_A0(),	 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) APUOPFB(M_IRETE,  	RR,	0x1aa,	0x10,	"irete",	_A1(A_A), 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) APUOPFB(M_IRETE2,  	RR,	0x1aa,	0x10,	"irete",	_A0(),	 	00010,	BR)	/* IRET          IP<-SRR0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) APUOPFB(M_BISLEDD,	RR,	0x1ab,	0x20,	"bisledd",	_A2(A_T,A_A),	00012,	BR)	/* BISLED        RT,IP<-IP,RA_if(ext) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) APUOPFB(M_BISLEDE,	RR,	0x1ab,	0x10,	"bislede",	_A2(A_T,A_A),	00012,	BR)	/* BISLED        RT,IP<-IP,RA_if(ext) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) APUOPFB(M_BIHNZD,	RR,	0x12b,	0x20,	"bihnzd",	_A2(A_T,A_A),	00011,	BR)	/* BIHNZ         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) APUOPFB(M_BIHNZE,	RR,	0x12b,	0x10,	"bihnze",	_A2(A_T,A_A),	00011,	BR)	/* BIHNZ         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) APUOPFB(M_BIHZD,	RR,	0x12a,	0x20,	"bihzd",	_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) APUOPFB(M_BIHZE,	RR,	0x12a,	0x10,	"bihze",	_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) APUOPFB(M_BINZD,	RR,	0x129,	0x20,	"binzd",	_A2(A_T,A_A),	00011,	BR)	/* BINZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) APUOPFB(M_BINZE,	RR,	0x129,	0x10,	"binze",	_A2(A_T,A_A),	00011,	BR)	/* BINZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) APUOPFB(M_BIZD,		RR,	0x128,	0x20,	"bizd",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) APUOPFB(M_BIZE,		RR,	0x128,	0x10,	"bize",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) APUOPFB(M_SYNCC,	RR,	0x002,	0x40,	"syncc",	_A0(),		00000,	BR)	/* SYNCC          flush_pipe */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) APUOPFB(M_HBRP,		LBTI,	0x1ac,	0x40,	"hbrp",		_A0(),	        00010,	LS)	/* HBR           BTB[B9]<-M[Ra] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) /* Synonyms required by the AS manual. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) APUOP(M_LR,		RI10,	0x020,	"lr",		_A2(A_T,A_A),	00012,	FX2)	/* OR%I          RT<-RA|I10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) APUOP(M_BIHT,		RR,	0x12b,	"biht", 	_A2(A_T,A_A),	00011,	BR)	/* BIHNZ         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) APUOP(M_BIHF,		RR,	0x12a,	"bihf",		_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) APUOP(M_BIT,		RR,	0x129,	"bit",		_A2(A_T,A_A),	00011,	BR)	/* BINZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) APUOP(M_BIF,		RR,	0x128,	"bif",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) APUOPFB(M_BIHTD,	RR,	0x12b,	0x20,	"bihtd",	_A2(A_T,A_A),	00011,	BR)	/* BIHNF         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) APUOPFB(M_BIHTE,	RR,	0x12b,	0x10,	"bihte",	_A2(A_T,A_A),	00011,	BR)	/* BIHNF         IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) APUOPFB(M_BIHFD,	RR,	0x12a,	0x20,	"bihfd",	_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) APUOPFB(M_BIHFE,	RR,	0x12a,	0x10,	"bihfe",	_A2(A_T,A_A),	00011,	BR)	/* BIHZ          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) APUOPFB(M_BITD, 	RR,	0x129,	0x20,	"bitd", 	_A2(A_T,A_A),	00011,	BR)	/* BINF          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) APUOPFB(M_BITE, 	RR,	0x129,	0x10,	"bite", 	_A2(A_T,A_A),	00011,	BR)	/* BINF          IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) APUOPFB(M_BIFD,		RR,	0x128,	0x20,	"bifd",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) APUOPFB(M_BIFE,		RR,	0x128,	0x10,	"bife",		_A2(A_T,A_A),	00011,	BR)	/* BIZ           IP<-RA_if(RT) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) #undef _A0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) #undef _A1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) #undef _A2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) #undef _A3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) #undef _A4