Revision b6abf97d target-i386/ops_template.h

b/target-i386/ops_template.h
415 415
    T0 = ((DATA_STYPE)src1 <= (DATA_STYPE)src2);
416 416
}
417 417

  
418
/* shifts */
419

  
420
void OPPROTO glue(glue(op_shl, SUFFIX), _T0_T1)(void)
421
{
422
    int count;
423
    count = T1 & SHIFT1_MASK;
424
    T0 = T0 << count;
425
    FORCE_RET();
426
}
427

  
428
void OPPROTO glue(glue(op_shr, SUFFIX), _T0_T1)(void)
429
{
430
    int count;
431
    count = T1 & SHIFT1_MASK;
432
    T0 &= DATA_MASK;
433
    T0 = T0 >> count;
434
    FORCE_RET();
435
}
436

  
437
void OPPROTO glue(glue(op_sar, SUFFIX), _T0_T1)(void)
438
{
439
    int count;
440
    target_long src;
441

  
442
    count = T1 & SHIFT1_MASK;
443
    src = (DATA_STYPE)T0;
444
    T0 = src >> count;
445
    FORCE_RET();
446
}
447

  
448 418
#undef MEM_WRITE
449 419
#include "ops_template_mem.h"
450 420

  

Also available in: Unified diff