PR ld/12613
[deliverable/binutils-gdb.git] / opcodes / mips-dis.c
index a528e9650e7cab04e66116ecb66bccb94b0ebede..c38a7e164c1cfee9c46dfe9d95e696a8604d0578 100644 (file)
@@ -973,6 +973,38 @@ print_insn_args (const char *d,
              (*info->fprintf_func) (info->stream, "%d", op);
              break;
 
+           case 'a':           /* 8-bit signed offset in bit 6 */
+             delta = (l >> OP_SH_OFFSET_A) & OP_MASK_OFFSET_A;
+             if (delta & 0x80)
+               delta |= ~OP_MASK_OFFSET_A;
+             (*info->fprintf_func) (info->stream, "%d", delta);
+             break;
+
+           case 'b':           /* 8-bit signed offset in bit 3 */
+             delta = (l >> OP_SH_OFFSET_B) & OP_MASK_OFFSET_B;
+             if (delta & 0x80)
+               delta |= ~OP_MASK_OFFSET_B;
+             (*info->fprintf_func) (info->stream, "%d", delta);
+             break;
+
+           case 'c':           /* 9-bit signed offset in bit 6 */
+             delta = (l >> OP_SH_OFFSET_C) & OP_MASK_OFFSET_C;
+             if (delta & 0x100)
+               delta |= ~OP_MASK_OFFSET_C;
+             /* Left shift 4 bits to print the real offset.  */
+             (*info->fprintf_func) (info->stream, "%d", delta << 4);
+             break;
+
+           case 'z':
+             (*info->fprintf_func) (info->stream, "%s",
+                                    mips_gpr_names[(l >> OP_SH_RZ) & OP_MASK_RZ]);
+             break;
+
+           case 'Z':
+             (*info->fprintf_func) (info->stream, "%s",
+                                    mips_fpr_names[(l >> OP_SH_FZ) & OP_MASK_FZ]);
+             break;
+
            default:
              /* xgettext:c-format */
              (*info->fprintf_func) (info->stream,
This page took 0.024025 seconds and 4 git commands to generate.