aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/i386-tdep.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1c3aa31..d1112fb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2007-01-05 Joel Brobecker <brobecker@adacore.com>
+ * i386-tdep.c (i386_analyze_stack_align): Add comment.
+
+2007-01-05 Joel Brobecker <brobecker@adacore.com>
+
* NEWS: Add entries for new catch commands.
2006-02-05 Joel Brobecker <brobecker@adacore.com>
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index cd52bf6..de7e226 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -497,6 +497,10 @@ static CORE_ADDR
i386_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
struct i386_frame_cache *cache)
{
+ /* The register used by the compiler to perform the stack re-alignment
+ is, in order of preference, either %ecx, %edx, or %eax. GCC should
+ never use %ebx as it always treats it as callee-saved, whereas
+ the compiler can only use caller-saved registers. */
static const gdb_byte insns_ecx[10] = {
0x8d, 0x4c, 0x24, 0x04, /* leal 4(%esp), %ecx */
0x83, 0xe4, 0xf0, /* andl $-16, %esp */