--- a/src/sh4/sh4core.in Mon Feb 13 20:00:27 2012 +1000 +++ b/src/sh4/sh4core.in Fri May 29 18:47:05 2015 +1000 @@ -709,7 +709,7 @@ :} MULS.W Rm, Rn {: sh4r.mac = (sh4r.mac&0xFFFFFFFF00000000LL) | - (uint32_t)(SIGNEXT32(sh4r.r[Rm]&0xFFFF) * SIGNEXT32(sh4r.r[Rn]&0xFFFF)); + (uint32_t)(SIGNEXT32((int16_t)(sh4r.r[Rm])) * SIGNEXT32((int16_t)(sh4r.r[Rn]))); :} NEGC Rm, Rn {: tmp = 0 - sh4r.r[Rm]; @@ -1234,7 +1234,7 @@ if( IS_FPU_DOUBLEPREC() ) { DR(FRn) += DR(FRm)*DR(0); } else { - FR(FRn) += FR(FRm)*FR(0); + FR(FRn) += (double)FR(FRm)*(double)FR(0); } :} FRCHG {: