1*6d338ff4Such /* $NetBSD: sh_opcode.h,v 1.3 2002/04/28 17:10:36 uch Exp $ */ 265363da2Sitojun 365363da2Sitojun typedef union { 465363da2Sitojun unsigned word; 565363da2Sitojun 6e0499770Smsaitoh #if _BYTE_ORDER == BIG_ENDIAN 765363da2Sitojun struct { 865363da2Sitojun unsigned op: 16; 965363da2Sitojun } oType; 1065363da2Sitojun 1165363da2Sitojun struct { 1265363da2Sitojun unsigned op1: 4; 1365363da2Sitojun unsigned n: 4; 1465363da2Sitojun unsigned op2: 8; 1565363da2Sitojun } nType; 1665363da2Sitojun 1765363da2Sitojun struct { 1865363da2Sitojun unsigned op1: 4; 1965363da2Sitojun unsigned m: 4; 2065363da2Sitojun unsigned op2: 8; 2165363da2Sitojun } mType; 2265363da2Sitojun 2365363da2Sitojun struct { 2465363da2Sitojun unsigned op1: 4; 2565363da2Sitojun unsigned n: 4; 2665363da2Sitojun unsigned m: 4; 2765363da2Sitojun unsigned op2: 4; 2865363da2Sitojun } nmType; 2965363da2Sitojun 3065363da2Sitojun struct { 3165363da2Sitojun unsigned op: 8; 3265363da2Sitojun unsigned m: 4; 3365363da2Sitojun unsigned d: 4; 3465363da2Sitojun } mdType; 3565363da2Sitojun 3665363da2Sitojun struct { 3765363da2Sitojun unsigned op: 8; 3865363da2Sitojun unsigned n: 4; 3965363da2Sitojun unsigned d: 4; 4065363da2Sitojun } nd4Type; 4165363da2Sitojun 4265363da2Sitojun struct { 4365363da2Sitojun unsigned op: 4; 4465363da2Sitojun unsigned n: 4; 4565363da2Sitojun unsigned m: 4; 4665363da2Sitojun unsigned d: 4; 4765363da2Sitojun } nmdType; 4865363da2Sitojun 4965363da2Sitojun struct { 5065363da2Sitojun unsigned op: 8; 5165363da2Sitojun unsigned d: 8; 5265363da2Sitojun } dType; 5365363da2Sitojun 5465363da2Sitojun struct { 5565363da2Sitojun unsigned op: 4; 5665363da2Sitojun unsigned d: 12; 5765363da2Sitojun } d12Type; 5865363da2Sitojun 5965363da2Sitojun struct { 6065363da2Sitojun unsigned op: 4; 6165363da2Sitojun unsigned n: 4; 6265363da2Sitojun unsigned d: 8; 6365363da2Sitojun } nd8Type; 6465363da2Sitojun 6565363da2Sitojun struct { 6665363da2Sitojun unsigned op: 8; 6765363da2Sitojun unsigned i: 8; 6865363da2Sitojun } iType; 6965363da2Sitojun 7065363da2Sitojun struct { 7165363da2Sitojun unsigned op: 4; 7265363da2Sitojun unsigned n: 4; 7365363da2Sitojun unsigned i: 8; 7465363da2Sitojun } niType; 7565363da2Sitojun #endif 76e0499770Smsaitoh #if _BYTE_ORDER == LITTLE_ENDIAN 7765363da2Sitojun struct { 7865363da2Sitojun unsigned op: 16; 7965363da2Sitojun } oType; 8065363da2Sitojun 8165363da2Sitojun struct { 8265363da2Sitojun unsigned op2: 8; 8365363da2Sitojun unsigned n: 4; 8465363da2Sitojun unsigned op1: 4; 8565363da2Sitojun } nType; 8665363da2Sitojun 8765363da2Sitojun struct { 8865363da2Sitojun unsigned op2: 8; 8965363da2Sitojun unsigned m: 4; 9065363da2Sitojun unsigned op1: 4; 9165363da2Sitojun } mType; 9265363da2Sitojun 9365363da2Sitojun struct { 9465363da2Sitojun unsigned op2: 4; 9565363da2Sitojun unsigned m: 4; 9665363da2Sitojun unsigned n: 4; 9765363da2Sitojun unsigned op1: 4; 9865363da2Sitojun } nmType; 9965363da2Sitojun 10065363da2Sitojun struct { 10165363da2Sitojun unsigned d: 4; 10265363da2Sitojun unsigned m: 4; 10365363da2Sitojun unsigned op: 8; 10465363da2Sitojun } mdType; 10565363da2Sitojun 10665363da2Sitojun struct { 10765363da2Sitojun unsigned d: 4; 10865363da2Sitojun unsigned n: 4; 10965363da2Sitojun unsigned op: 8; 11065363da2Sitojun } nd4Type; 11165363da2Sitojun 11265363da2Sitojun struct { 11365363da2Sitojun unsigned d: 4; 11465363da2Sitojun unsigned m: 4; 11565363da2Sitojun unsigned n: 4; 11665363da2Sitojun unsigned op: 4; 11765363da2Sitojun } nmdType; 11865363da2Sitojun 11965363da2Sitojun struct { 12065363da2Sitojun unsigned d: 8; 12165363da2Sitojun unsigned op: 8; 12265363da2Sitojun } dType; 12365363da2Sitojun 12465363da2Sitojun struct { 12565363da2Sitojun unsigned d: 12; 12665363da2Sitojun unsigned op: 4; 12765363da2Sitojun } d12Type; 12865363da2Sitojun 12965363da2Sitojun struct { 13065363da2Sitojun unsigned d: 8; 13165363da2Sitojun unsigned n: 4; 13265363da2Sitojun unsigned op: 4; 13365363da2Sitojun } nd8Type; 13465363da2Sitojun 13565363da2Sitojun struct { 13665363da2Sitojun unsigned i: 8; 13765363da2Sitojun unsigned op: 8; 13865363da2Sitojun } iType; 13965363da2Sitojun 14065363da2Sitojun struct { 14165363da2Sitojun unsigned i: 8; 14265363da2Sitojun unsigned n: 4; 14365363da2Sitojun unsigned op: 4; 14465363da2Sitojun } niType; 14565363da2Sitojun #endif 14665363da2Sitojun } InstFmt; 14765363da2Sitojun 14865363da2Sitojun #define OP_BF 0x8b 14965363da2Sitojun #define OP_BFS 0x8f 15065363da2Sitojun #define OP_BT 0x89 15165363da2Sitojun #define OP_BTS 0x8d 15265363da2Sitojun #define OP_BRA 0xa 15365363da2Sitojun #define OP_BSR 0xb 15465363da2Sitojun #define OP1_BRAF 0x0 15565363da2Sitojun #define OP2_BRAF 0x23 15665363da2Sitojun #define OP1_BSRF 0x0 15765363da2Sitojun #define OP2_BSRF 0x03 15865363da2Sitojun #define OP1_JMP 0x4 15965363da2Sitojun #define OP2_JMP 0x2b 16065363da2Sitojun #define OP1_JSR 0x4 16165363da2Sitojun #define OP2_JSR 0x0b 16265363da2Sitojun #define OP_RTS 0xffff 163