Thread (80 messages) 80 messages, 7 authors, 2021-05-20

Re: [PATCH v8 30/30] powerpc sstep: Add support for prefixed fixed-point arithmetic

flat view

From: Christophe Leroy <hidden>
Date: 2020-05-14 06:20:55


Le 06/05/2020 à 05:40, Jordan Niethe a écrit :
This adds emulation support for the following prefixed Fixed-Point
Arithmetic instructions:
   * Prefixed Add Immediate (paddi)
Shouldn't this patch go before patch 23 ?

Christophe
quoted hunk ↗ jump to hunk
Reviewed-by: Balamuruhan S <redacted>
Signed-off-by: Jordan Niethe <redacted>
---
v3: Since we moved the prefixed loads/stores into the load/store switch
statement it no longer makes sense to have paddi in there, so move it
out.
---
  arch/powerpc/lib/sstep.c | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 6794a7672ad5..964fe7bbfce3 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -1337,6 +1337,26 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
  
  	switch (opcode) {
  #ifdef __powerpc64__
+	case 1:
+		prefix_r = word & (1ul << 20);
+		ra = (suffix >> 16) & 0x1f;
+		rd = (suffix >> 21) & 0x1f;
+		op->reg = rd;
+		op->val = regs->gpr[rd];
+		suffixopcode = suffix >> 26;
+		prefixtype = (word >> 24) & 0x3;
+		switch (prefixtype) {
+		case 2:
+			if (prefix_r && ra)
+				return 0;
+			switch (suffixopcode) {
+			case 14:	/* paddi */
+				op->type = COMPUTE | PREFIXED;
+				op->val = mlsd_8lsd_ea(word, suffix, regs);
+				goto compute_done;
+			}
+		}
+		break;
  	case 2:		/* tdi */
  		if (rd & trap_compare(regs->gpr[ra], (short) word))
  			goto trap;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help