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''' |