Revision 09c69c5b
b/target-mips/op.c | ||
---|---|---|
1647 | 1647 |
#define RESTORE_ROUNDING_MODE \ |
1648 | 1648 |
set_float_rounding_mode(ieee_rm[env->fcr31 & 3], &env->fp_status) |
1649 | 1649 |
|
1650 |
inline char ieee_ex_to_mips(char ieee)
|
|
1650 |
inline char ieee_ex_to_mips(char xcpt)
|
|
1651 | 1651 |
{ |
1652 |
return (ieee & float_flag_inexact) >> 5 |
|
|
1653 |
(ieee & float_flag_underflow) >> 3 |
|
|
1654 |
(ieee & float_flag_overflow) >> 1 |
|
|
1655 |
(ieee & float_flag_divbyzero) << 1 |
|
|
1656 |
(ieee & float_flag_invalid) << 4;
|
|
1652 |
return (xcpt & float_flag_inexact) >> 5 |
|
|
1653 |
(xcpt & float_flag_underflow) >> 3 |
|
|
1654 |
(xcpt & float_flag_overflow) >> 1 |
|
|
1655 |
(xcpt & float_flag_divbyzero) << 1 |
|
|
1656 |
(xcpt & float_flag_invalid) << 4;
|
|
1657 | 1657 |
} |
1658 | 1658 |
|
1659 |
inline char mips_ex_to_ieee(char mips)
|
|
1659 |
inline char mips_ex_to_ieee(char xcpt)
|
|
1660 | 1660 |
{ |
1661 |
return (mips & FP_INEXACT) << 5 |
|
|
1662 |
(mips & FP_UNDERFLOW) << 3 |
|
|
1663 |
(mips & FP_OVERFLOW) << 1 |
|
|
1664 |
(mips & FP_DIV0) >> 1 |
|
|
1665 |
(mips & FP_INVALID) >> 4;
|
|
1661 |
return (xcpt & FP_INEXACT) << 5 |
|
|
1662 |
(xcpt & FP_UNDERFLOW) << 3 |
|
|
1663 |
(xcpt & FP_OVERFLOW) << 1 |
|
|
1664 |
(xcpt & FP_DIV0) >> 1 |
|
|
1665 |
(xcpt & FP_INVALID) >> 4;
|
|
1666 | 1666 |
} |
1667 | 1667 |
|
1668 | 1668 |
inline void update_fcr31(void) |
Also available in: Unified diff