aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2001-04-01 12:39:52 +0000
committerMark Kettenis <kettenis@gnu.org>2001-04-01 12:39:52 +0000
commitf7af964784af9614842c08ccd8421fbda10c6b4b (patch)
treeb5a0add1d26e49cf2d07f2c924e0b55cf3037440 /gdb/i386-tdep.c
parent7bf0983e946fee707de4cd03ecd990c550cd9c38 (diff)
downloadgdb-f7af964784af9614842c08ccd8421fbda10c6b4b.zip
gdb-f7af964784af9614842c08ccd8421fbda10c6b4b.tar.gz
gdb-f7af964784af9614842c08ccd8421fbda10c6b4b.tar.bz2
* i386-tdep.c (i386_extract_struct_value_address): New function.
* config/i386/tm-i386.h (EXTRACT_STRUCT_VALUE_ADDRESS): Redefine in terms of i386_extract_struct_value_address. (i386_extract_struct_value_address): New prototype.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r--gdb/i386-tdep.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index db001da..1090cbe 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -850,6 +850,17 @@ i386_store_return_value (struct type *type, char *valbuf)
"Cannot store return value of %d bytes long.", len);
}
}
+
+/* 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. */
+
+CORE_ADDR
+i386_extract_struct_value_address (char *regbuf)
+{
+ return extract_address (&regbuf[REGISTER_BYTE (LOW_RETURN_REGNUM)],
+ REGISTER_RAW_SIZE (LOW_RETURN_REGNUM));
+}
/* Convert data from raw format for register REGNUM in buffer FROM to