* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / linux86-0.16.17 / as / opcode.h
blob1d91dc23db2aff54f926c70b349862d171ae19d6
1 /* opcode.h - routine numbers and special opcodes for assembler */
3 enum
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,
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,
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 */
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 */
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
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