1 /* opcode.h - routine numbers and special opcodes for assembler */ 2 3 enum 4 { 5 /* Pseudo-op routine numbers. 6 * Conditionals are first - this is used to test if op is a conditional. 7 */ 8 ELSEOP, 9 ELSEIFOP, 10 ELSEIFCOP, 11 ENDIFOP, 12 IFOP, 13 IFCOP, 14 15 #define MIN_NONCOND ALIGNOP 16 ALIGNOP, 17 ASCIZOP, 18 BLKWOP, 19 BLOCKOP, 20 BSSOP, 21 COMMOP, 22 COMMOP1, 23 DATAOP, 24 ENDBOP, 25 ENTEROP, 26 ENTRYOP, 27 EQUOP, 28 EVENOP, 29 EXPORTOP, 30 FAILOP, 31 FCBOP, 32 FCCOP, 33 FDBOP, 34 #if SIZEOF_OFFSET_T > 2 35 FQBOP, 36 #endif 37 GETOP, 38 GLOBLOP, 39 IDENTOP, 40 IMPORTOP, 41 LCOMMOP, 42 LCOMMOP1, 43 LISTOP, 44 LOCOP, 45 MACLISTOP, 46 MACROOP, 47 MAPOP, 48 ORGOP, 49 PROCEOFOP, 50 RMBOP, 51 SECTOP, 52 SETOP, 53 SETDPOP, 54 TEXTOP, 55 #ifdef I80386 56 USE16OP, 57 USE32OP, 58 #endif 59 WARNOP, 60 61 /* Machine-op routine numbers. */ 62 #ifdef I80386 63 BCC, 64 BSWAP, 65 CALL, 66 CALLI, 67 DIVMUL, 68 ENTER, 69 EwGw, 70 ExGx, 71 F_INHER, 72 F_M, 73 F_M2, 74 F_M2_AX, 75 F_M2_M4, 76 F_M2_M4_M8, 77 F_M4_M8_OPTST, 78 F_M4_M8_ST, 79 F_M4_M8_STST, 80 F_M4_M8_M10_ST, 81 F_M10, 82 F_OPTST, 83 F_ST, 84 F_STST, 85 F_W_INHER, 86 F_W_M, 87 F_W_M2, 88 F_W_M2_AX, 89 GROUP1, 90 GROUP2, 91 GROUP6, 92 GROUP7, 93 GROUP8, 94 GvEv, 95 GvMa, 96 GvMp, 97 IMUL, 98 IN, 99 INCDEC, 100 INHER, 101 INHER16, 102 INHER32, 103 INHER_A, 104 INT, 105 JCC, 106 JCXZ, 107 LEA, 108 MOV, 109 MOVX, 110 NEGNOT, 111 OUT, 112 PUSHPOP, 113 RET, 114 SEG, 115 SETCC, 116 SH_DOUBLE, 117 TEST, 118 XCHG 119 #endif /* I80386 */ 120 121 #ifdef MC6809 122 ALL, /* all address modes allowed, like LDA */ 123 ALTER, /* all but immediate, like STA */ 124 IMMED, /* immediate only (ANDCC, ORCC) */ 125 INDEXD, /* indexed (LEA's) */ 126 INHER, /* inherent, like CLC or CLRA */ 127 LONG, /* long branches */ 128 SHORT, /* short branches */ 129 SSTAK, /* S-stack (PSHS, PULS) */ 130 SWAP, /* TFR, EXG */ 131 USTAK /* U-stack (PSHU,PULU) */ 132 #endif /* MC6809 */ 133 }; 134 135 /* Special opcodes. */ 136 #ifdef I80386 137 # define CMP_OPCODE_BASE 0x38 138 # define CMPSB_OPCODE 0xA6 139 # define CMPSW_OPCODE 0xA7 140 # define ESCAPE_OPCODE_BASE 0xD8 141 # define FST_ENCODED 0x12 142 # define FSTP_ENCODED 0x13 143 # define JMP_OPCODE 0xE9 144 # define JMP_SHORT_OPCODE 0xEB 145 # define JSR_OPCODE 0xE8 146 # define MOVSB_OPCODE 0xA4 147 # define MOVSW_OPCODE 0xA5 148 # define PAGE1_OPCODE 0x0F 149 # define POP_OPCODE 0x8F 150 # define PUSH_OPCODE 0xFF 151 # define WAIT_OPCODE 0x9B 152 #endif 153 154 #ifdef MC6809 155 # define JMP_OPCODE 0x7E 156 # define JSR_OPCODE 0xBD 157 # define PAGE1_OPCODE 0x10 158 # define PAGE2_OPCODE 0x11 159 #endif 160