Pristine Ack-5.5
[Ack-5.5.git] / mach / i386 / ce / as_table
1 add dst:REG, src:EADDR  ==>     @text1( 0x3);
2                                 mod_RM( dst->reg, src).
3
4 ... dst:ACCU, src:DATA  ==>     @text1( 0x5);
5                                 @text4( %$(src->expr)).
6
7 ... dst:EADDR, src:DATA ==>     small_RMconst(0x81, 0, dst, src).
8
9 and dst:REG, src:EADDR  ==>     @text1( 0x23);
10                                 mod_RM( dst->reg, src).
11
12 ... dst:ACCU, src:DATA  ==>     @text1( 0x25);
13                                 @text4( %$(src->expr)).
14
15 call dst:lABEL          ==>     @text1( 0xe8);
16                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
17
18 ... dst:EADDR           ==>     @text1( 0xff);
19                                 mod_RM( 2, dst).
20
21 cdq                     ==>     @text1(0x99).
22
23 cmp dst:REG, src:EADDR  ==>     @text1( 0x3b);
24                                 mod_RM( dst->reg, src).
25
26 ... dst:ACCU, src:DATA  ==>     @text1( 0x3d);
27                                 @text4( %$(src->expr)).
28
29 ... dst:EADDR, src:DATA ==>     small_RMconst(0x81, 7, dst, src).
30
31 dec dst:REG             ==>     R53( 9, dst->reg).
32
33 ... dst:EADDR           ==>     @text1( 0xff);
34                                 mod_RM( 1, dst).
35
36 div divisor:EADDR       ==>     @text1( 0xf7);
37                                 mod_RM( 6, divisor).
38
39 enter nm:DATA, nm1:DATA ==>     @text1( 0xc8);
40                                 @text2( %$(nm->expr));
41                                 @text1( %$(nm1->expr)).
42
43 idiv divisor:EADDR      ==>     @text1( 0xf7);
44                                 mod_RM( 7, divisor).
45
46 imul mplier:EADDR       ==>     @text1( 0xf7);
47                                 mod_RM( 5, mplier).
48
49 inc dst:REG             ==>     R53( 8, dst->reg).
50
51 ... dst:EADDR           ==>     @text1( 0xff);
52                                 mod_RM( 0, dst).
53
54 jb dst:ILB              ==>     @text1( 0x72);
55                                 @text1( %dist( dst->lab)).
56
57 ... dst:lABEL           ==>     @text1(0x0f);
58                                 @text1(0x82);
59                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
60
61 je dst:ILB              ==>     @text1( 0x74);
62                                 @text1( %dist( dst->lab)).
63
64 ... dst:lABEL           ==>     @text1(0x0f);
65                                 @text1(0x84);
66                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
67
68 jg dst:ILB              ==>     @text1( 0x7f);
69                                 @text1( %dist( dst->lab)).
70
71 ... dst:lABEL           ==>     @text1(0x0f);
72                                 @text1(0x8f);
73                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
74
75 jge dst:ILB             ==>     @text1( 0x7d);
76                                 @text1( %dist( dst->lab)).
77
78 ... dst:lABEL           ==>     @text1(0x0f);
79                                 @text1(0x8d);
80                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
81
82 jl dst:ILB              ==>     @text1( 0x7c);
83                                 @text1( %dist( dst->lab)).
84
85 ... dst:lABEL           ==>     @text1(0x0f);
86                                 @text1(0x8c);
87                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
88
89 jle dst:ILB             ==>     @text1( 0x7e);
90                                 @text1( %dist( dst->lab)).
91
92 ... dst:lABEL           ==>     @text1(0x0f);
93                                 @text1(0x8e);
94                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
95
96 jmp dst:ILB             ==>     @text1( 0xeb);
97                                 @text1( %dist( dst->lab)).
98
99 ... dst:lABEL           ==>     @text1( 0xe9);
100                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
101
102 jne dst:ILB             ==>     @text1( 0x75);
103                                 @text1( %dist( dst->lab)).
104
105 ... dst:lABEL           ==>     @text1(0x0f);
106                                 @text1(0x85);
107                                 @reloc4( %$(dst->lab), %$(dst->off), PC_REL).
108
109 lea dst:REG, src:EADDR  ==>     @text1( 0x8d);
110                                 mod_RM( dst->reg, src).
111
112 loop dst:ILB            ==>     @text1( 0xe2);
113                                 @text1( %dist( dst->lab)).
114
115 mov dst:REG, src:EADDR  ==>     mv_RG_EADDR( dst, src).
116
117 ... dst:REG, src:DATA   ==>     R53( 0x17, dst->reg);
118                                 @text4(%$(src->expr)).
119
120 ... dst:EADDR, src:REG  ==>     @text1( 0x89);
121                                 mod_RM( src->reg, dst).
122
123 ... dst:EADDR, src:DATA ==>     @text1( 0xc7);
124                                 mod_RM( 0, dst);
125                                 @text4( %$(src->expr)).
126
127 ... dst:EADDR, src:lABEL ==>    @text1( 0xc7);
128                                 mod_RM( 0, dst);
129                                 @reloc4( %$(src->lab), %$(src->off), ABSOLUTE).
130
131 movw dst:EADDR, src:REG ==>     @text1( 0x66);  /* operand size prefix */
132                                 @text1( 0x89);
133                                 mod_RM( src->reg, dst).
134
135 movb dst:EADDR, src:REG ==>     @text1( 0x88);
136                                 mod_RM( src->reg, dst).
137
138 movzxb dst:REG, src:EADDR ==>   @text1(0x0f);
139                                 @text1(0xb6);
140                                 mod_RM(dst->reg, src).
141
142 movzx dst:REG, src:EADDR ==>    @text1(0x0f);
143                                 @text1(0xb7);
144                                 mod_RM(dst->reg, src).
145
146 mul mplier:EADDR        ==>     @text1( 0xf7);
147                                 mod_RM( 4, mplier).
148
149 neg dst:EADDR           ==>     @text1( 0xf7);
150                                 mod_RM( 3, dst).
151
152 not dst:EADDR           ==>     @text1( 0xf7);
153                                 mod_RM( 2, dst).
154
155 or dst:REG, src:EADDR   ==>     @text1( 0x0b);
156                                 mod_RM( dst->reg, src).
157
158 pop dst:REG             ==>     R53( 0xb, dst->reg).
159
160 ... dst:EADDR           ==>     @text1( 0x8f);
161                                 mod_RM( 0, dst).
162
163 /*
164 POP dst                 ==>     @if ( push_waiting)
165                                         mov_instr( dst, AX_oper);
166                                         @assign( push_waiting, FALSE).
167                                 @else
168                                         pop_instr( dst).
169                                 @fi.
170 */
171
172 push src:REG            ==>     R53( 0xa, src->reg).
173
174 ... src:DATA            ==>     small_const(0x68, src).
175
176 ... src:lABEL           ==>     @text1(0x68);
177                                 @reloc4(%$(src->lab), %$(src->off), ABSOLUTE).
178
179 ... src:EADDR           ==>     @text1( 0xff);
180                                 mod_RM( 6, src).
181
182 /*
183 PUSH src                ==>     mov_instr( AX_oper, src);
184                                 @assign( push_waiting, TRUE).
185 */
186 ret                     ==>     @text1( 0xc3).  /* Always NEAR! */
187
188 leave                   ==>     @text1( 0xc9).  /* Always NEAR! */
189
190 rol dst:EADDR, src:REG_CL ==>   @text1( 0xd3);
191                                 mod_RM( 0, dst).
192
193 ror dst:EADDR, src:REG_CL ==>   @text1( 0xd3);
194                                 mod_RM( 1, dst).
195
196 sal dst:EADDR, src:REG_CL ==>   @text1( 0xd3);
197                                 mod_RM( 4, dst).
198
199 sar dst:EADDR, src:REG_CL ==>   @text1( 0xd3);
200                                 mod_RM( 7, dst).
201
202 ... dst:EADDR, src:DATA ==>     @text1( 0xc1);
203                                 mod_RM( 7, dst);
204                                 @text1(%$(src->expr)).
205
206 shl dst:EADDR, src:REG_CL ==>   @text1(0xd3);
207                                 mod_RM(4, dst).
208
209 shr dst:EADDR, src:REG_CL ==>   @text1( 0xd3);
210                                 mod_RM( 5, dst).
211
212 sub dst:REG, src:EADDR  ==>     @text1( 0x2b);
213                                 mod_RM( dst->reg, src).
214
215 ... dst:EADDR, src:DATA ==>     small_RMconst(0x81, 5, dst, src).
216
217 test dst:REG, src:EADDR ==>     @text1( 0x85);
218                                 mod_RM( dst->reg, src).
219
220 xchg dst:EADDR, src:REG ==>     @text1( 0x87);
221                                 mod_RM( src->reg, dst).
222
223 xor dst:REG, src:EADDR  ==>     @text1( 0x33);
224                                 mod_RM( dst->reg, src).