163 lines
2.1 KiB
C
163 lines
2.1 KiB
C
/* $NetBSD: sh_opcode.h,v 1.1 1999/09/13 10:31:22 itojun Exp $ */
|
|
|
|
typedef union {
|
|
unsigned word;
|
|
|
|
#if BYTE_ORDER == BIG_ENDIAN
|
|
struct {
|
|
unsigned op: 16;
|
|
} oType;
|
|
|
|
struct {
|
|
unsigned op1: 4;
|
|
unsigned n: 4;
|
|
unsigned op2: 8;
|
|
} nType;
|
|
|
|
struct {
|
|
unsigned op1: 4;
|
|
unsigned m: 4;
|
|
unsigned op2: 8;
|
|
} mType;
|
|
|
|
struct {
|
|
unsigned op1: 4;
|
|
unsigned n: 4;
|
|
unsigned m: 4;
|
|
unsigned op2: 4;
|
|
} nmType;
|
|
|
|
struct {
|
|
unsigned op: 8;
|
|
unsigned m: 4;
|
|
unsigned d: 4;
|
|
} mdType;
|
|
|
|
struct {
|
|
unsigned op: 8;
|
|
unsigned n: 4;
|
|
unsigned d: 4;
|
|
} nd4Type;
|
|
|
|
struct {
|
|
unsigned op: 4;
|
|
unsigned n: 4;
|
|
unsigned m: 4;
|
|
unsigned d: 4;
|
|
} nmdType;
|
|
|
|
struct {
|
|
unsigned op: 8;
|
|
unsigned d: 8;
|
|
} dType;
|
|
|
|
struct {
|
|
unsigned op: 4;
|
|
unsigned d: 12;
|
|
} d12Type;
|
|
|
|
struct {
|
|
unsigned op: 4;
|
|
unsigned n: 4;
|
|
unsigned d: 8;
|
|
} nd8Type;
|
|
|
|
struct {
|
|
unsigned op: 8;
|
|
unsigned i: 8;
|
|
} iType;
|
|
|
|
struct {
|
|
unsigned op: 4;
|
|
unsigned n: 4;
|
|
unsigned i: 8;
|
|
} niType;
|
|
#endif
|
|
#if BYTE_ORDER == LITTLE_ENDIAN
|
|
struct {
|
|
unsigned op: 16;
|
|
} oType;
|
|
|
|
struct {
|
|
unsigned op2: 8;
|
|
unsigned n: 4;
|
|
unsigned op1: 4;
|
|
} nType;
|
|
|
|
struct {
|
|
unsigned op2: 8;
|
|
unsigned m: 4;
|
|
unsigned op1: 4;
|
|
} mType;
|
|
|
|
struct {
|
|
unsigned op2: 4;
|
|
unsigned m: 4;
|
|
unsigned n: 4;
|
|
unsigned op1: 4;
|
|
} nmType;
|
|
|
|
struct {
|
|
unsigned d: 4;
|
|
unsigned m: 4;
|
|
unsigned op: 8;
|
|
} mdType;
|
|
|
|
struct {
|
|
unsigned d: 4;
|
|
unsigned n: 4;
|
|
unsigned op: 8;
|
|
} nd4Type;
|
|
|
|
struct {
|
|
unsigned d: 4;
|
|
unsigned m: 4;
|
|
unsigned n: 4;
|
|
unsigned op: 4;
|
|
} nmdType;
|
|
|
|
struct {
|
|
unsigned d: 8;
|
|
unsigned op: 8;
|
|
} dType;
|
|
|
|
struct {
|
|
unsigned d: 12;
|
|
unsigned op: 4;
|
|
} d12Type;
|
|
|
|
struct {
|
|
unsigned d: 8;
|
|
unsigned n: 4;
|
|
unsigned op: 4;
|
|
} nd8Type;
|
|
|
|
struct {
|
|
unsigned i: 8;
|
|
unsigned op: 8;
|
|
} iType;
|
|
|
|
struct {
|
|
unsigned i: 8;
|
|
unsigned n: 4;
|
|
unsigned op: 4;
|
|
} niType;
|
|
#endif
|
|
} InstFmt;
|
|
|
|
#define OP_BF 0x8b
|
|
#define OP_BFS 0x8f
|
|
#define OP_BT 0x89
|
|
#define OP_BTS 0x8d
|
|
#define OP_BRA 0xa
|
|
#define OP_BSR 0xb
|
|
#define OP1_BRAF 0x0
|
|
#define OP2_BRAF 0x23
|
|
#define OP1_BSRF 0x0
|
|
#define OP2_BSRF 0x03
|
|
#define OP1_JMP 0x4
|
|
#define OP2_JMP 0x2b
|
|
#define OP1_JSR 0x4
|
|
#define OP2_JSR 0x0b
|
|
#define OP_RTS 0xffff
|