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