Revision 08ba7963 target-mips/op.c
b/target-mips/op.c | ||
---|---|---|
651 | 651 |
FORCE_RET(); |
652 | 652 |
} |
653 | 653 |
|
654 |
#ifdef CONFIG_SOFTFLOAT |
|
655 |
#define clear_invalid() do { \ |
|
656 |
int flags = get_float_exception_flags(&env->fpu->fp_status); \ |
|
657 |
flags &= ~float_flag_invalid; \ |
|
658 |
set_float_exception_flags(flags, &env->fpu->fp_status); \ |
|
659 |
} while(0) |
|
660 |
#else |
|
661 |
#define clear_invalid() do { } while(0) |
|
662 |
#endif |
|
663 |
|
|
664 |
extern void dump_fpu_s(CPUState *env); |
|
665 |
|
|
666 | 654 |
void op_bc1f (void) |
667 | 655 |
{ |
668 | 656 |
T0 = !!(~GET_FP_COND(env->fpu) & (0x1 << PARAM1)); |
... | ... | |
701 | 689 |
FORCE_RET(); |
702 | 690 |
} |
703 | 691 |
|
704 |
void op_tlbwi (void) |
|
705 |
{ |
|
706 |
CALL_FROM_TB0(env->tlb->do_tlbwi); |
|
707 |
FORCE_RET(); |
|
708 |
} |
|
709 |
|
|
710 |
void op_tlbwr (void) |
|
711 |
{ |
|
712 |
CALL_FROM_TB0(env->tlb->do_tlbwr); |
|
713 |
FORCE_RET(); |
|
714 |
} |
|
715 |
|
|
716 |
void op_tlbp (void) |
|
717 |
{ |
|
718 |
CALL_FROM_TB0(env->tlb->do_tlbp); |
|
719 |
FORCE_RET(); |
|
720 |
} |
|
721 |
|
|
722 |
void op_tlbr (void) |
|
723 |
{ |
|
724 |
CALL_FROM_TB0(env->tlb->do_tlbr); |
|
725 |
FORCE_RET(); |
|
726 |
} |
|
727 |
|
|
728 | 692 |
/* Specials */ |
729 |
#if defined (CONFIG_USER_ONLY) |
|
730 |
void op_tls_value (void) |
|
731 |
{ |
|
732 |
T0 = env->tls_value; |
|
733 |
} |
|
734 |
#endif |
|
735 |
|
|
736 |
void op_pmon (void) |
|
737 |
{ |
|
738 |
CALL_FROM_TB1(do_pmon, PARAM1); |
|
739 |
FORCE_RET(); |
|
740 |
} |
|
741 |
|
|
742 | 693 |
void op_di (void) |
743 | 694 |
{ |
744 | 695 |
T0 = env->CP0_Status; |
... | ... | |
755 | 706 |
FORCE_RET(); |
756 | 707 |
} |
757 | 708 |
|
758 |
void op_trap (void) |
|
759 |
{ |
|
760 |
if (T0) { |
|
761 |
CALL_FROM_TB1(do_raise_exception, EXCP_TRAP); |
|
762 |
} |
|
763 |
FORCE_RET(); |
|
764 |
} |
|
765 |
|
|
766 |
void op_debug (void) |
|
767 |
{ |
|
768 |
CALL_FROM_TB1(do_raise_exception, EXCP_DEBUG); |
|
769 |
FORCE_RET(); |
|
770 |
} |
|
771 |
|
|
772 | 709 |
void debug_pre_eret (void); |
773 | 710 |
void debug_post_eret (void); |
774 | 711 |
void op_eret (void) |
... | ... | |
842 | 779 |
FORCE_RET(); |
843 | 780 |
} |
844 | 781 |
|
845 |
void op_save_state (void) |
|
846 |
{ |
|
847 |
env->hflags = PARAM1; |
|
848 |
FORCE_RET(); |
|
849 |
} |
|
850 |
|
|
851 |
void op_wait (void) |
|
852 |
{ |
|
853 |
env->halted = 1; |
|
854 |
CALL_FROM_TB1(do_raise_exception, EXCP_HLT); |
|
855 |
FORCE_RET(); |
|
856 |
} |
|
857 |
|
|
858 | 782 |
/* Bitfield operations. */ |
859 | 783 |
void op_ext(void) |
860 | 784 |
{ |
Also available in: Unified diff