* linux-x86-low.c (i386_emit_prologue): Save %ebx.
authorStan Shebs <shebs@codesourcery.com>
Thu, 8 Sep 2011 22:38:29 +0000 (22:38 +0000)
committerStan Shebs <shebs@codesourcery.com>
Thu, 8 Sep 2011 22:38:29 +0000 (22:38 +0000)
(i386_emit_epilogue): Restore %ebx.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-x86-low.c

index 8fd3f2a..91fee1a 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-08  Stan Shebs  <stan@codesourcery.com>
+
+       * linux-x86-low.c (i386_emit_prologue): Save %ebx.
+       (i386_emit_epilogue): Restore %ebx.
+
 2011-08-31  Jie Zhang  <jzhang918@gmail.com>
 
        * server.c (step_thread): Remove definition.
index dd69379..8a3a597 100644 (file)
@@ -2035,7 +2035,8 @@ i386_emit_prologue (void)
 {
   EMIT_ASM32 (i386_prologue,
            "push %ebp\n\t"
-           "mov %esp,%ebp");
+           "mov %esp,%ebp\n\t"
+           "push %ebx");
   /* At this point, the raw regs base address is at 8(%ebp), and the
      value pointer is at 12(%ebp).  */
 }
@@ -2048,6 +2049,7 @@ i386_emit_epilogue (void)
            "mov %eax,(%ecx)\n\t"
            "mov %ebx,0x4(%ecx)\n\t"
            "xor %eax,%eax\n\t"
+           "pop %ebx\n\t"
            "pop %ebp\n\t"
            "ret");
 }