MIPS: R6: Constify r2_decoder_tables
authorMatt Redfearn <matt.redfearn@imgtec.com>
Tue, 14 Feb 2017 14:37:06 +0000 (14:37 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 29 Aug 2017 13:21:50 +0000 (15:21 +0200)
The r2_decoder_tables are never modified. They are arrays of constant
values and as such should be declared const.

This change saves 256 bytes of kernel text, and 128 bytes of kernel data
(384 bytes total) on a 32r6el_defconfig (with SMP disabled)
Before:
   text    data     bss     dec     hex filename
5576221 1080804  267040 6924065  69a721 vmlinux
After:
   text    data     bss     dec     hex filename
5575965 1080676  267040 6923681  69a5a1 vmlinux

Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/15289/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/mips-r2-to-r6-emul.c

index ae64c8f..8d6d9e3 100644 (file)
@@ -600,7 +600,7 @@ static int ddivu_func(struct pt_regs *regs, u32 ir)
 }
 
 /* R6 removed instructions for the SPECIAL opcode */
-static struct r2_decoder_table spec_op_table[] = {
+static const struct r2_decoder_table spec_op_table[] = {
        { 0xfc1ff83f, 0x00000008, jr_func },
        { 0xfc00ffff, 0x00000018, mult_func },
        { 0xfc00ffff, 0x00000019, multu_func },
@@ -867,7 +867,7 @@ static int dclo_func(struct pt_regs *regs, u32 ir)
 }
 
 /* R6 removed instructions for the SPECIAL2 opcode */
-static struct r2_decoder_table spec2_op_table[] = {
+static const struct r2_decoder_table spec2_op_table[] = {
        { 0xfc00ffff, 0x70000000, madd_func },
        { 0xfc00ffff, 0x70000001, maddu_func },
        { 0xfc0007ff, 0x70000002, mul_func },
@@ -881,9 +881,9 @@ static struct r2_decoder_table spec2_op_table[] = {
 };
 
 static inline int mipsr2_find_op_func(struct pt_regs *regs, u32 inst,
-                                     struct r2_decoder_table *table)
+                                     const struct r2_decoder_table *table)
 {
-       struct r2_decoder_table *p;
+       const struct r2_decoder_table *p;
        int err;
 
        for (p = table; p->func; p++) {