• David Daney's avatar
    MIPS: Optimize uasm insn lookup. · ce807d5f
    David Daney authored
    Instead of doing a linear search through the insn_table for each
    instruction, use the opcode as direct index into the table.  This will
    give constant time lookup performance as the number of supported
    opcodes increases.  Make the tables const as they are only ever read.
    For uasm-mips.c sort the table alphabetically, and remove duplicate
    entries, uasm-micromips.c was already sorted and duplicate free.
    There is a small savings in object size as struct insn loses a field:
    
    $ size arch/mips/mm/uasm-mips.o arch/mips/mm/uasm-mips.o.save
       text	   data	    bss	    dec	    hex	filename
      10040	      0	      0	  10040	   2738	arch/mips/mm/uasm-mips.o
       9240	   1120	      0	  10360	   2878	arch/mips/mm/uasm-mips.o.save
    Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Matt Redfearn <matt.redfearn@imgtec.com>
    Cc: netdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16365/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    ce807d5f
uasm-micromips.c 8.43 KB