[binutils-gdb] [gdb/tdep] Factor out amd64_get_used_input_int_regs
Tom de Vries
vries@sourceware.org
Fri Mar 7 08:25:36 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0c1eecdfc6348ec9213ebbb42ddce78fc197a428
commit 0c1eecdfc6348ec9213ebbb42ddce78fc197a428
Author: Tom de Vries <tdevries@suse.de>
Date: Fri Mar 7 09:25:33 2025 +0100
[gdb/tdep] Factor out amd64_get_used_input_int_regs
The function amd64_get_unused_input_int_reg consists of two parts:
- finding the used int registers in an insn, and
- picking an unused int register.
Factor out the first part as new function amd64_get_used_input_int_regs.
No functional changes.
Tested on x86_64-linux.
Diff:
---
gdb/amd64-tdep.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 0c3eae14371..dd0fa06f354 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -1206,13 +1206,11 @@ amd64_skip_prefixes (gdb_byte *insn)
return insn;
}
-/* Return an integer register in ALLOWED_REGS_MASK that is unused as an input
- operand in INSN. The register numbering of the result follows architecture
- ordering, e.g. RDI = 7. Return -1 if no register can be found. */
+/* Return a register mask for the integer registers that are used as an input
+ operand in INSN. */
-static int
-amd64_get_unused_input_int_reg (const struct amd64_insn *details,
- uint32_t allowed_regs_mask)
+static uint32_t
+amd64_get_used_input_int_regs (const struct amd64_insn *details)
{
/* 1 bit for each reg */
uint32_t used_regs_mask = 0;
@@ -1255,6 +1253,19 @@ amd64_get_unused_input_int_reg (const struct amd64_insn *details,
}
gdb_assert (used_regs_mask < 256);
+ return used_regs_mask;
+}
+
+/* Return an integer register in ALLOWED_REGS_MASK that is unused as an input
+ operand in INSN. The register numbering of the result follows architecture
+ ordering, e.g. RDI = 7. Return -1 if no register can be found. */
+
+static int
+amd64_get_unused_input_int_reg (const struct amd64_insn *details,
+ uint32_t allowed_regs_mask)
+{
+ /* 1 bit for each reg */
+ uint32_t used_regs_mask = amd64_get_used_input_int_regs (details);
/* Finally, find a free reg. */
{
More information about the Gdb-cvs
mailing list