conditional_move.py (6473:2b1bb253c05e) conditional_move.py (6482:e4b8ec60fd4b)
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
7#
8# The software must be used only for Non-Commercial Use which means any

--- 42 unchanged lines hidden (view full) ---

51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56microcode = '''
57def macroop CMOVZ_R_R
58{
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
7#
8# The software must be used only for Non-Commercial Use which means any

--- 42 unchanged lines hidden (view full) ---

51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56microcode = '''
57def macroop CMOVZ_R_R
58{
59 mov reg, reg, reg, flags=(nCZF,)
59 mov reg, reg, regm, flags=(CZF,)
60};
61
62def macroop CMOVZ_R_M
63{
64 ld t1, seg, sib, disp
60 mov reg, reg, regm, flags=(CZF,)
61};
62
63def macroop CMOVZ_R_M
64{
65 ld t1, seg, sib, disp
66 mov reg, reg, reg, flags=(nCZF,)
65 mov reg, reg, t1, flags=(CZF,)
66};
67
68def macroop CMOVZ_R_P
69{
70 rdip t7
71 ld t1, seg, riprel, disp
67 mov reg, reg, t1, flags=(CZF,)
68};
69
70def macroop CMOVZ_R_P
71{
72 rdip t7
73 ld t1, seg, riprel, disp
74 mov reg, reg, reg, flags=(nCZF,)
72 mov reg, reg, t1, flags=(CZF,)
73};
74
75def macroop CMOVNZ_R_R
76{
75 mov reg, reg, t1, flags=(CZF,)
76};
77
78def macroop CMOVNZ_R_R
79{
80 mov reg, reg, reg, flags=(CZF,)
77 mov reg, reg, regm, flags=(nCZF,)
78};
79
80def macroop CMOVNZ_R_M
81{
82 ld t1, seg, sib, disp
81 mov reg, reg, regm, flags=(nCZF,)
82};
83
84def macroop CMOVNZ_R_M
85{
86 ld t1, seg, sib, disp
87 mov reg, reg, reg, flags=(CZF,)
83 mov reg, reg, t1, flags=(nCZF,)
84};
85
86def macroop CMOVNZ_R_P
87{
88 rdip t7
89 ld t1, seg, riprel, disp
88 mov reg, reg, t1, flags=(nCZF,)
89};
90
91def macroop CMOVNZ_R_P
92{
93 rdip t7
94 ld t1, seg, riprel, disp
95 mov reg, reg, reg, flags=(CZF,)
90 mov reg, reg, t1, flags=(nCZF,)
91};
92
93def macroop CMOVB_R_R
94{
96 mov reg, reg, t1, flags=(nCZF,)
97};
98
99def macroop CMOVB_R_R
100{
101 mov reg, reg, reg, flags=(nCCF,)
95 mov reg, reg, regm, flags=(CCF,)
96};
97
98def macroop CMOVB_R_M
99{
100 ld t1, seg, sib, disp
102 mov reg, reg, regm, flags=(CCF,)
103};
104
105def macroop CMOVB_R_M
106{
107 ld t1, seg, sib, disp
108 mov reg, reg, reg, flags=(nCCF,)
101 mov reg, reg, t1, flags=(CCF,)
102};
103
104def macroop CMOVB_R_P
105{
106 rdip t7
107 ld t1, seg, riprel, disp
109 mov reg, reg, t1, flags=(CCF,)
110};
111
112def macroop CMOVB_R_P
113{
114 rdip t7
115 ld t1, seg, riprel, disp
116 mov reg, reg, reg, flags=(nCCF,)
108 mov reg, reg, t1, flags=(CCF,)
109};
110
111def macroop CMOVNB_R_R
112{
117 mov reg, reg, t1, flags=(CCF,)
118};
119
120def macroop CMOVNB_R_R
121{
122 mov reg, reg, reg, flags=(CCF,)
113 mov reg, reg, regm, flags=(nCCF,)
114};
115
116def macroop CMOVNB_R_M
117{
118 ld t1, seg, sib, disp
123 mov reg, reg, regm, flags=(nCCF,)
124};
125
126def macroop CMOVNB_R_M
127{
128 ld t1, seg, sib, disp
129 mov reg, reg, reg, flags=(CCF,)
119 mov reg, reg, t1, flags=(nCCF,)
120};
121
122def macroop CMOVNB_R_P
123{
124 rdip t7
125 ld t1, seg, riprel, disp
130 mov reg, reg, t1, flags=(nCCF,)
131};
132
133def macroop CMOVNB_R_P
134{
135 rdip t7
136 ld t1, seg, riprel, disp
137 mov reg, reg, reg, flags=(CCF,)
126 mov reg, reg, t1, flags=(nCCF,)
127};
128
129def macroop CMOVBE_R_R
130{
138 mov reg, reg, t1, flags=(nCCF,)
139};
140
141def macroop CMOVBE_R_R
142{
143 mov reg, reg, reg, flags=(nCCvZF,)
131 mov reg, reg, regm, flags=(CCvZF,)
132};
133
134def macroop CMOVBE_R_M
135{
136 ld t1, seg, sib, disp
144 mov reg, reg, regm, flags=(CCvZF,)
145};
146
147def macroop CMOVBE_R_M
148{
149 ld t1, seg, sib, disp
150 mov reg, reg, reg, flags=(nCCvZF,)
137 mov reg, reg, t1, flags=(CCvZF,)
138};
139
140def macroop CMOVBE_R_P
141{
142 rdip t7
143 ld t1, seg, riprel, disp
151 mov reg, reg, t1, flags=(CCvZF,)
152};
153
154def macroop CMOVBE_R_P
155{
156 rdip t7
157 ld t1, seg, riprel, disp
158 mov reg, reg, reg, flags=(nCCvZF,)
144 mov reg, reg, t1, flags=(CCvZF,)
145};
146
147def macroop CMOVNBE_R_R
148{
159 mov reg, reg, t1, flags=(CCvZF,)
160};
161
162def macroop CMOVNBE_R_R
163{
164 mov reg, reg, reg, flags=(CCvZF,)
149 mov reg, reg, regm, flags=(nCCvZF,)
150};
151
152def macroop CMOVNBE_R_M
153{
154 ld t1, seg, sib, disp
165 mov reg, reg, regm, flags=(nCCvZF,)
166};
167
168def macroop CMOVNBE_R_M
169{
170 ld t1, seg, sib, disp
171 mov reg, reg, reg, flags=(CCvZF,)
155 mov reg, reg, t1, flags=(nCCvZF,)
156};
157
158def macroop CMOVNBE_R_P
159{
160 rdip t7
161 ld t1, seg, riprel, disp
172 mov reg, reg, t1, flags=(nCCvZF,)
173};
174
175def macroop CMOVNBE_R_P
176{
177 rdip t7
178 ld t1, seg, riprel, disp
179 mov reg, reg, reg, flags=(CCvZF,)
162 mov reg, reg, t1, flags=(nCCvZF,)
163};
164
165def macroop CMOVS_R_R
166{
180 mov reg, reg, t1, flags=(nCCvZF,)
181};
182
183def macroop CMOVS_R_R
184{
185 mov reg, reg, reg, flags=(nCSF,)
167 mov reg, reg, regm, flags=(CSF,)
168};
169
170def macroop CMOVS_R_M
171{
172 ld t1, seg, sib, disp
186 mov reg, reg, regm, flags=(CSF,)
187};
188
189def macroop CMOVS_R_M
190{
191 ld t1, seg, sib, disp
192 mov reg, reg, reg, flags=(nCSF,)
173 mov reg, reg, t1, flags=(CSF,)
174};
175
176def macroop CMOVS_R_P
177{
178 rdip t7
179 ld t1, seg, riprel, disp
193 mov reg, reg, t1, flags=(CSF,)
194};
195
196def macroop CMOVS_R_P
197{
198 rdip t7
199 ld t1, seg, riprel, disp
200 mov reg, reg, reg, flags=(nCSF,)
180 mov reg, reg, t1, flags=(CSF,)
181};
182
183def macroop CMOVNS_R_R
184{
201 mov reg, reg, t1, flags=(CSF,)
202};
203
204def macroop CMOVNS_R_R
205{
206 mov reg, reg, reg, flags=(CSF,)
185 mov reg, reg, regm, flags=(nCSF,)
186};
187
188def macroop CMOVNS_R_M
189{
190 ld t1, seg, sib, disp
207 mov reg, reg, regm, flags=(nCSF,)
208};
209
210def macroop CMOVNS_R_M
211{
212 ld t1, seg, sib, disp
213 mov reg, reg, reg, flags=(CSF,)
191 mov reg, reg, t1, flags=(nCSF,)
192};
193
194def macroop CMOVNS_R_P
195{
196 rdip t7
197 ld t1, seg, riprel, disp
214 mov reg, reg, t1, flags=(nCSF,)
215};
216
217def macroop CMOVNS_R_P
218{
219 rdip t7
220 ld t1, seg, riprel, disp
221 mov reg, reg, reg, flags=(CSF,)
198 mov reg, reg, t1, flags=(nCSF,)
199};
200
201def macroop CMOVP_R_R
202{
222 mov reg, reg, t1, flags=(nCSF,)
223};
224
225def macroop CMOVP_R_R
226{
227 mov reg, reg, reg, flags=(nCPF,)
203 mov reg, reg, regm, flags=(CPF,)
204};
205
206def macroop CMOVP_R_M
207{
208 ld t1, seg, sib, disp
228 mov reg, reg, regm, flags=(CPF,)
229};
230
231def macroop CMOVP_R_M
232{
233 ld t1, seg, sib, disp
234 mov reg, reg, reg, flags=(nCPF,)
209 mov reg, reg, t1, flags=(CPF,)
210};
211
212def macroop CMOVP_R_P
213{
214 rdip t7
215 ld t1, seg, riprel, disp
235 mov reg, reg, t1, flags=(CPF,)
236};
237
238def macroop CMOVP_R_P
239{
240 rdip t7
241 ld t1, seg, riprel, disp
242 mov reg, reg, reg, flags=(nCPF,)
216 mov reg, reg, t1, flags=(CPF,)
217};
218
219def macroop CMOVNP_R_R
220{
243 mov reg, reg, t1, flags=(CPF,)
244};
245
246def macroop CMOVNP_R_R
247{
248 mov reg, reg, reg, flags=(CPF,)
221 mov reg, reg, regm, flags=(nCPF,)
222};
223
224def macroop CMOVNP_R_M
225{
226 ld t1, seg, sib, disp
249 mov reg, reg, regm, flags=(nCPF,)
250};
251
252def macroop CMOVNP_R_M
253{
254 ld t1, seg, sib, disp
255 mov reg, reg, reg, flags=(CPF,)
227 mov reg, reg, t1, flags=(nCPF,)
228};
229
230def macroop CMOVNP_R_P
231{
232 rdip t7
233 ld t1, seg, riprel, disp
256 mov reg, reg, t1, flags=(nCPF,)
257};
258
259def macroop CMOVNP_R_P
260{
261 rdip t7
262 ld t1, seg, riprel, disp
263 mov reg, reg, reg, flags=(CPF,)
234 mov reg, reg, t1, flags=(nCPF,)
235};
236
237def macroop CMOVL_R_R
238{
264 mov reg, reg, t1, flags=(nCPF,)
265};
266
267def macroop CMOVL_R_R
268{
269 mov reg, reg, reg, flags=(nCSxOF,)
239 mov reg, reg, regm, flags=(CSxOF,)
240};
241
242def macroop CMOVL_R_M
243{
244 ld t1, seg, sib, disp
270 mov reg, reg, regm, flags=(CSxOF,)
271};
272
273def macroop CMOVL_R_M
274{
275 ld t1, seg, sib, disp
276 mov reg, reg, reg, flags=(nCSxOF,)
245 mov reg, reg, t1, flags=(CSxOF,)
246};
247
248def macroop CMOVL_R_P
249{
250 rdip t7
251 ld t1, seg, riprel, disp
277 mov reg, reg, t1, flags=(CSxOF,)
278};
279
280def macroop CMOVL_R_P
281{
282 rdip t7
283 ld t1, seg, riprel, disp
284 mov reg, reg, reg, flags=(nCSxOF,)
252 mov reg, reg, t1, flags=(CSxOF,)
253};
254
255def macroop CMOVNL_R_R
256{
285 mov reg, reg, t1, flags=(CSxOF,)
286};
287
288def macroop CMOVNL_R_R
289{
290 mov reg, reg, reg, flags=(CSxOF,)
257 mov reg, reg, regm, flags=(nCSxOF,)
258};
259
260def macroop CMOVNL_R_M
261{
262 ld t1, seg, sib, disp
291 mov reg, reg, regm, flags=(nCSxOF,)
292};
293
294def macroop CMOVNL_R_M
295{
296 ld t1, seg, sib, disp
297 mov reg, reg, reg, flags=(CSxOF,)
263 mov reg, reg, t1, flags=(nCSxOF,)
264};
265
266def macroop CMOVNL_R_P
267{
268 rdip t7
269 ld t1, seg, riprel, disp
298 mov reg, reg, t1, flags=(nCSxOF,)
299};
300
301def macroop CMOVNL_R_P
302{
303 rdip t7
304 ld t1, seg, riprel, disp
305 mov reg, reg, reg, flags=(CSxOF,)
270 mov reg, reg, t1, flags=(nCSxOF,)
271};
272
273def macroop CMOVLE_R_R
274{
306 mov reg, reg, t1, flags=(nCSxOF,)
307};
308
309def macroop CMOVLE_R_R
310{
311 mov reg, reg, reg, flags=(nCSxOvZF,)
275 mov reg, reg, regm, flags=(CSxOvZF,)
276};
277
278def macroop CMOVLE_R_M
279{
280 ld t1, seg, sib, disp
312 mov reg, reg, regm, flags=(CSxOvZF,)
313};
314
315def macroop CMOVLE_R_M
316{
317 ld t1, seg, sib, disp
318 mov reg, reg, reg, flags=(nCSxOvZF,)
281 mov reg, reg, t1, flags=(CSxOvZF,)
282};
283
284def macroop CMOVLE_R_P
285{
286 rdip t7
287 ld t1, seg, riprel, disp
319 mov reg, reg, t1, flags=(CSxOvZF,)
320};
321
322def macroop CMOVLE_R_P
323{
324 rdip t7
325 ld t1, seg, riprel, disp
326 mov reg, reg, reg, flags=(nCSxOvZF,)
288 mov reg, reg, t1, flags=(CSxOvZF,)
289};
290
291def macroop CMOVNLE_R_R
292{
327 mov reg, reg, t1, flags=(CSxOvZF,)
328};
329
330def macroop CMOVNLE_R_R
331{
332 mov reg, reg, reg, flags=(CSxOvZF,)
293 mov reg, reg, regm, flags=(nCSxOvZF,)
294};
295
296def macroop CMOVNLE_R_M
297{
298 ld t1, seg, sib, disp
333 mov reg, reg, regm, flags=(nCSxOvZF,)
334};
335
336def macroop CMOVNLE_R_M
337{
338 ld t1, seg, sib, disp
339 mov reg, reg, reg, flags=(CSxOvZF,)
299 mov reg, reg, t1, flags=(nCSxOvZF,)
300};
301
302def macroop CMOVNLE_R_P
303{
304 rdip t7
305 ld t1, seg, riprel, disp
340 mov reg, reg, t1, flags=(nCSxOvZF,)
341};
342
343def macroop CMOVNLE_R_P
344{
345 rdip t7
346 ld t1, seg, riprel, disp
347 mov reg, reg, reg, flags=(CSxOvZF,)
306 mov reg, reg, t1, flags=(nCSxOvZF,)
307};
308
309def macroop CMOVO_R_R
310{
348 mov reg, reg, t1, flags=(nCSxOvZF,)
349};
350
351def macroop CMOVO_R_R
352{
353 mov reg, reg, reg, flags=(nCOF,)
311 mov reg, reg, regm, flags=(COF,)
312};
313
314def macroop CMOVO_R_M
315{
316 ld t1, seg, sib, disp
354 mov reg, reg, regm, flags=(COF,)
355};
356
357def macroop CMOVO_R_M
358{
359 ld t1, seg, sib, disp
360 mov reg, reg, reg, flags=(nCOF,)
317 mov reg, reg, t1, flags=(COF,)
318};
319
320def macroop CMOVO_R_P
321{
322 rdip t7
323 ld t1, seg, riprel, disp
361 mov reg, reg, t1, flags=(COF,)
362};
363
364def macroop CMOVO_R_P
365{
366 rdip t7
367 ld t1, seg, riprel, disp
368 mov reg, reg, reg, flags=(nCOF,)
324 mov reg, reg, t1, flags=(COF,)
325};
326
327def macroop CMOVNO_R_R
328{
369 mov reg, reg, t1, flags=(COF,)
370};
371
372def macroop CMOVNO_R_R
373{
374 mov reg, reg, reg, flags=(COF,)
329 mov reg, reg, regm, flags=(nCOF,)
330};
331
332def macroop CMOVNO_R_M
333{
334 ld t1, seg, sib, disp
375 mov reg, reg, regm, flags=(nCOF,)
376};
377
378def macroop CMOVNO_R_M
379{
380 ld t1, seg, sib, disp
381 mov reg, reg, reg, flags=(COF,)
335 mov reg, reg, t1, flags=(nCOF,)
336};
337
338def macroop CMOVNO_R_P
339{
340 rdip t7
341 ld t1, seg, riprel, disp
382 mov reg, reg, t1, flags=(nCOF,)
383};
384
385def macroop CMOVNO_R_P
386{
387 rdip t7
388 ld t1, seg, riprel, disp
389 mov reg, reg, reg, flags=(COF,)
342 mov reg, reg, t1, flags=(nCOF,)
343};
344'''
390 mov reg, reg, t1, flags=(nCOF,)
391};
392'''