Changeset 98134 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jan 19, 2023 11:46:27 AM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r98132 r98134 14460 14460 } 14461 14461 14462 #ifdef IEM_WITHOUT_ASSEMBLY 14462 14463 14463 14464 /** … … 14583 14584 } 14584 14585 14586 #endif /* IEM_WITHOUT_ASSEMBLY */ 14587 14585 14588 14586 14589 /** … … 14645 14648 } 14646 14649 14650 #ifdef IEM_WITHOUT_ASSEMBLY 14647 14651 14648 14652 /** … … 14658 14662 DECLINLINE(bool) iemSseBinaryValIsNaNR32(PRTFLOAT32U pr32Res, PCRTFLOAT32U pr32Val1, PCRTFLOAT32U pr32Val2, uint32_t *pfMxcsr) 14659 14663 { 14660 uint8_t c QNan = RTFLOAT32U_IS_QUIET_NAN(pr32Val1)+ RTFLOAT32U_IS_QUIET_NAN(pr32Val2);14661 uint8_t c SNan = RTFLOAT32U_IS_SIGNALLING_NAN(pr32Val1) + RTFLOAT32U_IS_SIGNALLING_NAN(pr32Val2);14664 uint8_t const cQNan = RTFLOAT32U_IS_QUIET_NAN(pr32Val1) + RTFLOAT32U_IS_QUIET_NAN(pr32Val2); 14665 uint8_t const cSNan = RTFLOAT32U_IS_SIGNALLING_NAN(pr32Val1) + RTFLOAT32U_IS_SIGNALLING_NAN(pr32Val2); 14662 14666 if (cSNan + cQNan == 2) 14663 14667 { … … 14668 14672 return true; 14669 14673 } 14670 elseif (cSNan)14674 if (cSNan) 14671 14675 { 14672 14676 /* One operand is an SNan and placed into the result, converting it to a QNan. */ … … 14676 14680 return true; 14677 14681 } 14678 elseif (cQNan)14682 if (cQNan) 14679 14683 { 14680 14684 /* The QNan operand is placed into the result. */ … … 14700 14704 DECLINLINE(bool) iemSseBinaryValIsNaNR64(PRTFLOAT64U pr64Res, PCRTFLOAT64U pr64Val1, PCRTFLOAT64U pr64Val2, uint32_t *pfMxcsr) 14701 14705 { 14702 uint8_t c QNan = RTFLOAT64U_IS_QUIET_NAN(pr64Val1)+ RTFLOAT64U_IS_QUIET_NAN(pr64Val2);14703 uint8_t c SNan = RTFLOAT64U_IS_SIGNALLING_NAN(pr64Val1) + RTFLOAT64U_IS_SIGNALLING_NAN(pr64Val2);14706 uint8_t const cQNan = RTFLOAT64U_IS_QUIET_NAN(pr64Val1) + RTFLOAT64U_IS_QUIET_NAN(pr64Val2); 14707 uint8_t const cSNan = RTFLOAT64U_IS_SIGNALLING_NAN(pr64Val1) + RTFLOAT64U_IS_SIGNALLING_NAN(pr64Val2); 14704 14708 if (cSNan + cQNan == 2) 14705 14709 { … … 14710 14714 return true; 14711 14715 } 14712 elseif (cSNan)14716 if (cSNan) 14713 14717 { 14714 14718 /* One operand is an SNan and placed into the result, converting it to a QNan. */ … … 14718 14722 return true; 14719 14723 } 14720 elseif (cQNan)14724 if (cQNan) 14721 14725 { 14722 14726 /* The QNan operand is placed into the result. */ … … 14749 14753 return true; 14750 14754 } 14751 elseif (RTFLOAT32U_IS_QUIET_NAN(pr32Val))14755 if (RTFLOAT32U_IS_QUIET_NAN(pr32Val)) 14752 14756 { 14753 14757 /* The QNan operand is placed into the result. */ … … 14779 14783 return true; 14780 14784 } 14781 elseif (RTFLOAT64U_IS_QUIET_NAN(pr64Val))14785 if (RTFLOAT64U_IS_QUIET_NAN(pr64Val)) 14782 14786 { 14783 14787 /* The QNan operand is placed into the result. */ … … 14789 14793 } 14790 14794 14795 #endif /* IEM_WITHOUT_ASSEMBLY */ 14791 14796 14792 14797 /** … … 17057 17062 17058 17063 RTFLOAT64U r64Src1, r64Src2; 17059 uint32_t fDe = iemSsePrepareValueR64(&r64Src1, *pfMxcsr, pr64Src1) ;17060 fDe |=iemSsePrepareValueR64(&r64Src2, *pfMxcsr, pr64Src2);17064 uint32_t fDe = iemSsePrepareValueR64(&r64Src1, *pfMxcsr, pr64Src1) 17065 | iemSsePrepareValueR64(&r64Src2, *pfMxcsr, pr64Src2); 17061 17066 17062 17067 *pfMxcsr |= fDe;
Note:
See TracChangeset
for help on using the changeset viewer.