]> Git Repo - linux.git/commitdiff
powerpc/sstep: mullw should calculate a 64 bit signed result
authorAnton Blanchard <[email protected]>
Tue, 19 Sep 2017 23:32:19 +0000 (09:32 +1000)
committerMichael Ellerman <[email protected]>
Wed, 20 Sep 2017 03:30:09 +0000 (13:30 +1000)
mullw should do a 32 bit signed multiply and create a 64 bit signed
result. It currently truncates the result to 32 bits.

Signed-off-by: Anton Blanchard <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
arch/powerpc/lib/sstep.c

index c4cda1afb49d3e0fe597040f8fa8580cc944f0bf..5e8418c28bd884bd854818755b61b06fcff776e6 100644 (file)
@@ -1651,8 +1651,9 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
                        goto arith_done;
 
                case 235:       /* mullw */
-                       op->val = (unsigned int) regs->gpr[ra] *
-                               (unsigned int) regs->gpr[rb];
+                       op->val = (long)(int) regs->gpr[ra] *
+                               (int) regs->gpr[rb];
+
                        goto arith_done;
 
                case 266:       /* add */
This page took 0.066176 seconds and 4 git commands to generate.