mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	armemu: Unset GE flags for UADD8 if results are < 0x100
Reference manual states these must be set to zero if this case is true.
This commit is contained in:
		
							parent
							
								
									e6f440ea7f
								
							
						
					
					
						commit
						41fee1c940
					
				
					 1 changed files with 22 additions and 4 deletions
				
			
		|  | @ -5930,11 +5930,29 @@ L_stm_s_takeabort: | |||
|                         b2 = ((u8)(from >> 8) + (u8)(to >> 8)); | ||||
|                         b3 = ((u8)(from >> 16) + (u8)(to >> 16)); | ||||
|                         b4 = ((u8)(from >> 24) + (u8)(to >> 24)); | ||||
|                         if (b1 & 0xffffff00) state->Cpsr |= (1 << 16); | ||||
|                         if (b2 & 0xffffff00) state->Cpsr |= (1 << 17); | ||||
|                         if (b3 & 0xffffff00) state->Cpsr |= (1 << 18); | ||||
|                         if (b4 & 0xffffff00) state->Cpsr |= (1 << 19); | ||||
| 
 | ||||
|                         if (b1 & 0xffffff00) | ||||
|                             state->Cpsr |= (1 << 16); | ||||
|                         else | ||||
|                             state->Cpsr &= ~(1 << 16); | ||||
| 
 | ||||
|                         if (b2 & 0xffffff00) | ||||
|                             state->Cpsr |= (1 << 17); | ||||
|                         else | ||||
|                             state->Cpsr &= ~(1 << 17); | ||||
| 
 | ||||
|                         if (b3 & 0xffffff00) | ||||
|                             state->Cpsr |= (1 << 18); | ||||
|                         else | ||||
|                             state->Cpsr &= ~(1 << 18); | ||||
| 
 | ||||
| 
 | ||||
|                         if (b4 & 0xffffff00) | ||||
|                             state->Cpsr |= (1 << 19); | ||||
|                         else | ||||
|                             state->Cpsr &= ~(1 << 19); | ||||
|                     } | ||||
| 
 | ||||
|                     state->Reg[rd] = (u32)(b1 | (b2 & 0xff) << 8 | (b3 & 0xff) << 16 | (b4 & 0xff) << 24); | ||||
|                     return 1; | ||||
|                 } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue