From bdd152861ce75c36828904cf3d10f8ce14da6cf5 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Fri, 23 Dec 2016 19:40:09 +0000 Subject: MIPS16: Simplify extended operand handling Simplify extended operand handling and only specially process immediates which require bit shuffling, using the generic operand insertion and extraction handlers for the '<' (5-bit shift amount) operand code in particular. Require the least significant bit of all extended operand forms to be (artificially) set to 0 for their special processing to trigger. gas/ * config/tc-mips.c (mips16_immed): Limit `mips16_immed_extend' use to operands whose LSB position is zero. opcodes/ * mips-dis.c (print_mips16_insn_arg): Simplify processing of extended operands. * mips16-opc.c (decode_mips16_operand): Switch the extended form of the `<' operand type to LSB position 22. --- opcodes/mips16-opc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'opcodes/mips16-opc.c') diff --git a/opcodes/mips16-opc.c b/opcodes/mips16-opc.c index fb0e0b7..d102b8c 100644 --- a/opcodes/mips16-opc.c +++ b/opcodes/mips16-opc.c @@ -77,7 +77,7 @@ decode_mips16_operand (char type, bfd_boolean extended_p) if (extended_p) switch (type) { - case '<': UINT (5, 0); + case '<': UINT (5, 22); case '[': UINT (6, 0); case ']': UINT (6, 0); -- cgit v1.1