Blackfin: show the whole accumulator in the pseudo DBG insn

Rather than print just part of the accumulator register, show the whole
40 bits. This matches the simulator behavior better.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>

authored by Robin Getz and committed by Mike Frysinger a6d9dbf5 5a132f7a

+19 -6
+19 -6
arch/blackfin/kernel/pseudodbg.c
··· 158 158 bool execute_pseudodbg(struct pt_regs *fp, unsigned int opcode) 159 159 { 160 160 int grp, fn, reg; 161 - long value; 161 + long value, value1; 162 162 163 163 if ((opcode & 0xFF000000) != PseudoDbg_opcode) 164 164 return false; ··· 168 168 fn = ((opcode >> PseudoDbg_fn_bits) & PseudoDbg_fn_mask); 169 169 reg = ((opcode >> PseudoDbg_reg_bits) & PseudoDbg_reg_mask); 170 170 171 - if (!fix_up_reg(fp, &value, grp, reg)) 172 - return false; 171 + if (fn == 3 && (reg == 0 || reg == 1)) { 172 + if (!fix_up_reg(fp, &value, 4, 2 * reg)) 173 + return false; 174 + if (!fix_up_reg(fp, &value1, 4, 2 * reg + 1)) 175 + return false; 173 176 174 - pr_notice("DBG %s = %08lx\n", get_allreg_name(grp, reg), value); 177 + pr_notice("DBG A%i = %02lx%08lx\n", reg, value & 0xFF, value1); 178 + fp->pc += 2; 179 + return true; 175 180 176 - fp->pc += 2; 177 - return true; 181 + } else if (fn == 0) { 182 + if (!fix_up_reg(fp, &value, grp, reg)) 183 + return false; 184 + 185 + pr_notice("DBG %s = %08lx\n", get_allreg_name(grp, reg), value); 186 + fp->pc += 2; 187 + return true; 188 + } 189 + 190 + return false; 178 191 }