This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] MicroBlaze opcode fixes
- From: Michael Eager <eager at eagercon dot com>
- To: binutils <binutils at sourceware dot org>
- Date: Wed, 23 Sep 2009 12:25:49 -0700
- Subject: [PATCH] MicroBlaze opcode fixes
A minor patches to opcodes to fix MicroBlaze gdb issues.
2009-09-23 Michael Eager <eager@eagercon.com>
* opcodes/microblaze-dis.c: get_insn_microblaze,
microblaze_get_target_address, microblaze_decode_insn:
Add declarations.
get_delay_slots_microblaze: remove.
OK to check in?
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
Index: opcodes/microblaze-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/microblaze-dis.c,v
retrieving revision 1.1
diff -u -p -r1.1 microblaze-dis.c
--- opcodes/microblaze-dis.c 6 Aug 2009 17:38:04 -0000 1.1
+++ opcodes/microblaze-dis.c 23 Sep 2009 19:10:00 -0000
@@ -34,6 +34,13 @@
#define get_int_field_imm(instr) ((instr & IMM_MASK) >> IMM_LOW)
#define get_int_field_r1(instr) ((instr & RA_MASK) >> RA_LOW)
+
+enum microblaze_instr get_insn_microblaze (long, bfd_boolean *,
+ enum microblaze_instr_type *, short *);
+unsigned long microblaze_get_target_address (long, bfd_boolean, int, long, long,
+ long, bfd_boolean *, bfd_boolean *);
+enum microblaze_instr microblaze_decode_insn (long insn, int *rd, int *ra, int *rb, int *imm);
+
static char *
get_field (long instr, long mask, unsigned short low)
{
@@ -388,8 +395,8 @@ print_insn_microblaze (bfd_vma memaddr,
/* Say how many bytes we consumed. */
return 4;
}
-#if 0
-static enum microblaze_instr
+
+enum microblaze_instr
get_insn_microblaze (long inst,
bfd_boolean *isunsignedimm,
enum microblaze_instr_type *insn_type,
@@ -414,21 +421,6 @@ get_insn_microblaze (long inst,
}
}
-short
-get_delay_slots_microblaze (long inst)
-{
- bfd_boolean isunsignedimm;
- enum microblaze_instr_type insn_type;
- enum microblaze_instr op;
- short delay_slots;
-
- op = get_insn_microblaze (inst, &isunsignedimm, &insn_type, &delay_slots);
- if (op == invalid_inst)
- return 0;
- else
- return delay_slots;
-}
-
enum microblaze_instr
microblaze_decode_insn (long insn, int *rd, int *ra, int *rb, int *imm)
{
@@ -524,4 +516,3 @@ microblaze_get_target_address (long inst
*targetvalid = FALSE;
return targetaddr;
}
-#endif