MIPS16: Simplify extended operand handling
authorMaciej W. Rozycki <macro@imgtec.com>
Fri, 23 Dec 2016 19:40:09 +0000 (19:40 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Fri, 23 Dec 2016 19:42:28 +0000 (19:42 +0000)
commitbdd152861ce75c36828904cf3d10f8ce14da6cf5
treedf5b28e1503eb0ead27b616c07f1a40a8be31ed4
parent1da43accb4f8e2a19dc033b617982e3c2dc83a08
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.
gas/ChangeLog
gas/config/tc-mips.c
opcodes/ChangeLog
opcodes/mips-dis.c
opcodes/mips16-opc.c