1 1.3 uch /* $NetBSD: sh_opcode.h,v 1.3 2002/04/28 17:10:36 uch Exp $ */ 2 1.1 itojun 3 1.1 itojun typedef union { 4 1.1 itojun unsigned word; 5 1.1 itojun 6 1.2 msaitoh #if _BYTE_ORDER == BIG_ENDIAN 7 1.1 itojun struct { 8 1.1 itojun unsigned op: 16; 9 1.1 itojun } oType; 10 1.1 itojun 11 1.1 itojun struct { 12 1.1 itojun unsigned op1: 4; 13 1.1 itojun unsigned n: 4; 14 1.1 itojun unsigned op2: 8; 15 1.1 itojun } nType; 16 1.1 itojun 17 1.1 itojun struct { 18 1.1 itojun unsigned op1: 4; 19 1.1 itojun unsigned m: 4; 20 1.1 itojun unsigned op2: 8; 21 1.1 itojun } mType; 22 1.1 itojun 23 1.1 itojun struct { 24 1.1 itojun unsigned op1: 4; 25 1.1 itojun unsigned n: 4; 26 1.1 itojun unsigned m: 4; 27 1.1 itojun unsigned op2: 4; 28 1.1 itojun } nmType; 29 1.1 itojun 30 1.1 itojun struct { 31 1.1 itojun unsigned op: 8; 32 1.1 itojun unsigned m: 4; 33 1.1 itojun unsigned d: 4; 34 1.1 itojun } mdType; 35 1.1 itojun 36 1.1 itojun struct { 37 1.1 itojun unsigned op: 8; 38 1.1 itojun unsigned n: 4; 39 1.1 itojun unsigned d: 4; 40 1.1 itojun } nd4Type; 41 1.1 itojun 42 1.1 itojun struct { 43 1.1 itojun unsigned op: 4; 44 1.1 itojun unsigned n: 4; 45 1.1 itojun unsigned m: 4; 46 1.1 itojun unsigned d: 4; 47 1.1 itojun } nmdType; 48 1.1 itojun 49 1.1 itojun struct { 50 1.1 itojun unsigned op: 8; 51 1.1 itojun unsigned d: 8; 52 1.1 itojun } dType; 53 1.1 itojun 54 1.1 itojun struct { 55 1.1 itojun unsigned op: 4; 56 1.1 itojun unsigned d: 12; 57 1.1 itojun } d12Type; 58 1.1 itojun 59 1.1 itojun struct { 60 1.1 itojun unsigned op: 4; 61 1.1 itojun unsigned n: 4; 62 1.1 itojun unsigned d: 8; 63 1.1 itojun } nd8Type; 64 1.1 itojun 65 1.1 itojun struct { 66 1.1 itojun unsigned op: 8; 67 1.1 itojun unsigned i: 8; 68 1.1 itojun } iType; 69 1.1 itojun 70 1.1 itojun struct { 71 1.1 itojun unsigned op: 4; 72 1.1 itojun unsigned n: 4; 73 1.1 itojun unsigned i: 8; 74 1.1 itojun } niType; 75 1.1 itojun #endif 76 1.2 msaitoh #if _BYTE_ORDER == LITTLE_ENDIAN 77 1.1 itojun struct { 78 1.1 itojun unsigned op: 16; 79 1.1 itojun } oType; 80 1.1 itojun 81 1.1 itojun struct { 82 1.1 itojun unsigned op2: 8; 83 1.1 itojun unsigned n: 4; 84 1.1 itojun unsigned op1: 4; 85 1.1 itojun } nType; 86 1.1 itojun 87 1.1 itojun struct { 88 1.1 itojun unsigned op2: 8; 89 1.1 itojun unsigned m: 4; 90 1.1 itojun unsigned op1: 4; 91 1.1 itojun } mType; 92 1.1 itojun 93 1.1 itojun struct { 94 1.1 itojun unsigned op2: 4; 95 1.1 itojun unsigned m: 4; 96 1.1 itojun unsigned n: 4; 97 1.1 itojun unsigned op1: 4; 98 1.1 itojun } nmType; 99 1.1 itojun 100 1.1 itojun struct { 101 1.1 itojun unsigned d: 4; 102 1.1 itojun unsigned m: 4; 103 1.1 itojun unsigned op: 8; 104 1.1 itojun } mdType; 105 1.1 itojun 106 1.1 itojun struct { 107 1.1 itojun unsigned d: 4; 108 1.1 itojun unsigned n: 4; 109 1.1 itojun unsigned op: 8; 110 1.1 itojun } nd4Type; 111 1.1 itojun 112 1.1 itojun struct { 113 1.1 itojun unsigned d: 4; 114 1.1 itojun unsigned m: 4; 115 1.1 itojun unsigned n: 4; 116 1.1 itojun unsigned op: 4; 117 1.1 itojun } nmdType; 118 1.1 itojun 119 1.1 itojun struct { 120 1.1 itojun unsigned d: 8; 121 1.1 itojun unsigned op: 8; 122 1.1 itojun } dType; 123 1.1 itojun 124 1.1 itojun struct { 125 1.1 itojun unsigned d: 12; 126 1.1 itojun unsigned op: 4; 127 1.1 itojun } d12Type; 128 1.1 itojun 129 1.1 itojun struct { 130 1.1 itojun unsigned d: 8; 131 1.1 itojun unsigned n: 4; 132 1.1 itojun unsigned op: 4; 133 1.1 itojun } nd8Type; 134 1.1 itojun 135 1.1 itojun struct { 136 1.1 itojun unsigned i: 8; 137 1.1 itojun unsigned op: 8; 138 1.1 itojun } iType; 139 1.1 itojun 140 1.1 itojun struct { 141 1.1 itojun unsigned i: 8; 142 1.1 itojun unsigned n: 4; 143 1.1 itojun unsigned op: 4; 144 1.1 itojun } niType; 145 1.1 itojun #endif 146 1.1 itojun } InstFmt; 147 1.1 itojun 148 1.3 uch #define OP_BF 0x8b 149 1.3 uch #define OP_BFS 0x8f 150 1.3 uch #define OP_BT 0x89 151 1.3 uch #define OP_BTS 0x8d 152 1.3 uch #define OP_BRA 0xa 153 1.3 uch #define OP_BSR 0xb 154 1.3 uch #define OP1_BRAF 0x0 155 1.3 uch #define OP2_BRAF 0x23 156 1.3 uch #define OP1_BSRF 0x0 157 1.3 uch #define OP2_BSRF 0x03 158 1.3 uch #define OP1_JMP 0x4 159 1.3 uch #define OP2_JMP 0x2b 160 1.3 uch #define OP1_JSR 0x4 161 1.3 uch #define OP2_JSR 0x0b 162 1.3 uch #define OP_RTS 0xffff 163