|
|
@ -796,7 +796,7 @@ print_insn_args (const char *d, |
|
|
|
|
|
|
|
|
case 'i': |
|
|
case 'i': |
|
|
case 'u': |
|
|
case 'u': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_IMMEDIATE) & OP_MASK_IMMEDIATE); |
|
|
(l >> OP_SH_IMMEDIATE) & OP_MASK_IMMEDIATE); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -870,32 +870,33 @@ print_insn_args (const char *d, |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case '<': |
|
|
case '<': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_SHAMT) & OP_MASK_SHAMT); |
|
|
(l >> OP_SH_SHAMT) & OP_MASK_SHAMT); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'c': |
|
|
case 'c': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_CODE) & OP_MASK_CODE); |
|
|
(l >> OP_SH_CODE) & OP_MASK_CODE); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'q': |
|
|
case 'q': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_CODE2) & OP_MASK_CODE2); |
|
|
(l >> OP_SH_CODE2) & OP_MASK_CODE2); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'C': |
|
|
case 'C': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_COPZ) & OP_MASK_COPZ); |
|
|
(l >> OP_SH_COPZ) & OP_MASK_COPZ); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'B': |
|
|
case 'B': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
|
|
|
|
|
|
(l >> OP_SH_CODE20) & OP_MASK_CODE20); |
|
|
(l >> OP_SH_CODE20) & OP_MASK_CODE20); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'J': |
|
|
case 'J': |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_CODE19) & OP_MASK_CODE19); |
|
|
(l >> OP_SH_CODE19) & OP_MASK_CODE19); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -929,7 +930,7 @@ print_insn_args (const char *d, |
|
|
'T' format. Therefore, until we gain understanding of |
|
|
'T' format. Therefore, until we gain understanding of |
|
|
cp2 register names, we can simply print the register |
|
|
cp2 register names, we can simply print the register |
|
|
numbers. */ |
|
|
numbers. */ |
|
|
(*info->fprintf_func) (info->stream, "$%d", |
|
|
(*info->fprintf_func) (info->stream, "$%ld", |
|
|
(l >> OP_SH_RT) & OP_MASK_RT); |
|
|
(l >> OP_SH_RT) & OP_MASK_RT); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -943,7 +944,7 @@ print_insn_args (const char *d, |
|
|
(*info->fprintf_func) (info->stream, "%s", |
|
|
(*info->fprintf_func) (info->stream, "%s", |
|
|
mips_cp0_names[(l >> OP_SH_RD) & OP_MASK_RD]); |
|
|
mips_cp0_names[(l >> OP_SH_RD) & OP_MASK_RD]); |
|
|
else |
|
|
else |
|
|
(*info->fprintf_func) (info->stream, "$%d", |
|
|
(*info->fprintf_func) (info->stream, "$%ld", |
|
|
(l >> OP_SH_RD) & OP_MASK_RD); |
|
|
(l >> OP_SH_RD) & OP_MASK_RD); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -953,37 +954,37 @@ print_insn_args (const char *d, |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'N': |
|
|
case 'N': |
|
|
(*info->fprintf_func) (info->stream, "$fcc%d", |
|
|
(*info->fprintf_func) (info->stream, "$fcc%ld", |
|
|
(l >> OP_SH_BCC) & OP_MASK_BCC); |
|
|
(l >> OP_SH_BCC) & OP_MASK_BCC); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'M': |
|
|
case 'M': |
|
|
(*info->fprintf_func) (info->stream, "$fcc%d", |
|
|
(*info->fprintf_func) (info->stream, "$fcc%ld", |
|
|
(l >> OP_SH_CCC) & OP_MASK_CCC); |
|
|
(l >> OP_SH_CCC) & OP_MASK_CCC); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'P': |
|
|
case 'P': |
|
|
(*info->fprintf_func) (info->stream, "%d", |
|
|
(*info->fprintf_func) (info->stream, "%ld", |
|
|
(l >> OP_SH_PERFREG) & OP_MASK_PERFREG); |
|
|
(l >> OP_SH_PERFREG) & OP_MASK_PERFREG); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'e': |
|
|
case 'e': |
|
|
(*info->fprintf_func) (info->stream, "%d", |
|
|
(*info->fprintf_func) (info->stream, "%ld", |
|
|
(l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE); |
|
|
(l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case '%': |
|
|
case '%': |
|
|
(*info->fprintf_func) (info->stream, "%d", |
|
|
(*info->fprintf_func) (info->stream, "%ld", |
|
|
(l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN); |
|
|
(l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'H': |
|
|
case 'H': |
|
|
(*info->fprintf_func) (info->stream, "%d", |
|
|
(*info->fprintf_func) (info->stream, "%ld", |
|
|
(l >> OP_SH_SEL) & OP_MASK_SEL); |
|
|
(l >> OP_SH_SEL) & OP_MASK_SEL); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'O': |
|
|
case 'O': |
|
|
(*info->fprintf_func) (info->stream, "%d", |
|
|
(*info->fprintf_func) (info->stream, "%ld", |
|
|
(l >> OP_SH_ALN) & OP_MASK_ALN); |
|
|
(l >> OP_SH_ALN) & OP_MASK_ALN); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -999,35 +1000,35 @@ print_insn_args (const char *d, |
|
|
for (fmt = 0; fmt < 3; fmt++, vsel >>= 1) |
|
|
for (fmt = 0; fmt < 3; fmt++, vsel >>= 1) |
|
|
if ((vsel & 1) == 0) |
|
|
if ((vsel & 1) == 0) |
|
|
break; |
|
|
break; |
|
|
(*info->fprintf_func) (info->stream, "$v%d[%d]", |
|
|
(*info->fprintf_func) (info->stream, "$v%ld[%d]", |
|
|
(l >> OP_SH_FT) & OP_MASK_FT, |
|
|
(l >> OP_SH_FT) & OP_MASK_FT, |
|
|
vsel >> 1); |
|
|
vsel >> 1); |
|
|
} |
|
|
} |
|
|
else if ((vsel & 0x08) == 0) |
|
|
else if ((vsel & 0x08) == 0) |
|
|
{ |
|
|
{ |
|
|
(*info->fprintf_func) (info->stream, "$v%d", |
|
|
(*info->fprintf_func) (info->stream, "$v%ld", |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
(*info->fprintf_func) (info->stream, "0x%x", |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'X': |
|
|
case 'X': |
|
|
(*info->fprintf_func) (info->stream, "$v%d", |
|
|
(*info->fprintf_func) (info->stream, "$v%ld", |
|
|
(l >> OP_SH_FD) & OP_MASK_FD); |
|
|
(l >> OP_SH_FD) & OP_MASK_FD); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'Y': |
|
|
case 'Y': |
|
|
(*info->fprintf_func) (info->stream, "$v%d", |
|
|
(*info->fprintf_func) (info->stream, "$v%ld", |
|
|
(l >> OP_SH_FS) & OP_MASK_FS); |
|
|
(l >> OP_SH_FS) & OP_MASK_FS); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
case 'Z': |
|
|
case 'Z': |
|
|
(*info->fprintf_func) (info->stream, "$v%d", |
|
|
(*info->fprintf_func) (info->stream, "$v%ld", |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
(l >> OP_SH_FT) & OP_MASK_FT); |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
@ -1141,7 +1142,7 @@ print_insn_mips (bfd_vma memaddr, |
|
|
|
|
|
|
|
|
/* Handle undefined instructions. */ |
|
|
/* Handle undefined instructions. */ |
|
|
info->insn_type = dis_noninsn; |
|
|
info->insn_type = dis_noninsn; |
|
|
(*info->fprintf_func) (info->stream, "0x%x", word); |
|
|
(*info->fprintf_func) (info->stream, "0x%lx", word); |
|
|
return INSNLEN; |
|
|
return INSNLEN; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|