mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	dyncom: Fix 32-bit ASR shifts for immediates
This commit is contained in:
		
							parent
							
								
									ac05c4acb0
								
							
						
					
					
						commit
						f7770b83d4
					
				
					 1 changed files with 3 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -176,13 +176,11 @@ unsigned int DPO(ArithmeticShiftRightByImmediate)(arm_processor *cpu, unsigned i
 | 
			
		|||
    unsigned int shifter_operand;
 | 
			
		||||
    int shift_imm = BITS(sht_oper, 7, 11);
 | 
			
		||||
    if (shift_imm == 0) {
 | 
			
		||||
        if (BIT(rm, 31)) {
 | 
			
		||||
        if (BIT(rm, 31) == 0)
 | 
			
		||||
            shifter_operand = 0;
 | 
			
		||||
            cpu->shifter_carry_out = BIT(rm, 31);
 | 
			
		||||
        } else {
 | 
			
		||||
        else
 | 
			
		||||
            shifter_operand = 0xFFFFFFFF;
 | 
			
		||||
            cpu->shifter_carry_out = BIT(rm, 31);
 | 
			
		||||
        }
 | 
			
		||||
        cpu->shifter_carry_out = BIT(rm, 31);
 | 
			
		||||
    } else {
 | 
			
		||||
        shifter_operand = static_cast<int>(rm) >> shift_imm;
 | 
			
		||||
        cpu->shifter_carry_out = BIT(rm, shift_imm - 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue