Revision 5a63bcb2 target-mips/op.c
b/target-mips/op.c | ||
---|---|---|
493 | 493 |
|
494 | 494 |
void op_sll (void) |
495 | 495 |
{ |
496 |
T0 = (int32_t)((uint32_t)T0 << (uint32_t)T1);
|
|
496 |
T0 = (int32_t)((uint32_t)T0 << T1); |
|
497 | 497 |
RETURN(); |
498 | 498 |
} |
499 | 499 |
|
500 | 500 |
void op_sra (void) |
501 | 501 |
{ |
502 |
T0 = (int32_t)((int32_t)T0 >> (uint32_t)T1);
|
|
502 |
T0 = (int32_t)((int32_t)T0 >> T1); |
|
503 | 503 |
RETURN(); |
504 | 504 |
} |
505 | 505 |
|
506 | 506 |
void op_srl (void) |
507 | 507 |
{ |
508 |
T0 = (int32_t)((uint32_t)T0 >> (uint32_t)T1);
|
|
508 |
T0 = (int32_t)((uint32_t)T0 >> T1); |
|
509 | 509 |
RETURN(); |
510 | 510 |
} |
511 | 511 |
|
... | ... | |
514 | 514 |
target_ulong tmp; |
515 | 515 |
|
516 | 516 |
if (T1) { |
517 |
tmp = (int32_t)((uint32_t)T0 << (0x20 - (uint32_t)T1)); |
|
518 |
T0 = (int32_t)((uint32_t)T0 >> (uint32_t)T1) | tmp; |
|
519 |
} else |
|
520 |
T0 = T1; |
|
517 |
tmp = (int32_t)((uint32_t)T0 << (0x20 - T1)); |
|
518 |
T0 = (int32_t)((uint32_t)T0 >> T1) | tmp; |
|
519 |
} |
|
521 | 520 |
RETURN(); |
522 | 521 |
} |
523 | 522 |
|
... | ... | |
707 | 706 |
if (T1) { |
708 | 707 |
tmp = T0 << (0x40 - T1); |
709 | 708 |
T0 = (T0 >> T1) | tmp; |
710 |
} else |
|
711 |
T0 = T1; |
|
709 |
} |
|
712 | 710 |
RETURN(); |
713 | 711 |
} |
714 | 712 |
|
... | ... | |
719 | 717 |
if (T1) { |
720 | 718 |
tmp = T0 << (0x40 - (32 + T1)); |
721 | 719 |
T0 = (T0 >> (32 + T1)) | tmp; |
722 |
} else |
|
723 |
T0 = T1; |
|
720 |
} |
|
724 | 721 |
RETURN(); |
725 | 722 |
} |
726 | 723 |
|
Also available in: Unified diff