summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/mips-r2-to-r6-emul.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/mips/kernel/mips-r2-to-r6-emul.c b/arch/mips/kernel/mips-r2-to-r6-emul.c
index ef2ca28a028b..d8f1cf1ec370 100644
--- a/arch/mips/kernel/mips-r2-to-r6-emul.c
+++ b/arch/mips/kernel/mips-r2-to-r6-emul.c
@@ -433,8 +433,8 @@ static int multu_func(struct pt_regs *regs, u32 ir)
433 rs = regs->regs[MIPSInst_RS(ir)]; 433 rs = regs->regs[MIPSInst_RS(ir)];
434 res = (u64)rt * (u64)rs; 434 res = (u64)rt * (u64)rs;
435 rt = res; 435 rt = res;
436 regs->lo = (s64)rt; 436 regs->lo = (s64)(s32)rt;
437 regs->hi = (s64)(res >> 32); 437 regs->hi = (s64)(s32)(res >> 32);
438 438
439 MIPS_R2_STATS(muls); 439 MIPS_R2_STATS(muls);
440 440
@@ -670,9 +670,9 @@ static int maddu_func(struct pt_regs *regs, u32 ir)
670 res += ((((s64)rt) << 32) | (u32)rs); 670 res += ((((s64)rt) << 32) | (u32)rs);
671 671
672 rt = res; 672 rt = res;
673 regs->lo = (s64)rt; 673 regs->lo = (s64)(s32)rt;
674 rs = res >> 32; 674 rs = res >> 32;
675 regs->hi = (s64)rs; 675 regs->hi = (s64)(s32)rs;
676 676
677 MIPS_R2_STATS(dsps); 677 MIPS_R2_STATS(dsps);
678 678
@@ -728,9 +728,9 @@ static int msubu_func(struct pt_regs *regs, u32 ir)
728 res = ((((s64)rt) << 32) | (u32)rs) - res; 728 res = ((((s64)rt) << 32) | (u32)rs) - res;
729 729
730 rt = res; 730 rt = res;
731 regs->lo = (s64)rt; 731 regs->lo = (s64)(s32)rt;
732 rs = res >> 32; 732 rs = res >> 32;
733 regs->hi = (s64)rs; 733 regs->hi = (s64)(s32)rs;
734 734
735 MIPS_R2_STATS(dsps); 735 MIPS_R2_STATS(dsps);
736 736