* i386-tdep.c (i386_extract_struct_value_address): Use
authorMark Kettenis <kettenis@gnu.org>
Sat, 26 Oct 2002 14:41:37 +0000 (14:41 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 26 Oct 2002 14:41:37 +0000 (14:41 +0000)
regcache_raw_read_unsigned instead of
regcache_cooked_read_unsigned since we know that the register
we're reading isn't a pseudo register.  Rename variable 'val' into
the more descriptive 'addr'.

gdb/ChangeLog
gdb/i386-tdep.c

index ef085932b7807d8ec6d4b45fa78c8c40182a4373..4abddcdc3458a7ea245888ace57b71b427f802ed 100644 (file)
@@ -1,5 +1,11 @@
 2002-10-26  Mark Kettenis  <kettenis@gnu.org>
 
+       * i386-tdep.c (i386_extract_struct_value_address): Use
+       regcache_raw_read_unsigned instead of
+       regcache_cooked_read_unsigned since we know that the register
+       we're reading isn't a pseudo register.  Rename variable 'val' into
+       the more descriptive 'addr'.
+
        * x86-64-tdep.c: Fix some formatting problems, mostly in comments.
        (x86_64_push_return_address): Add comment.
        (x86_64_pop_frame): Make static.
index 5a19308294f71184b9bb531d6032ed961c8d6b55..252a9b7c28b102ac789ce207e2b2a9edb5690d6e 100644 (file)
@@ -1039,25 +1039,17 @@ i386_store_return_value (struct type *type, struct regcache *regcache,
     }
 }
 
-/* Extract from an array REGBUF containing the (raw) register state
-   the address in which a function should return its structure value,
-   as a CORE_ADDR.  */
+/* Extract from REGCACHE, which contains the (raw) register state, the
+   address in which a function should return its structure value, as a
+   CORE_ADDR.  */
 
 static CORE_ADDR
 i386_extract_struct_value_address (struct regcache *regcache)
 {
-  /* NOTE: cagney/2002-08-12: Replaced a call to
-     regcache_raw_read_as_address() with a call to
-     regcache_cooked_read_unsigned().  The old, ...as_address function
-     was eventually calling extract_unsigned_integer (via
-     extract_address) to unpack the registers value.  The below is
-     doing an unsigned extract so that it is functionally equivalent.
-     The read needs to be cooked as, otherwise, it will never
-     correctly return the value of a register in the [NUM_REGS
-     .. NUM_REGS+NUM_PSEUDO_REGS) range.  */
-  ULONGEST val;
-  regcache_cooked_read_unsigned (regcache, LOW_RETURN_REGNUM, &val);
-  return val;
+  ULONGEST addr;
+
+  regcache_raw_read_unsigned (regcache, LOW_RETURN_REGNUM, &addr);
+  return addr;
 }
 \f