armemu: Fix FSUBS bug where NaN shouldn't be negated
This commit is contained in:
		| @@ -1148,7 +1148,10 @@ static u32 vfp_single_fsub(ARMul_State* state, int sd, int sn, s32 m, u32 fpscr) | |||||||
|     /* |     /* | ||||||
|      * Subtraction is addition with one sign inverted. |      * Subtraction is addition with one sign inverted. | ||||||
|      */ |      */ | ||||||
|     return vfp_single_fadd(state, sd, sn, vfp_single_packed_negate(m), fpscr); |     if (m != 0x7FC00000) // Only negate if m isn't NaN. | ||||||
|  |         m = vfp_single_packed_negate(m); | ||||||
|  |  | ||||||
|  |     return vfp_single_fadd(state, sd, sn, m, fpscr); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user