A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | - Alias - | - Group - | - Encoding - | #S = immediate (I=1). S = register. #D = immediate (L=1). D = register. - Assembly Syntax - | * Z = (result == 0). ** If #S and cogex, PC += signed(S). If #S and hubex, PC += signed(S << 2). If S, PC = register S. - Description - | * +1 if crosses hub long - Cogex Cycles - | * +1 if crosses hub long - Hubex Cycles - | * Data not forwarded. - Register Write - | - Hub R/W - | - Stack R/W - | CF/ZF are local bits Dv = variable to write - Spin Methods - | |||||||||||||||||||
2 | 1 | . | Miscellaneous | 0000 0000000 000 000000000 000000000 | NOP | No operation. | 2 | same | |||||||||||||||||||||||
3 | 2 | . | Math and Logic | EEEE 0000000 CZI DDDDDDDDD SSSSSSSSS | ROR D,{#}S {WC,WZ} | Rotate right. D = [31:0] of ({D[31:0], D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | D | ROR_(Dv,S) | |||||||||||||||||||||
4 | 3 | . | Math and Logic | EEEE 0000001 CZI DDDDDDDDD SSSSSSSSS | ROL D,{#}S {WC,WZ} | Rotate left. D = [63:32] of ({D[31:0], D[31:0]} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | D | ROL_(Dv,S) | |||||||||||||||||||||
5 | 4 | . | Math and Logic | EEEE 0000010 CZI DDDDDDDDD SSSSSSSSS | SHR D,{#}S {WC,WZ} | Shift right. D = [31:0] of ({32'b0, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | D | SHR_(Dv,S) | |||||||||||||||||||||
6 | 5 | . | Math and Logic | EEEE 0000011 CZI DDDDDDDDD SSSSSSSSS | SHL D,{#}S {WC,WZ} | Shift left. D = [63:32] of ({D[31:0], 32'b0} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | D | SHL_(Dv,S) | |||||||||||||||||||||
7 | 6 | . | Math and Logic | EEEE 0000100 CZI DDDDDDDDD SSSSSSSSS | RCR D,{#}S {WC,WZ} | Rotate carry right. D = [31:0] of ({{32{C}}, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | D | RCR_(Dv,S) | |||||||||||||||||||||
8 | 7 | . | Math and Logic | EEEE 0000101 CZI DDDDDDDDD SSSSSSSSS | RCL D,{#}S {WC,WZ} | Rotate carry left. D = [63:32] of ({D[31:0], {32{C}}} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | D | RCL_(Dv,S) | |||||||||||||||||||||
9 | 8 | . | Math and Logic | EEEE 0000110 CZI DDDDDDDDD SSSSSSSSS | SAR D,{#}S {WC,WZ} | Shift arithmetic right. D = [31:0] of ({{32{D[31]}}, D[31:0]} >> S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[0]. * | 2 | same | D | SAR_(Dv,S) | |||||||||||||||||||||
10 | 9 | . | Math and Logic | EEEE 0000111 CZI DDDDDDDDD SSSSSSSSS | SAL D,{#}S {WC,WZ} | Shift arithmetic left. D = [63:32] of ({D[31:0], {32{D[0]}}} << S[4:0]). C = last bit shifted out if S[4:0] > 0, else D[31]. * | 2 | same | D | SAL_(Dv,S) | |||||||||||||||||||||
11 | 10 | . | Math and Logic | EEEE 0001000 CZI DDDDDDDDD SSSSSSSSS | ADD D,{#}S {WC,WZ} | Add S into D. D = D + S. C = carry of (D + S). * | 2 | same | D | ADD_(Dv,S) | |||||||||||||||||||||
12 | 11 | . | Math and Logic | EEEE 0001001 CZI DDDDDDDDD SSSSSSSSS | ADDX D,{#}S {WC,WZ} | Add (S + C) into D, extended. D = D + S + C. C = carry of (D + S + C). Z = Z & (result == 0). | 2 | same | D | ADDX_(Dv,S) | |||||||||||||||||||||
13 | 12 | . | Math and Logic | EEEE 0001010 CZI DDDDDDDDD SSSSSSSSS | ADDS D,{#}S {WC,WZ} | Add S into D, signed. D = D + S. C = overflow of (D + S). * | 2 | same | D | ADDS_(Dv,S) | |||||||||||||||||||||
14 | 13 | . | Math and Logic | EEEE 0001011 CZI DDDDDDDDD SSSSSSSSS | ADDSX D,{#}S {WC,WZ} | Add (S + C) into D, signed and extended. D = D + S + C. C = overflow of (D + S + C). Z = Z & (result == 0). | 2 | same | D | ADDSX_(Dv,S) | |||||||||||||||||||||
15 | 14 | . | Math and Logic | EEEE 0001100 CZI DDDDDDDDD SSSSSSSSS | SUB D,{#}S {WC,WZ} | Subtract S from D. D = D - S. C = borrow of (D - S). * | 2 | same | D | SUB_(Dv,S) | |||||||||||||||||||||
16 | 15 | . | Math and Logic | EEEE 0001101 CZI DDDDDDDDD SSSSSSSSS | SUBX D,{#}S {WC,WZ} | Subtract (S + C) from D, extended. D = D - (S + C). C = borrow of (D - (S + C)). Z = Z & (result == 0). | 2 | same | D | SUBX_(Dv,S) | |||||||||||||||||||||
17 | 16 | . | Math and Logic | EEEE 0001110 CZI DDDDDDDDD SSSSSSSSS | SUBS D,{#}S {WC,WZ} | Subtract S from D, signed. D = D - S. C = overflow of (D - S). * | 2 | same | D | SUBS_(Dv,S) | |||||||||||||||||||||
18 | 17 | . | Math and Logic | EEEE 0001111 CZI DDDDDDDDD SSSSSSSSS | SUBSX D,{#}S {WC,WZ} | Subtract (S + C) from D, signed and extended. D = D - (S + C). C = overflow of (D - (S + C)). Z = Z & (result == 0). | 2 | same | D | SUBSX_(Dv,S) | |||||||||||||||||||||
19 | 18 | . | Math and Logic | EEEE 0010000 CZI DDDDDDDDD SSSSSSSSS | CMP D,{#}S {WC,WZ} | Compare D to S. C = borrow of (D - S). Z = (D == S). | 2 | same | D | CMP_(D,S) | |||||||||||||||||||||
20 | 19 | . | Math and Logic | EEEE 0010001 CZI DDDDDDDDD SSSSSSSSS | CMPX D,{#}S {WC,WZ} | Compare D to (S + C), extended. C = borrow of (D - (S + C)). Z = Z & (result == 0). | 2 | same | CMPX_(D,S) | ||||||||||||||||||||||
21 | 20 | . | Math and Logic | EEEE 0010010 CZI DDDDDDDDD SSSSSSSSS | CMPS D,{#}S {WC,WZ} | Compare D to S, signed. C = overflow of (D - S). Z = (D == S). | 2 | same | CMPS_(D,S) | ||||||||||||||||||||||
22 | 21 | . | Math and Logic | EEEE 0010011 CZI DDDDDDDDD SSSSSSSSS | CMPSX D,{#}S {WC,WZ} | Compare D to (S + C), signed and extended. C = overflow of (D - (S + C)). Z = Z & (result == 0). | 2 | same | CMPSX_(D,S) | ||||||||||||||||||||||
23 | 22 | . | Math and Logic | EEEE 0010100 CZI DDDDDDDDD SSSSSSSSS | CMPR D,{#}S {WC,WZ} | Compare S to D (reverse). C = borrow of (S - D). Z = (S == D). | 2 | same | CMPR_(D,S) | ||||||||||||||||||||||
24 | 23 | . | Math and Logic | EEEE 0010101 CZI DDDDDDDDD SSSSSSSSS | CMPM D,{#}S {WC,WZ} | Compare D to S, get MSB of difference. C = MSB of (D - S). Z = (D == S). | 2 | same | CMPM_(D,S) | ||||||||||||||||||||||
25 | 24 | . | Math and Logic | EEEE 0010110 CZI DDDDDDDDD SSSSSSSSS | SUBR D,{#}S {WC,WZ} | Subtract D from S (reverse). D = S - D. C = borrow of (S - D). * | 2 | same | D | SUBR_(Dv,S) | |||||||||||||||||||||
26 | 25 | . | Math and Logic | EEEE 0010111 CZI DDDDDDDDD SSSSSSSSS | CMPSUB D,{#}S {WC,WZ} | Compare and subtract S from D if no borrowing needed. If D => S then D = D - S and C = 1, else D same and C = 0. * | 2 | same | D | CMPSUB_(Dv,S) | |||||||||||||||||||||
27 | 26 | . | Math and Logic | EEEE 0011000 CZI DDDDDDDDD SSSSSSSSS | MIN D,{#}S {WC,WZ} | Ensure D => S. If D < S then D = S and C = 1, else D same and C = 0. * | 2 | same | D | MIN_(Dv,S) | |||||||||||||||||||||
28 | 27 | . | Math and Logic | EEEE 0011001 CZI DDDDDDDDD SSSSSSSSS | MAX D,{#}S {WC,WZ} | Ensure D =< S. If D > S then D = S and C = 1, else D same and C = 0. * | 2 | same | D | MAX_(Dv,S) | |||||||||||||||||||||
29 | 28 | . | Math and Logic | EEEE 0011010 CZI DDDDDDDDD SSSSSSSSS | MINS D,{#}S {WC,WZ} | Ensure D => S, signed. If D < S then D = S and C = 1, else D same and C = 0. * | 2 | same | D | MINS_(Dv,S) | |||||||||||||||||||||
30 | 29 | . | Math and Logic | EEEE 0011011 CZI DDDDDDDDD SSSSSSSSS | MAXS D,{#}S {WC,WZ} | Ensure D =< S, signed. If D > S then D = S and C = 1, else D same and C = 0. * | 2 | same | D | MAXS_(Dv,S) | |||||||||||||||||||||
31 | 30 | . | Math and Logic | EEEE 0011100 CZI DDDDDDDDD SSSSSSSSS | SUMC D,{#}S {WC,WZ} | Sum +/-S into D by C. If C = 1 then D = D - S, else D = D + S. C = 1 if signed overflow. * | 2 | same | D | SUMC_(Dv,S) | |||||||||||||||||||||
32 | 31 | . | Math and Logic | EEEE 0011101 CZI DDDDDDDDD SSSSSSSSS | SUMNC D,{#}S {WC,WZ} | Sum +/-S into D by !C. If C = 0 then D = D - S, else D = D + S. C = 1 if signed overflow. * | 2 | same | D | SUMNC_(Dv,S) | |||||||||||||||||||||
33 | 32 | . | Math and Logic | EEEE 0011110 CZI DDDDDDDDD SSSSSSSSS | SUMZ D,{#}S {WC,WZ} | Sum +/-S into D by Z. If Z = 1 then D = D - S, else D = D + S. C = 1 if signed overflow. * | 2 | same | D | SUMZ_(Dv,S) | |||||||||||||||||||||
34 | 33 | . | Math and Logic | EEEE 0011111 CZI DDDDDDDDD SSSSSSSSS | SUMNZ D,{#}S {WC,WZ} | Sum +/-S into D by !Z. If C = 0 then D = D - S, else D = D + S. C = 1 if signed overflow. * | 2 | same | D | SUMNZ_(Dv,S) | |||||||||||||||||||||
35 | 34 | . | Math and Logic | EEEE 0100000 CZI DDDDDDDDD SSSSSSSSS | BITL D,{#}S {WC,WZ} | Clear bit S[4:0] of D. D = D & !(1 << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITL_(Dv,S) | |||||||||||||||||||||
36 | 35 | . | Math and Logic | EEEE 0100001 CZI DDDDDDDDD SSSSSSSSS | BITH D,{#}S {WC,WZ} | Set bit S[4:0] of D. D = D | (1 << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITH_(Dv,S) | |||||||||||||||||||||
37 | 36 | . | Math and Logic | EEEE 0100010 CZI DDDDDDDDD SSSSSSSSS | BITC D,{#}S {WC,WZ} | Set bit S[4:0] of D to C. D = D & !(1 << S[4:0]) | ( C << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITC_(Dv,S) | |||||||||||||||||||||
38 | 37 | . | Math and Logic | EEEE 0100011 CZI DDDDDDDDD SSSSSSSSS | BITNC D,{#}S {WC,WZ} | Set bit S[4:0] of D to !C. D = D & !(1 << S[4:0]) | (!C << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITNC_(Dv,S) | |||||||||||||||||||||
39 | 38 | . | Math and Logic | EEEE 0100100 CZI DDDDDDDDD SSSSSSSSS | BITZ D,{#}S {WC,WZ} | Set bit S[4:0] of D to Z. D = D & !(1 << S[4:0]) | ( Z << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITZ_(Dv,S) | |||||||||||||||||||||
40 | 39 | . | Math and Logic | EEEE 0100101 CZI DDDDDDDDD SSSSSSSSS | BITNZ D,{#}S {WC,WZ} | Set bit S[4:0] of D to !Z. D = D & !(1 << S[4:0]) | (!Z << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITNZ_(Dv,S) | |||||||||||||||||||||
41 | 40 | . | Math and Logic | EEEE 0100110 CZI DDDDDDDDD SSSSSSSSS | BITN D,{#}S {WC,WZ} | Not bit S[4:0] of D. D = D ^ (1 << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITN_(Dv,S) | |||||||||||||||||||||
42 | 41 | . | Math and Logic | EEEE 0100111 CZI DDDDDDDDD SSSSSSSSS | BITX D,{#}S {WC,WZ} | Extract bit S[4:0] of D. D = D & (1 << S[4:0]). C/!Z = bit S[4:0] of D. | 2 | same | D | BITX_(Dv,S) | |||||||||||||||||||||
43 | 42 | . | Math and Logic | EEEE 0101000 CZI DDDDDDDDD SSSSSSSSS | ANDN D,{#}S {WC,WZ} | AND !S into D. D = D & !S. C = parity of result. * | 2 | same | D | ANDN_(Dv,S) | |||||||||||||||||||||
44 | 43 | . | Math and Logic | EEEE 0101001 CZI DDDDDDDDD SSSSSSSSS | AND D,{#}S {WC,WZ} | AND S into D. D = D & S. C = parity of result. * | 2 | same | D | AND_(Dv,S) | |||||||||||||||||||||
45 | 44 | . | Math and Logic | EEEE 0101010 CZI DDDDDDDDD SSSSSSSSS | OR D,{#}S {WC,WZ} | OR S into D. D = D | S. C = parity of result. * | 2 | same | D | OR_(Dv,S) | |||||||||||||||||||||
46 | 45 | . | Math and Logic | EEEE 0101011 CZI DDDDDDDDD SSSSSSSSS | XOR D,{#}S {WC,WZ} | XOR S into D. D = D ^ S. C = parity of result. * | 2 | same | D | XOR_(Dv,S) | |||||||||||||||||||||
47 | 46 | . | Math and Logic | EEEE 0101100 CZI DDDDDDDDD SSSSSSSSS | MUXC D,{#}S {WC,WZ} | Mux C into each D bit that is '1' in S. D = (!S & D ) | (S & {32{ C}}). C = parity of result. * | 2 | same | D | MUXC_(Dv,S) | |||||||||||||||||||||
48 | 47 | . | Math and Logic | EEEE 0101101 CZI DDDDDDDDD SSSSSSSSS | MUXNC D,{#}S {WC,WZ} | Mux !C into each D bit that is '1' in S. D = (!S & D ) | (S & {32{!C}}). C = parity of result. * | 2 | same | D | MUXNC_(Dv,S) | |||||||||||||||||||||
49 | 48 | . | Math and Logic | EEEE 0101110 CZI DDDDDDDDD SSSSSSSSS | MUXZ D,{#}S {WC,WZ} | Mux Z into each D bit that is '1' in S. D = (!S & D ) | (S & {32{ Z}}). C = parity of result. * | 2 | same | D | MUXZ_(Dv,S) | |||||||||||||||||||||
50 | 49 | . | Math and Logic | EEEE 0101111 CZI DDDDDDDDD SSSSSSSSS | MUXNZ D,{#}S {WC,WZ} | Mux !Z into each D bit that is '1' in S. D = (!S & D ) | (S & {32{!Z}}). C = parity of result. * | 2 | same | D | MUXNZ_(Dv,S) | |||||||||||||||||||||
51 | 50 | . | Math and Logic | EEEE 0110000 CZI DDDDDDDDD SSSSSSSSS | MOV D,{#}S {WC,WZ} | Move S into D. D = S. C = S[31]. * | 2 | same | D | MOV_(Dv,S) | |||||||||||||||||||||
52 | 51 | . | Math and Logic | EEEE 0110001 CZI DDDDDDDDD SSSSSSSSS | NOT D,{#}S {WC,WZ} | Get !S into D. D = !S. C = !S[31]. * | 2 | same | D | NOT_(Dv,S) | |||||||||||||||||||||
53 | 52 | alias | Math and Logic | EEEE 0110001 CZ0 DDDDDDDDD DDDDDDDDD | NOT D {WC,WZ} | Get !D into D. D = !D. C = !D[31]. * | 2 | same | D | NOT_(Dv) | |||||||||||||||||||||
54 | 53 | . | Math and Logic | EEEE 0110010 CZI DDDDDDDDD SSSSSSSSS | ABS D,{#}S {WC,WZ} | Get absolute value of S into D. D = ||S. C = S[31]. * | 2 | same | D | ABS_(Dv,S) | |||||||||||||||||||||
55 | 54 | alias | Math and Logic | EEEE 0110010 CZ0 DDDDDDDDD DDDDDDDDD | ABS D {WC,WZ} | Get absolute value of D into D. D = ||D. C = D[31]. * | 2 | same | D | ABS_(Dv) | |||||||||||||||||||||
56 | 55 | . | Math and Logic | EEEE 0110011 CZI DDDDDDDDD SSSSSSSSS | NEG D,{#}S {WC,WZ} | Negate S into D. D = -S. C = MSB of result. * | 2 | same | D | NEG_(Dv,S) | |||||||||||||||||||||
57 | 56 | alias | Math and Logic | EEEE 0110011 CZ0 DDDDDDDDD DDDDDDDDD | NEG D {WC,WZ} | Negate D. D = -D. C = MSB of result. * | 2 | same | D | NEG_(Dv) | |||||||||||||||||||||
58 | 57 | . | Math and Logic | EEEE 0110100 CZI DDDDDDDDD SSSSSSSSS | NEGC D,{#}S {WC,WZ} | Negate S by C into D. If C = 1 then D = -S, else D = S. C = MSB of result. * | 2 | same | D | NEGC_(Dv,S) | |||||||||||||||||||||
59 | 58 | alias | Math and Logic | EEEE 0110100 CZ0 DDDDDDDDD DDDDDDDDD | NEGC D {WC,WZ} | Negate D by C. If C = 1 then D = -D, else D = D. C = MSB of result. * | 2 | same | D | NEGC_(Dv) | |||||||||||||||||||||
60 | 59 | . | Math and Logic | EEEE 0110101 CZI DDDDDDDDD SSSSSSSSS | NEGNC D,{#}S {WC,WZ} | Negate S by !C into D. If C = 0 then D = -S, else D = S. C = MSB of result. * | 2 | same | D | NEGNC_(Dv,S) | |||||||||||||||||||||
61 | 60 | alias | Math and Logic | EEEE 0110101 CZ0 DDDDDDDDD DDDDDDDDD | NEGNC D {WC,WZ} | Negate D by !C. If C = 0 then D = -D, else D = D. C = MSB of result. * | 2 | same | D | NEGNC_(Dv) | |||||||||||||||||||||
62 | 61 | . | Math and Logic | EEEE 0110110 CZI DDDDDDDDD SSSSSSSSS | NEGZ D,{#}S {WC,WZ} | Negate S by Z into D. If Z = 1 then D = -S, else D = S. C = MSB of result. * | 2 | same | D | NEGZ_(Dv,S) | |||||||||||||||||||||
63 | 62 | alias | Math and Logic | EEEE 0110110 CZ0 DDDDDDDDD DDDDDDDDD | NEGZ D {WC,WZ} | Negate D by Z. If Z = 1 then D = -D, else D = D. C = MSB of result. * | 2 | same | D | NEGZ_(Dv) | |||||||||||||||||||||
64 | 63 | . | Math and Logic | EEEE 0110111 CZI DDDDDDDDD SSSSSSSSS | NEGNZ D,{#}S {WC,WZ} | Negate S by !Z into D. If Z = 0 then D = -S, else D = S. C = MSB of result. * | 2 | same | D | NEGNZ_(Dv,S) | |||||||||||||||||||||
65 | 64 | alias | Math and Logic | EEEE 0110111 CZ0 DDDDDDDDD DDDDDDDDD | NEGNZ D {WC,WZ} | Negate D by !Z. If Z = 0 then D = -D, else D = D. C = MSB of result. * | 2 | same | D | NEGNZ_(Dv) | |||||||||||||||||||||
66 | 65 | . | Math and Logic | EEEE 0111000 CZI DDDDDDDDD SSSSSSSSS | INCMOD D,{#}S {WC,WZ} | Increment with modulus. If D = S then D = 0 and C = 1, else D = D + 1 and C = 0. * | 2 | same | D | INCMOD_(Dv,S) | |||||||||||||||||||||
67 | 66 | . | Math and Logic | EEEE 0111001 CZI DDDDDDDDD SSSSSSSSS | DECMOD D,{#}S {WC,WZ} | Decrement with modulus. If D = 0 then D = S and C = 1, else D = D - 1 and C = 0. * | 2 | same | D | DECMOD_(Dv,S) | |||||||||||||||||||||
68 | 67 | . | Math and Logic | EEEE 0111010 CZI DDDDDDDDD SSSSSSSSS | TOPONE D,{#}S {WC,WZ} | Get bit position of top-most '1' in S into D. D = {27'b0, 5'position}. C = (S == 0). * | 2 | same | D | TOPONE_(Dv,S) | |||||||||||||||||||||
69 | 68 | alias | Math and Logic | EEEE 0111010 CZ0 DDDDDDDDD DDDDDDDDD | TOPONE D {WC,WZ} | Get bit position of top-most '1' in D into D. D = {27'b0, 5'position}. C = (D == 0). * | 2 | same | D | TOPONE_(Dv) | |||||||||||||||||||||
70 | 69 | . | Math and Logic | EEEE 0111011 CZI DDDDDDDDD SSSSSSSSS | BOTONE D,{#}S {WC,WZ} | Get bit position of bottom-most '1' in S into D. D = {27'b0, 5'position}. C = (S == 0). * | 2 | same | D | BOTONE_(Dv,S) | |||||||||||||||||||||
71 | 70 | alias | Math and Logic | EEEE 0111011 CZ0 DDDDDDDDD DDDDDDDDD | BOTONE D {WC,WZ} | Get bit position of bottom-most '1' in D into D. D = {27'b0, 5'position}. C = (D == 0). * | 2 | same | D | BOTONE_(Dv) | |||||||||||||||||||||
72 | 71 | . | Math and Logic | EEEE 0111100 CZI DDDDDDDDD SSSSSSSSS | TESTN D,{#}S {WC,WZ} | Test D with !S. C = parity of (D & !S). Z = ((D & !S) == 0). | 2 | same | TESTN_(D,S) | ||||||||||||||||||||||
73 | 72 | . | Math and Logic | EEEE 0111101 CZI DDDDDDDDD SSSSSSSSS | TEST D,{#}S {WC,WZ} | Test D with S. C = parity of (D & S). Z = ((D & S) == 0). | 2 | same | TEST_(D,S) | ||||||||||||||||||||||
74 | 73 | alias | Math and Logic | EEEE 0111101 CZ0 DDDDDDDDD DDDDDDDDD | TEST D {WC,WZ} | Test D. C = parity of D. Z = (D == 0). | 2 | same | TEST_(D) | ||||||||||||||||||||||
75 | 74 | . | Math and Logic | EEEE 0111110 CZI DDDDDDDDD SSSSSSSSS | ANYB D,{#}S {WC,WZ} | Check if any bits set in either D or S. C = parity of (D | S). Z = ((D | S) == 0). | 2 | same | ANYB_(D,S) | ||||||||||||||||||||||
76 | 75 | . | Math and Logic | EEEE 0111111 CZI DDDDDDDDD SSSSSSSSS | TESTB D,{#}S {WC,WZ} | Test bit. C/!Z = bit S[4:0] of D. | 2 | same | TESTB_(D,S) | ||||||||||||||||||||||
77 | 76 | . | Math and Logic | EEEE 100000N NNI DDDDDDDDD SSSSSSSSS | SETNIB D,{#}S,#N | Set S[3:0] into nibble N in D, keeping rest of D same. | 2 | same | D | SETNIB_(Dv,S,N) | |||||||||||||||||||||
78 | 77 | alias | Math and Logic | EEEE 1000000 00I 000000000 SSSSSSSSS | SETNIB {#}S | Set S[3:0] into nibble established by prior ALTSN instruction. | 2 | same | D | ||||||||||||||||||||||
79 | 78 | . | Math and Logic | EEEE 100001N NNI DDDDDDDDD SSSSSSSSS | GETNIB D,{#}S,#N | Get nibble N of S into D. D = {28'b0, S.NIBBLE[N]). | 2 | same | D | GETNIB_(Dv,S,N) | |||||||||||||||||||||
80 | 79 | alias | Math and Logic | EEEE 1000010 000 DDDDDDDDD 000000000 | GETNIB D | Get nibble established by prior ALTGN instruction into D. | 2 | same | D | ||||||||||||||||||||||
81 | 80 | . | Math and Logic | EEEE 100010N NNI DDDDDDDDD SSSSSSSSS | ROLNIB D,{#}S,#N | Rotate-left nibble N of S into D. D = {D[27:0], S.NIBBLE[N]). | 2 | same | D | ROLNIB_(Dv,S,N) | |||||||||||||||||||||
82 | 81 | alias | Math and Logic | EEEE 1000100 000 DDDDDDDDD 000000000 | ROLNIB D | Rotate-left nibble established by prior ALTGN instruction into D. | 2 | same | D | ||||||||||||||||||||||
83 | 82 | . | Math and Logic | EEEE 1000110 NNI DDDDDDDDD SSSSSSSSS | SETBYTE D,{#}S,#N | Set S[7:0] into byte N in D, keeping rest of D same. | 2 | same | D | SETBYTE_(Dv,S,N) | |||||||||||||||||||||
84 | 83 | alias | Math and Logic | EEEE 1000110 00I 000000000 SSSSSSSSS | SETBYTE {#}S | Set S[7:0] into byte established by prior ALTSB instruction. | 2 | same | D | ||||||||||||||||||||||
85 | 84 | . | Math and Logic | EEEE 1000111 NNI DDDDDDDDD SSSSSSSSS | GETBYTE D,{#}S,#N | Get byte N of S into D. D = {24'b0, S.BYTE[N]). | 2 | same | D | GETBYTE_(Dv,S,N) | |||||||||||||||||||||
86 | 85 | alias | Math and Logic | EEEE 1000111 000 DDDDDDDDD 000000000 | GETBYTE D | Get byte established by prior ALTGB instruction into D. | 2 | same | D | ||||||||||||||||||||||
87 | 86 | . | Math and Logic | EEEE 1001000 NNI DDDDDDDDD SSSSSSSSS | ROLBYTE D,{#}S,#N | Rotate-left byte N of S into D. D = {D[23:0], S.BYTE[N]). | 2 | same | D | ROLBYTE_(Dv,S,N) | |||||||||||||||||||||
88 | 87 | alias | Math and Logic | EEEE 1001000 000 DDDDDDDDD 000000000 | ROLBYTE D | Rotate-left byte established by prior ALTGB instruction into D. | 2 | same | D | ||||||||||||||||||||||
89 | 88 | . | Math and Logic | EEEE 1001001 0NI DDDDDDDDD SSSSSSSSS | SETWORD D,{#}S,#N | Set S[15:0] into word N in D, keeping rest of D same. | 2 | same | D | SETWORD_(Dv,S,N) | |||||||||||||||||||||
90 | 89 | alias | Math and Logic | EEEE 1001001 00I 000000000 SSSSSSSSS | SETWORD {#}S | Set S[15:0] into word established by prior ALTSW instruction. | 2 | same | D | ||||||||||||||||||||||
91 | 90 | . | Math and Logic | EEEE 1001001 1NI DDDDDDDDD SSSSSSSSS | GETWORD D,{#}S,#N | Get word N of S into D. D = {16'b0, S.WORD[N]). | 2 | same | D | GETWORD_(Dv,S,N) | |||||||||||||||||||||
92 | 91 | alias | Math and Logic | EEEE 1001001 100 DDDDDDDDD 000000000 | GETWORD D | Get word established by prior ALTGW instruction into D. | 2 | same | D | ||||||||||||||||||||||
93 | 92 | . | Math and Logic | EEEE 1001010 0NI DDDDDDDDD SSSSSSSSS | ROLWORD D,{#}S,#N | Rotate-left word N of S into D. D = {D[15:0], S.WORD[N]). | 2 | same | D | ROLWORD_(Dv,S,N) | |||||||||||||||||||||
94 | 93 | alias | Math and Logic | EEEE 1001010 000 DDDDDDDDD 000000000 | ROLWORD D | Rotate-left word established by prior ALTGW instruction into D. | 2 | same | D | ||||||||||||||||||||||
95 | 94 | . | Register Indirection | EEEE 1001010 10I DDDDDDDDD SSSSSSSSS | ALTSN D,{#}S | Alter subsequent SETNIB instruction to point to nibble. Next D field = (D[11:3] + S) & $1FF, N field = D[2:0]. | 2 | same | |||||||||||||||||||||||
96 | 95 | alias | Register Indirection | EEEE 1001010 101 DDDDDDDDD 000000000 | ALTSN D | Alter subsequent SETNIB instruction to point to nibble. Next D field = D[11:3], N field = D[2:0]. | 2 | same | |||||||||||||||||||||||
97 | 96 | . | Register Indirection | EEEE 1001010 11I DDDDDDDDD SSSSSSSSS | ALTGN D,{#}S | Alter subsequent GETNIB/ROLNIB instruction to point to nibble. Next S field = (D[11:3] + S) & $1FF, N field = D[2:0]. | 2 | same | |||||||||||||||||||||||
98 | 97 | alias | Register Indirection | EEEE 1001010 111 DDDDDDDDD 000000000 | ALTGN D | Alter subsequent GETNIB/ROLNIB instruction to point to nibble. Next S field = D[11:3], N field = D[2:0]. | 2 | same | |||||||||||||||||||||||
99 | 98 | . | Register Indirection | EEEE 1001011 00I DDDDDDDDD SSSSSSSSS | ALTSB D,{#}S | Alter subsequent SETBYTE instruction to point to byte. Next D field = (D[10:2] + S) & $1FF, N field = D[1:0]. | 2 | same | |||||||||||||||||||||||
100 | 99 | alias | Register Indirection | EEEE 1001011 001 DDDDDDDDD 000000000 | ALTSB D | Alter subsequent SETBYTE instruction to point to byte. Next D field = D[10:2], N field = D[1:0]. | 2 | same |