[PATCH] powerpc/sstep: mullw should calculate a 64 bit signed result

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3279d

2 messages, 2 authors, 2017-09-21 · open the first message on its own page

[PATCH] powerpc/sstep: mullw should calculate a 64 bit signed result

From: Anton Blanchard <hidden>
Date: 2017-09-19 23:32:22

From: Anton Blanchard <redacted>

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 <redacted>
---
 arch/powerpc/lib/sstep.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index c4cda1afb49d..5e8418c28bd8 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -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 */
-- 
2.11.0

Re: powerpc/sstep: mullw should calculate a 64 bit signed result

From: Michael Ellerman <hidden>
Date: 2017-09-21 01:46:46

On Tue, 2017-09-19 at 23:32:19 UTC, Anton Blanchard wrote:
From: Anton Blanchard <redacted>

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 <redacted>
Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/1575fe06f6b1d156ed31fb22c8631d

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help