ARM: Pull some SkyEye fixes from 3dmoo.
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -281,6 +281,7 @@ struct ARMul_State | |||||||
|  |  | ||||||
|     ARMword currentexaddr; |     ARMword currentexaddr; | ||||||
|     ARMword currentexval; |     ARMword currentexval; | ||||||
|  |     ARMword currentexvald; | ||||||
|     ARMword servaddr; |     ARMword servaddr; | ||||||
|  |  | ||||||
|     unsigned NextInstr; |     unsigned NextInstr; | ||||||
|   | |||||||
| @@ -522,8 +522,7 @@ static s64 vfp_single_to_doubleintern(ARMul_State* state, s32 m, u32 fpscr) //ic | |||||||
|         if (tm == VFP_QNAN) |         if (tm == VFP_QNAN) | ||||||
|             vdd.significand |= VFP_DOUBLE_SIGNIFICAND_QNAN; |             vdd.significand |= VFP_DOUBLE_SIGNIFICAND_QNAN; | ||||||
|         goto pack_nan; |         goto pack_nan; | ||||||
|     } |     } else if (tm & VFP_ZERO) | ||||||
|     else if (tm & VFP_ZERO) |  | ||||||
|         vdd.exponent = 0; |         vdd.exponent = 0; | ||||||
|     else |     else | ||||||
|         vdd.exponent = vsm.exponent + (1023 - 127); |         vdd.exponent = vsm.exponent + (1023 - 127); | ||||||
| @@ -620,7 +619,7 @@ static u32 vfp_single_ftoui(ARMul_State* state, int sd, int unused, s32 m, u32 f | |||||||
|     if (vsm.exponent >= 127 + 32) { |     if (vsm.exponent >= 127 + 32) { | ||||||
|         d = vsm.sign ? 0 : 0xffffffff; |         d = vsm.sign ? 0 : 0xffffffff; | ||||||
|         exceptions = FPSCR_IOC; |         exceptions = FPSCR_IOC; | ||||||
|     } else if (vsm.exponent >= 127 - 1) { |     } else if (vsm.exponent >= 127) { | ||||||
|         int shift = 127 + 31 - vsm.exponent; |         int shift = 127 + 31 - vsm.exponent; | ||||||
|         u32 rem, incr = 0; |         u32 rem, incr = 0; | ||||||
|  |  | ||||||
| @@ -705,7 +704,7 @@ static u32 vfp_single_ftosi(ARMul_State* state, int sd, int unused, s32 m, u32 f | |||||||
|         if (vsm.sign) |         if (vsm.sign) | ||||||
|             d = ~d; |             d = ~d; | ||||||
|         exceptions |= FPSCR_IOC; |         exceptions |= FPSCR_IOC; | ||||||
|     } else if (vsm.exponent >= 127 - 1) { |     } else if (vsm.exponent >= 127) { | ||||||
|         int shift = 127 + 31 - vsm.exponent; |         int shift = 127 + 31 - vsm.exponent; | ||||||
|         u32 rem, incr = 0; |         u32 rem, incr = 0; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user