This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 03/11] Add enum for mips breakpoint kinds
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 3 Nov 2016 09:48:03 +0000
- Subject: [PATCH 03/11] Add enum for mips breakpoint kinds
- Authentication-results: sourceware.org; auth=none
- References: <1478166491-11357-1-git-send-email-yao.qi@linaro.org>
This patch adds an enum mips_breakpoint_kinds to avoid using magic
numbers as much as possible.
gdb:
2016-11-02 Yao Qi <yao.qi@linaro.org>
* mips-tdep.c (mips_breakpoint_kinds): New enum.
(mips_breakpoint_from_pc): Use it.
(mips_remote_breakpoint_from_pc): Likewise.
---
gdb/mips-tdep.c | 40 +++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index e4b60c0..627b9c0 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -108,6 +108,23 @@ static const char *const mips_abi_strings[] = {
NULL
};
+/* Enum describing the different kinds of breakpoints. */
+
+enum mips_breakpoint_kind
+{
+ /* 16-bit MIPS16 mode breakpoint. */
+ MIPS_BP_KIND_MIPS16 = 2,
+
+ /* 16-bit microMIPS mode breakpoint. */
+ MIPS_BP_KIND_MICROMIPS16 = 3,
+
+ /* 32-bit standard MIPS mode breakpoint. */
+ MIPS_BP_KIND_MIPS32 = 4,
+
+ /* 32-bit microMIPS mode breakpoint. */
+ MIPS_BP_KIND_MICROMIPS32 = 5,
+};
+
/* For backwards compatibility we default to MIPS16. This flag is
overridden as soon as unambiguous ELF file flags tell us the
compressed ISA encoding used. */
@@ -7097,16 +7114,7 @@ mips_breakpoint_from_pc (struct gdbarch *gdbarch,
}
}
-/* Determine the remote breakpoint kind suitable for the PC. The following
- kinds are used:
-
- * 2 -- 16-bit MIPS16 mode breakpoint,
-
- * 3 -- 16-bit microMIPS mode breakpoint,
-
- * 4 -- 32-bit standard MIPS mode breakpoint,
-
- * 5 -- 32-bit microMIPS mode breakpoint. */
+/* Determine the remote breakpoint kind suitable for the PC. */
static void
mips_remote_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr,
@@ -7117,21 +7125,23 @@ mips_remote_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr,
if (mips_pc_is_mips16 (gdbarch, pc))
{
*pcptr = unmake_compact_addr (pc);
- *kindptr = 2;
+ *kindptr = MIPS_BP_KIND_MIPS16;
}
else if (mips_pc_is_micromips (gdbarch, pc))
{
ULONGEST insn;
int status;
- int size;
insn = mips_fetch_instruction (gdbarch, ISA_MICROMIPS, pc, &status);
- size = status ? 2 : mips_insn_size (ISA_MICROMIPS, insn) == 2 ? 2 : 4;
+ if (status || (mips_insn_size (ISA_MICROMIPS, insn) == 2))
+ *kindptr = MIPS_BP_KIND_MICROMIPS16;
+ else
+ *kindptr = MIPS_BP_KIND_MICROMIPS32;
+
*pcptr = unmake_compact_addr (pc);
- *kindptr = size | 1;
}
else
- *kindptr = 4;
+ *kindptr = MIPS_BP_KIND_MIPS32;
}
/* Return non-zero if the standard MIPS instruction INST has a branch
--
1.9.1