On Tue, Mar 22, 2016 at 08:31:33AM +0100, Stefan Weil wrote: > Making the opcode list 'const' saves memory. > Some function arguments and local variables needed 'const', too. > > Add also 'static' to two local functions.
Hi Stefan, Sorry for the delays... I gave this a try but it fails for me: /home/edgar/src/c/qemu/qemu/disas/microblaze.c:668:1: error: conflicting types for ‘get_field_special’ get_field_special(long instr, const struct op_code_struct *op) ^ /home/edgar/src/c/qemu/qemu/disas/microblaze.c:599:8: note: previous declaration of ‘get_field_special’ was here char * get_field_special (long instr, struct op_code_struct * op); ^ /home/edgar/src/c/qemu/qemu/disas/microblaze.c:733:1: error: conflicting types for ‘read_insn_microblaze’ read_insn_microblaze (bfd_vma memaddr, ^ /home/edgar/src/c/qemu/qemu/disas/microblaze.c:600:15: note: previous declaration of ‘read_insn_microblaze’ was here unsigned long read_insn_microblaze (bfd_vma memaddr, ^ make: *** [disas/microblaze.o] Error 1 make: *** Waiting for unfinished jobs.... It looks like if you may have forgotten to update or remove the function prototypes... Best regards, Edgar > > Signed-off-by: Stefan Weil <s...@weilnetz.de> > --- > disas/microblaze.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/disas/microblaze.c b/disas/microblaze.c > index 91b30ac..780b388 100644 > --- a/disas/microblaze.c > +++ b/disas/microblaze.c > @@ -272,7 +272,7 @@ enum microblaze_instr_type { > > #define MAX_OPCODES 280 > > -static struct op_code_struct { > +static const struct op_code_struct { > const char *name; > short inst_type; /* registers and immediate values involved */ > short inst_offset_type; /* immediate vals offset from PC? (= 1 for > branches) */ > @@ -664,8 +664,8 @@ get_field_unsigned_imm (long instr) > } > */ > > -char * > -get_field_special (long instr, struct op_code_struct * op) > +static char * > +get_field_special(long instr, const struct op_code_struct *op) > { > char tmpstr[25]; > char spr[6]; > @@ -729,14 +729,14 @@ get_field_special (long instr, struct op_code_struct * > op) > return(strdup(tmpstr)); > } > > -unsigned long > +static unsigned long > read_insn_microblaze (bfd_vma memaddr, > struct disassemble_info *info, > - struct op_code_struct **opr) > + const struct op_code_struct **opr) > { > unsigned char ibytes[4]; > int status; > - struct op_code_struct * op; > + const struct op_code_struct *op; > unsigned long inst; > > status = info->read_memory_func (memaddr, ibytes, 4, info); > @@ -770,7 +770,7 @@ print_insn_microblaze (bfd_vma memaddr, struct > disassemble_info * info) > fprintf_function fprintf_func = info->fprintf_func; > void * stream = info->stream; > unsigned long inst, prev_inst; > - struct op_code_struct * op, *pop; > + const struct op_code_struct *op, *pop; > int immval = 0; > bfd_boolean immfound = FALSE; > static bfd_vma prev_insn_addr = -1; /*init the prev insn addr */ > -- > 2.1.4 >