summaryrefslogtreecommitdiff
path: root/opcodes/mips-dis.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-06-12 21:44:54 +0000
committerNick Clifton <nickc@redhat.com>2008-06-12 21:44:54 +0000
commitdd1ca61c85f06a957fe2f5d7b0dd83e9a7f2af8d (patch)
treeef52181566fe9eca345768ebb73c29cfc7bc18d5 /opcodes/mips-dis.c
parentd73f1714b55b31e4f19465f5fd961cd1861041ba (diff)
downloadbinutils-redhat-dd1ca61c85f06a957fe2f5d7b0dd83e9a7f2af8d.tar.gz
* mips.h: Document new field descriptors +Q.
(OP_SH_SEQI, OP_MASK_SEQI): New bit mask and shift count for SEQI. opcodes/ * mips-dis.c (print_insn_args): Handle field descriptor +Q. * mips-opc.c (mips_builtin_opcodes): Add Octeon instructions seq, seqi, sne and snei. gas/ * config/tc-mips.c (validate_mips_insn): Handle field descriptor +Q. (mips_ip): Likewise. (macro_build): Likewise. (CPU_HAS_SEQ): New macro. (macro2) <M_SEQ_I, M_SNE_I>: Use it. Emit seq/sne and seqi/snei. gas/testsuite/ * gas/mips/octeon.s, gas/mips/octeon.d: Add tests for seq* and sne*. * gas/mips/octeon-ill.s, gas/mips/octeon-ill.s: Add tests for seqi and snei.
Diffstat (limited to 'opcodes/mips-dis.c')
-rw-r--r--opcodes/mips-dis.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 4202b7d1db..ada753f4f8 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -902,6 +902,13 @@ print_insn_args (const char *d,
(l >> OP_SH_CINSLM1) & OP_MASK_CINSLM1);
break;
+ case 'Q': /* seqi/snei immediate field */
+ op = (l >> OP_SH_SEQI) & OP_MASK_SEQI;
+ /* Sign-extend it. */
+ op = (op ^ 512) - 512;
+ (*info->fprintf_func) (info->stream, "%d", op);
+ break;
+
default:
/* xgettext:c-format */
(*info->fprintf_func) (info->stream,