+ num += (oper->flags
+ & (OPERAND_GPR | OPERAND_FFLAG | OPERAND_CFLAG | OPERAND_CONTROL));
+ if (oper->flags & (OPERAND_ACC0 | OPERAND_ACC1))
+ num += num ? OPERAND_ACC1 : OPERAND_ACC0;
+ for (i = 0; i < d10v_reg_name_cnt (); i++)
+ {
+ if (num == (d10v_predefined_registers[i].value & ~ OPERAND_SP))
+ {
+ if (d10v_predefined_registers[i].pname)
+ (*info->fprintf_func) (info->stream, "%s",
+ d10v_predefined_registers[i].pname);
+ else
+ (*info->fprintf_func) (info->stream, "%s",
+ d10v_predefined_registers[i].name);
+ match = 1;
+ break;
+ }
+ }
+ if (match == 0)
+ {
+ /* This would only get executed if a register was not in the
+ register table. */
+ if (oper->flags & (OPERAND_ACC0 | OPERAND_ACC1))
+ (*info->fprintf_func) (info->stream, "a");
+ else if (oper->flags & OPERAND_CONTROL)
+ (*info->fprintf_func) (info->stream, "cr");
+ else if (oper->flags & OPERAND_REG)
+ (*info->fprintf_func) (info->stream, "r");
+ (*info->fprintf_func) (info->stream, "%d", num & REGISTER_MASK);
+ }
+ }