linux/arch/mips
David Daney ce807d5f67 MIPS: Optimize uasm insn lookup.
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: David 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: Ralf Baechle <ralf@linux-mips.org>
2017-06-28 12:22:38 +02:00
..
alchemy MIPS: clockevent drivers: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:16 -07:00
ar7
ath25
ath79
bcm47xx
bcm63xx
bmips
boot MIPS: .its targets depend on vmlinux 2017-06-15 11:48:15 +02:00
cavium-octeon Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-05-12 09:56:30 -07:00
cobalt
configs MIPS: defconfig: Cleanup from old Kconfig options 2017-06-27 13:58:38 +02:00
dec format-security: move static strings to const 2017-05-08 17:15:14 -07:00
emma
fw
generic
include MIPS: module: Unify rel & rela reloc handling 2017-06-28 12:22:38 +02:00
jazz
jz4740 MIPS: clockevent drivers: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:16 -07:00
kernel MIPS: module: Unify rel & rela reloc handling 2017-06-28 12:22:38 +02:00
kvm KVM: MIPS: Fix maybe-uninitialized build failure 2017-06-20 17:02:48 +02:00
lantiq MIPS: smp-mt: Use CPU interrupt controller IPI IRQ domain support 2017-04-12 23:13:13 +02:00
lasat
lib
loongson32 MIPS: clockevent drivers: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:16 -07:00
loongson64 MIPS: clockevent drivers: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:16 -07:00
math-emu MIPS: math-emu: Fix BC1EQZ and BC1NEZ condition handling 2017-04-10 11:56:09 +02:00
mm MIPS: Optimize uasm insn lookup. 2017-06-28 12:22:38 +02:00
mti-malta Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-05-12 09:56:30 -07:00
net MIPS: BPF: Fix multiple problems in JIT skb access helpers. 2017-04-10 11:56:05 +02:00
netlogic
oprofile
paravirt
pci Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-05-12 09:56:30 -07:00
pic32
pistachio
pmcs-msp71xx
pnx833x
power
ralink Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-05-01 16:15:18 -07:00
rb532
sgi-ip22
sgi-ip27 MIPS: clockevent drivers: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:16 -07:00
sgi-ip32
sibyte MIPS: Sibyte: Export symbol periph_rev to sb1250-mac network driver. 2017-04-21 03:23:24 +02:00
sni
txx9
vdso
vr41xx
xilfpga
Kbuild MIPS: Disable Werror when W= is set 2017-04-10 11:56:07 +02:00
Kbuild.platforms
Kconfig MIPS: Sort MIPS Kconfig Alphabetically. 2017-06-27 13:58:38 +02:00
Kconfig.debug MIPS: Sibyte: Fix Kconfig warning. 2017-04-21 03:34:01 +02:00
Makefile MIPS: generic: fix out-of-tree defconfig target builds 2017-04-11 13:17:31 +02:00
Makefile.postlink