linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] powerpc: Fix emulation of mcrf in emulate_step()
@ 2017-06-14 23:46 Anton Blanchard
  2017-06-14 23:46 ` [PATCH 2/2] powerpc: Fix emulation of mfocrf " Anton Blanchard
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Anton Blanchard @ 2017-06-14 23:46 UTC (permalink / raw)
  To: benh, paulus, mpe, ravi.bangoria, npiggin, naveen.n.rao; +Cc: linuxppc-dev

From: Anton Blanchard <anton@samba.org>

The mcrf emulation code was looking at the CR fields in the reverse
order. It also relied on reserved fields being zero which is somewhat
fragile, so fix that too.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
---
 arch/powerpc/lib/sstep.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 33117f8a0882..fb84f51b1f0b 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -683,8 +683,10 @@ int analyse_instr(struct instruction_op *op, struct pt_regs *regs,
 	case 19:
 		switch ((instr >> 1) & 0x3ff) {
 		case 0:		/* mcrf */
-			rd = (instr >> 21) & 0x1c;
-			ra = (instr >> 16) & 0x1c;
+			rd = 7 - ((instr >> 23) & 0x7);
+			ra = 7 - ((instr >> 18) & 0x7);
+			rd *= 4;
+			ra *= 4;
 			val = (regs->ccr >> ra) & 0xf;
 			regs->ccr = (regs->ccr & ~(0xfUL << rd)) | (val << rd);
 			goto instr_done;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-07-13 12:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-14 23:46 [PATCH 1/2] powerpc: Fix emulation of mcrf in emulate_step() Anton Blanchard
2017-06-14 23:46 ` [PATCH 2/2] powerpc: Fix emulation of mfocrf " Anton Blanchard
2017-06-15 17:27   ` Naveen N. Rao
2017-07-13 12:46   ` [2/2] " Michael Ellerman
2017-06-15  4:18 ` [PATCH 1/2] powerpc: Fix emulation of mcrf " Segher Boessenkool
2017-06-15  6:47   ` Anton Blanchard
2017-06-15  8:41     ` Segher Boessenkool
2017-06-15 17:27 ` Naveen N. Rao
2017-07-13 12:46 ` [1/2] " Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).