Revision 6e0d8677 target-i386/op.c

b/target-i386/op.c
263 263

  
264 264
#endif
265 265

  
266
/* string ops helpers */
267

  
268
void OPPROTO op_addl_ESI_T0(void)
269
{
270
    ESI = (uint32_t)(ESI + T0);
271
}
272

  
273
void OPPROTO op_addw_ESI_T0(void)
274
{
275
    ESI = (ESI & ~0xffff) | ((ESI + T0) & 0xffff);
276
}
277

  
278
void OPPROTO op_addl_EDI_T0(void)
279
{
280
    EDI = (uint32_t)(EDI + T0);
281
}
282

  
283
void OPPROTO op_addw_EDI_T0(void)
284
{
285
    EDI = (EDI & ~0xffff) | ((EDI + T0) & 0xffff);
286
}
287

  
288
void OPPROTO op_decl_ECX(void)
289
{
290
    ECX = (uint32_t)(ECX - 1);
291
}
292

  
293
void OPPROTO op_decw_ECX(void)
294
{
295
    ECX = (ECX & ~0xffff) | ((ECX - 1) & 0xffff);
296
}
297

  
298
#ifdef TARGET_X86_64
299
void OPPROTO op_addq_ESI_T0(void)
300
{
301
    ESI = (ESI + T0);
302
}
303

  
304
void OPPROTO op_addq_EDI_T0(void)
305
{
306
    EDI = (EDI + T0);
307
}
308

  
309
void OPPROTO op_decq_ECX(void)
310
{
311
    ECX--;
312
}
313
#endif
314

  
315 266
/* bcd */
316 267

  
317 268
void OPPROTO op_aam(void)
......
460 411
    FORCE_RET();
461 412
}
462 413

  
463
void OPPROTO op_jz_T0_label(void)
464
{
465
    if (!T0)
466
        GOTO_LABEL_PARAM(1);
467
    FORCE_RET();
468
}
469

  
470 414
/* slow set cases (compute x86 flags) */
471 415
void OPPROTO op_seto_T0_cc(void)
472 416
{
......
527 471
    T0 ^= 1;
528 472
}
529 473

  
530
void OPPROTO op_mov_T0_cc(void)
531
{
532
    T0 = cc_table[CC_OP].compute_all();
533
}
534

  
535 474
/* XXX: clear VIF/VIP in all ops ? */
536 475

  
537 476
void OPPROTO op_movl_eflags_T0(void)

Also available in: Unified diff