* ia64-tdep.c (ia64_libunwind_frame_this_id): Adapt uses of
authorAndreas Schwab <schwab@linux-m68k.org>
Wed, 8 Mar 2006 15:28:17 +0000 (15:28 +0000)
committerAndreas Schwab <schwab@linux-m68k.org>
Wed, 8 Mar 2006 15:28:17 +0000 (15:28 +0000)
libunwind_frame_prev_register to use a gdb_byte buffer and
extract_unsigned_integer.
(ia64_libunwind_sigtramp_frame_prev_register): Likewise.

* libunwind-frame.c (libunwind_frame_prev_register): Change type
of last argument to `gdb_byte *'
* libunwind-frame.h: Adjust declaration.

gdb/ChangeLog
gdb/ia64-tdep.c
gdb/libunwind-frame.c
gdb/libunwind-frame.h

index d08c9b2..55bbc17 100644 (file)
@@ -1,3 +1,14 @@
+2006-03-08  Andreas Schwab  <schwab@suse.de>
+
+       * ia64-tdep.c (ia64_libunwind_frame_this_id): Adapt use of
+       libunwind_frame_prev_register to use a gdb_byte buffer and
+       extract_unsigned_integer.
+       (ia64_libunwind_sigtramp_frame_prev_register): Likewise.
+
+       * libunwind-frame.c (libunwind_frame_prev_register): Change type
+       of last argument to `gdb_byte *'
+       * libunwind-frame.h: Adjust declaration.
+
 2006-03-08  Paul Brook  <paul@codesourcery.com>
 
        * arm-tdep.c (arm_push_dummy_call): Remove stack alignment.
index 4ec5a95..f78f1fc 100644 (file)
@@ -2732,7 +2732,8 @@ ia64_libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
      and don't want to unwind past this frame.  We return a null frame_id to
      indicate this.  */
   libunwind_frame_prev_register (next_frame, this_cache, IA64_IP_REGNUM, 
-                                &optimized, &lval, &addr, &realnum, &prev_ip);
+                                &optimized, &lval, &addr, &realnum, buf);
+  prev_ip = extract_unsigned_integer (buf, 8);
 
   if (prev_ip != 0)
     (*this_id) = frame_id_build_special (id.stack_addr, id.code_addr, bsp);
@@ -2892,6 +2893,7 @@ ia64_libunwind_sigtramp_frame_prev_register (struct frame_info *next_frame,
                                             int *realnump, gdb_byte *valuep)
 
 {
+  gdb_byte buf[8];
   CORE_ADDR prev_ip, addr;
   int realnum, optimized;
   enum lval_type lval;
@@ -2900,7 +2902,8 @@ ia64_libunwind_sigtramp_frame_prev_register (struct frame_info *next_frame,
   /* If the previous frame pc value is 0, then we want to use the SIGCONTEXT
      method of getting previous registers.  */
   libunwind_frame_prev_register (next_frame, this_cache, IA64_IP_REGNUM, 
-                                &optimized, &lval, &addr, &realnum, &prev_ip);
+                                &optimized, &lval, &addr, &realnum, buf);
+  prev_ip = extract_unsigned_integer (buf, 8);
 
   if (prev_ip == 0)
     {
index fbc84d4..6f39b72 100644 (file)
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames using the libunwind library.
 
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
 
    Written by Jeff Johnston, contributed by Red Hat Inc.
 
@@ -248,7 +248,7 @@ void
 libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
                               int regnum, int *optimizedp,
                               enum lval_type *lvalp, CORE_ADDR *addrp,
-                              int *realnump, void *valuep)
+                              int *realnump, gdb_byte *valuep)
 {
   struct libunwind_frame_cache *cache =
     libunwind_frame_cache (next_frame, this_cache);
index 0aa2b2c..ffa43a0 100644 (file)
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames with libunwind frame information.
 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
 
    Contributed by Jeff Johnston.
 
@@ -51,7 +51,7 @@ void libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
 void libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
                                    int regnum, int *optimizedp,
                                    enum lval_type *lvalp, CORE_ADDR *addrp,
-                                   int *realnump, void *valuep);
+                                   int *realnump, gdb_byte *valuep);
 CORE_ADDR libunwind_frame_base_address (struct frame_info *next_frame, void **this_cache);
 
 int libunwind_is_initialized (void);