463 |
/* shifts */ |
/* shifts */ |
464 |
|
|
465 |
/* T1 based */ |
/* T1 based */ |
466 |
|
|
467 |
void OPPROTO op_shll_T1_im(void) |
void OPPROTO op_shll_T1_im(void) |
468 |
{ |
{ |
469 |
T1 = T1 << PARAM1; |
T1 = T1 << PARAM1; |
474 |
T1 = (uint32_t)T1 >> PARAM1; |
T1 = (uint32_t)T1 >> PARAM1; |
475 |
} |
} |
476 |
|
|
477 |
|
void OPPROTO op_shrl_T1_0(void) |
478 |
|
{ |
479 |
|
T1 = 0; |
480 |
|
} |
481 |
|
|
482 |
void OPPROTO op_sarl_T1_im(void) |
void OPPROTO op_sarl_T1_im(void) |
483 |
{ |
{ |
484 |
T1 = (int32_t)T1 >> PARAM1; |
T1 = (int32_t)T1 >> PARAM1; |
485 |
} |
} |
486 |
|
|
487 |
|
void OPPROTO op_sarl_T1_0(void) |
488 |
|
{ |
489 |
|
T1 = (int32_t)T1 >> 31; |
490 |
|
} |
491 |
|
|
492 |
void OPPROTO op_rorl_T1_im(void) |
void OPPROTO op_rorl_T1_im(void) |
493 |
{ |
{ |
494 |
int shift; |
int shift; |
514 |
T1 = (uint32_t)T1 >> PARAM1; |
T1 = (uint32_t)T1 >> PARAM1; |
515 |
} |
} |
516 |
|
|
517 |
|
void OPPROTO op_shrl_T1_0_cc(void) |
518 |
|
{ |
519 |
|
env->CF = (T1 >> 31) & 1; |
520 |
|
T1 = 0; |
521 |
|
} |
522 |
|
|
523 |
void OPPROTO op_sarl_T1_im_cc(void) |
void OPPROTO op_sarl_T1_im_cc(void) |
524 |
{ |
{ |
525 |
env->CF = (T1 >> (PARAM1 - 1)) & 1; |
env->CF = (T1 >> (PARAM1 - 1)) & 1; |
526 |
T1 = (int32_t)T1 >> PARAM1; |
T1 = (int32_t)T1 >> PARAM1; |
527 |
} |
} |
528 |
|
|
529 |
|
void OPPROTO op_sarl_T1_0_cc(void) |
530 |
|
{ |
531 |
|
env->CF = (T1 >> 31) & 1; |
532 |
|
T1 = (int32_t)T1 >> 31; |
533 |
|
} |
534 |
|
|
535 |
void OPPROTO op_rorl_T1_im_cc(void) |
void OPPROTO op_rorl_T1_im_cc(void) |
536 |
{ |
{ |
537 |
int shift; |
int shift; |
559 |
T2 = (uint32_t)T2 >> PARAM1; |
T2 = (uint32_t)T2 >> PARAM1; |
560 |
} |
} |
561 |
|
|
562 |
|
void OPPROTO op_shrl_T2_0(void) |
563 |
|
{ |
564 |
|
T2 = 0; |
565 |
|
} |
566 |
|
|
567 |
void OPPROTO op_sarl_T2_im(void) |
void OPPROTO op_sarl_T2_im(void) |
568 |
{ |
{ |
569 |
T2 = (int32_t)T2 >> PARAM1; |
T2 = (int32_t)T2 >> PARAM1; |
570 |
} |
} |
571 |
|
|
572 |
|
void OPPROTO op_sarl_T2_0(void) |
573 |
|
{ |
574 |
|
T2 = (int32_t)T2 >> 31; |
575 |
|
} |
576 |
|
|
577 |
void OPPROTO op_rorl_T2_im(void) |
void OPPROTO op_rorl_T2_im(void) |
578 |
{ |
{ |
579 |
int shift; |
int shift; |
581 |
T2 = ((uint32_t)T2 >> shift) | (T2 << (32 - shift)); |
T2 = ((uint32_t)T2 >> shift) | (T2 << (32 - shift)); |
582 |
} |
} |
583 |
|
|
584 |
|
void OPPROTO op_rrxl_T2(void) |
585 |
|
{ |
586 |
|
T2 = ((uint32_t)T2 >> 1) | ((uint32_t)env->CF << 31); |
587 |
|
} |
588 |
|
|
589 |
/* T1 based, use T0 as shift count */ |
/* T1 based, use T0 as shift count */ |
590 |
|
|
591 |
void OPPROTO op_shll_T1_T0(void) |
void OPPROTO op_shll_T1_T0(void) |