mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	| @@ -5891,16 +5891,13 @@ unsigned InterpreterMainLoop(ARMul_State* state) { | ||||
|  | ||||
|     SMULW_INST: | ||||
|     { | ||||
|         if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { | ||||
|             smlad_inst *inst_cream = (smlad_inst *)inst_base->component; | ||||
|             int64_t rm = RM; | ||||
|             int64_t rn = RN; | ||||
|             if (inst_cream->m) | ||||
|                 rm = BITS(rm, 16, 31); | ||||
|             else | ||||
|                 rm = BITS(rm, 0, 15); | ||||
|             int64_t rst = rm * rn; | ||||
|             RD = BITS(rst, 16, 47); | ||||
|         if (inst_base->cond == 0xE || CondPassed(cpu, inst_base->cond)) { | ||||
|             smlad_inst* const inst_cream = (smlad_inst*)inst_base->component; | ||||
|  | ||||
|             s16 rm = (inst_cream->m == 1) ? ((RM >> 16) & 0xFFFF) : (RM & 0xFFFF); | ||||
|  | ||||
|             s64 result = (s64)rm * (s64)(s32)RN; | ||||
|             RD = BITS(result, 16, 47); | ||||
|         } | ||||
|         cpu->Reg[15] += GET_INST_SIZE(cpu); | ||||
|         INC_PC(sizeof(smlad_inst)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei