[x86] Fix division r3 sign value calculation
This commit is contained in:
		
							parent
							
								
									c6601d8932
								
							
						
					
					
						commit
						9b25f26ed8
					
				
					 1 changed files with 6 additions and 8 deletions
				
			
		| 
						 | 
					@ -2223,10 +2223,9 @@ static void function_cc execute_swi(u32 pc)
 | 
				
			||||||
  generate_store_reg(a0, 0);                                                  \
 | 
					  generate_store_reg(a0, 0);                                                  \
 | 
				
			||||||
  generate_store_reg(a1, 1);                                                  \
 | 
					  generate_store_reg(a1, 1);                                                  \
 | 
				
			||||||
  generate_mov(a1, a0);                                                       \
 | 
					  generate_mov(a1, a0);                                                       \
 | 
				
			||||||
  generate_shift_right(a1, 31);                                               \
 | 
					  generate_shift_right_arithmetic(a1, 31);                                    \
 | 
				
			||||||
  generate_xor(a1, a0);                                                       \
 | 
					  generate_xor(a0, a1);                                                       \
 | 
				
			||||||
  generate_shift_right_arithmetic(a0, 31);                                    \
 | 
					  generate_sub(a0, a1);                                                       \
 | 
				
			||||||
  generate_add(a0, a1);                                                       \
 | 
					 | 
				
			||||||
  generate_store_reg(a0, 3);                                                  \
 | 
					  generate_store_reg(a0, 3);                                                  \
 | 
				
			||||||
  generate_branch_patch_conditional(jmpinst, translation_ptr);                \
 | 
					  generate_branch_patch_conditional(jmpinst, translation_ptr);                \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2243,10 +2242,9 @@ static void function_cc execute_swi(u32 pc)
 | 
				
			||||||
  generate_store_reg(a0, 0);                                                  \
 | 
					  generate_store_reg(a0, 0);                                                  \
 | 
				
			||||||
  generate_store_reg(a1, 1);                                                  \
 | 
					  generate_store_reg(a1, 1);                                                  \
 | 
				
			||||||
  generate_mov(a1, a0);                                                       \
 | 
					  generate_mov(a1, a0);                                                       \
 | 
				
			||||||
  generate_shift_right(a1, 31);                                               \
 | 
					  generate_shift_right_arithmetic(a1, 31);                                    \
 | 
				
			||||||
  generate_xor(a1, a0);                                                       \
 | 
					  generate_xor(a0, a1);                                                       \
 | 
				
			||||||
  generate_shift_right_arithmetic(a0, 31);                                    \
 | 
					  generate_sub(a0, a1);                                                       \
 | 
				
			||||||
  generate_add(a0, a1);                                                       \
 | 
					 | 
				
			||||||
  generate_store_reg(a0, 3);                                                  \
 | 
					  generate_store_reg(a0, 3);                                                  \
 | 
				
			||||||
  generate_branch_patch_conditional(jmpinst, translation_ptr);                \
 | 
					  generate_branch_patch_conditional(jmpinst, translation_ptr);                \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue