+ else if ((operand->flags & MN10300_OPERAND_RREG) != 0)
+ {
+ value = ((insn >> (operand->shift + extra_shift))
+ & ((1 << operand->bits) - 1));
+ if (value < 8)
+ (*info->fprintf_func) (info->stream, "r%d", (int)value);
+ else if (value < 12)
+ (*info->fprintf_func) (info->stream, "a%d", (int)value - 8);
+ else
+ (*info->fprintf_func) (info->stream, "d%d", (int)value - 12);
+ }
+
+ else if ((operand->flags & MN10300_OPERAND_XRREG) != 0)
+ {
+ value = ((insn >> (operand->shift + extra_shift))
+ & ((1 << operand->bits) - 1));
+ if (value == 0)
+ (*info->fprintf_func) (info->stream, "sp", value);
+ else
+ (*info->fprintf_func) (info->stream, "xr%d", (int)value);
+ }
+
+ else if ((operand->flags & MN10300_OPERAND_USP) != 0)
+ (*info->fprintf_func) (info->stream, "usp");
+
+ else if ((operand->flags & MN10300_OPERAND_SSP) != 0)
+ (*info->fprintf_func) (info->stream, "ssp");
+
+ else if ((operand->flags & MN10300_OPERAND_MSP) != 0)
+ (*info->fprintf_func) (info->stream, "msp");
+
+ else if ((operand->flags & MN10300_OPERAND_PC) != 0)
+ (*info->fprintf_func) (info->stream, "pc");
+
+ else if ((operand->flags & MN10300_OPERAND_EPSW) != 0)
+ (*info->fprintf_func) (info->stream, "epsw");
+
+ else if ((operand->flags & MN10300_OPERAND_PLUS) != 0)
+ (*info->fprintf_func) (info->stream, "+");