This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfc] [6/6] Replace EXTRACT_RETURN_VALUE and STORE_RETURN_VALUE



Hello,


this patch replaces EXTRACT_RETURN_VALUE and STORE_RETURN_VALUE by gdbarch_extract_return_value and gdbarch_store_return_value.

ChangeLog:

	* gdbarch.sh (EXTRACT_RETURN_VALUE): Replace with
	gdbarch_extract_return_value.
	* value.c (generic_use_struct_convention): Likewise (comment).
	* ia64-tdep.c (ia64_use_struct_convention): Likewise (comment).
	* arch-utils.c (legacy_return_value): Likewise.
	* arch-utils.h (legacy_return_value): Likewise (comment).
	* gdbarch.sh (STORE_RETURN_VALUE): Replace by
	gdbarch_store_return_value.
	* stack.c (return_command): Likewise (comment).
	* arch-utils.h (legacy_return_value): Likewise (comment).
	* arch-utils.c (legacy_return_value): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.


Is this ok to commit? -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com




diff -urN src.1/gdb/arch-utils.c dev/gdb/arch-utils.c
--- src.1/gdb/arch-utils.c	2007-06-18 10:42:41.000000000 +0200
+++ dev/gdb/arch-utils.c	2007-06-18 10:43:39.000000000 +0200
@@ -61,17 +61,18 @@
     {
       gdb_assert (!struct_return);
       /* NOTE: cagney/2004-06-13: See stack.c:return_command.  Old
-	 architectures don't expect STORE_RETURN_VALUE to handle small
+	 architectures don't expect store_return_value to handle small
 	 structures.  Should not be called with such types.  */
       gdb_assert (TYPE_CODE (valtype) != TYPE_CODE_STRUCT
 		  && TYPE_CODE (valtype) != TYPE_CODE_UNION);
-      STORE_RETURN_VALUE (valtype, regcache, writebuf);
+      gdbarch_store_return_value (current_gdbarch, valtype, regcache, writebuf);
     }
 
   if (readbuf != NULL)
     {
       gdb_assert (!struct_return);
-      EXTRACT_RETURN_VALUE (valtype, regcache, readbuf);
+      gdbarch_extract_return_value (current_gdbarch,
+				    valtype, regcache, readbuf);
     }
 
   if (struct_return)
diff -urN src.1/gdb/arch-utils.h dev/gdb/arch-utils.h
--- src.1/gdb/arch-utils.h	2007-06-18 10:42:41.000000000 +0200
+++ dev/gdb/arch-utils.h	2007-06-18 10:43:39.000000000 +0200
@@ -33,8 +33,8 @@
 extern int gdbarch_debug;
 
 /* An implementation of return_value that props up architectures still
-   using USE_STRUCT_RETURN, EXTRACT_RETURN_VALUE and
-   STORE_RETURN_VALUE.  See also the hacks in "stack.c".  */
+   using USE_STRUCT_RETURN, gdbarch_extract_return_value and
+   store_return_value.  See also the hacks in "stack.c".  */
 enum return_value_convention legacy_return_value (struct gdbarch *gdbarch,
 						  struct type *valtype,
 						  struct regcache *regcache,
diff -urN src.1/gdb/gdbarch.c dev/gdb/gdbarch.c
--- src.1/gdb/gdbarch.c	2007-06-18 10:42:41.000000000 +0200
+++ dev/gdb/gdbarch.c	2007-06-18 10:45:01.000000000 +0200
@@ -779,12 +779,6 @@
   fprintf_unfiltered (file,
                       "gdbarch_dump: elf_make_msymbol_special = <0x%lx>\n",
                       (long) current_gdbarch->elf_make_msymbol_special);
-#ifdef EXTRACT_RETURN_VALUE
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "EXTRACT_RETURN_VALUE(type, regcache, valbuf)",
-                      XSTRING (EXTRACT_RETURN_VALUE (type, regcache, valbuf)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: extract_return_value = <0x%lx>\n",
                       (long) current_gdbarch->extract_return_value);
@@ -1066,12 +1060,6 @@
   fprintf_unfiltered (file,
                       "gdbarch_dump: stabs_argument_has_addr = <0x%lx>\n",
                       (long) current_gdbarch->stabs_argument_has_addr);
-#ifdef STORE_RETURN_VALUE
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "STORE_RETURN_VALUE(type, regcache, valbuf)",
-                      XSTRING (STORE_RETURN_VALUE (type, regcache, valbuf)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: store_return_value = <0x%lx>\n",
                       (long) current_gdbarch->store_return_value);
diff -urN src.1/gdb/gdbarch.h dev/gdb/gdbarch.h
--- src.1/gdb/gdbarch.h	2007-06-18 10:42:41.000000000 +0200
+++ dev/gdb/gdbarch.h	2007-06-18 10:44:52.000000000 +0200
@@ -395,7 +395,7 @@
    should take the type/value of the function to be called and not the
    return type.  This is left as an exercise for the reader.
    NOTE: cagney/2004-06-13: The function stack.c:return_command uses
-   the predicate with default hack to avoid calling STORE_RETURN_VALUE
+   the predicate with default hack to avoid calling store_return_value
    (via legacy_return_value), when a small struct is involved. */
 
 extern int gdbarch_return_value_p (struct gdbarch *gdbarch);
@@ -404,7 +404,7 @@
 extern enum return_value_convention gdbarch_return_value (struct gdbarch *gdbarch, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf);
 extern void set_gdbarch_return_value (struct gdbarch *gdbarch, gdbarch_return_value_ftype *return_value);
 
-/* The deprecated methods EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE,
+/* The deprecated methods extract_return_value, store_return_value,
    DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS and
    deprecated_use_struct_convention have all been folded into
    RETURN_VALUE. */
@@ -412,22 +412,10 @@
 typedef void (gdbarch_extract_return_value_ftype) (struct type *type, struct regcache *regcache, gdb_byte *valbuf);
 extern void gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, gdb_byte *valbuf);
 extern void set_gdbarch_extract_return_value (struct gdbarch *gdbarch, gdbarch_extract_return_value_ftype *extract_return_value);
-#if !defined (GDB_TM_FILE) && defined (EXTRACT_RETURN_VALUE)
-#error "Non multi-arch definition of EXTRACT_RETURN_VALUE"
-#endif
-#if !defined (EXTRACT_RETURN_VALUE)
-#define EXTRACT_RETURN_VALUE(type, regcache, valbuf) (gdbarch_extract_return_value (current_gdbarch, type, regcache, valbuf))
-#endif
 
 typedef void (gdbarch_store_return_value_ftype) (struct type *type, struct regcache *regcache, const gdb_byte *valbuf);
 extern void gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const gdb_byte *valbuf);
 extern void set_gdbarch_store_return_value (struct gdbarch *gdbarch, gdbarch_store_return_value_ftype *store_return_value);
-#if !defined (GDB_TM_FILE) && defined (STORE_RETURN_VALUE)
-#error "Non multi-arch definition of STORE_RETURN_VALUE"
-#endif
-#if !defined (STORE_RETURN_VALUE)
-#define STORE_RETURN_VALUE(type, regcache, valbuf) (gdbarch_store_return_value (current_gdbarch, type, regcache, valbuf))
-#endif
 
 typedef int (gdbarch_deprecated_use_struct_convention_ftype) (int gcc_p, struct type *value_type);
 extern int gdbarch_deprecated_use_struct_convention (struct gdbarch *gdbarch, int gcc_p, struct type *value_type);
diff -urN src.1/gdb/gdbarch.sh dev/gdb/gdbarch.sh
--- src.1/gdb/gdbarch.sh	2007-06-18 10:42:41.000000000 +0200
+++ dev/gdb/gdbarch.sh	2007-06-18 10:44:41.000000000 +0200
@@ -503,18 +503,18 @@
 # return type.  This is left as an exercise for the reader.
 
 # NOTE: cagney/2004-06-13: The function stack.c:return_command uses
-# the predicate with default hack to avoid calling STORE_RETURN_VALUE
+# the predicate with default hack to avoid calling store_return_value
 # (via legacy_return_value), when a small struct is involved.
 
 M::enum return_value_convention:return_value:struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf:valtype, regcache, readbuf, writebuf::legacy_return_value
 
-# The deprecated methods EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE,
+# The deprecated methods extract_return_value, store_return_value,
 # DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS and
 # deprecated_use_struct_convention have all been folded into
 # RETURN_VALUE.
 
-f:=:void:extract_return_value:struct type *type, struct regcache *regcache, gdb_byte *valbuf:type, regcache, valbuf:0
-f:=:void:store_return_value:struct type *type, struct regcache *regcache, const gdb_byte *valbuf:type, regcache, valbuf:0
+f::void:extract_return_value:struct type *type, struct regcache *regcache, gdb_byte *valbuf:type, regcache, valbuf:0
+f::void:store_return_value:struct type *type, struct regcache *regcache, const gdb_byte *valbuf:type, regcache, valbuf:0
 f::int:deprecated_use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type::generic_use_struct_convention::0
 
 # As of 2004-01-17 only the 32-bit SPARC ABI has been identified as an
diff -urN src.1/gdb/ia64-tdep.c dev/gdb/ia64-tdep.c
--- src.1/gdb/ia64-tdep.c	2007-06-18 05:36:42.000000000 +0200
+++ dev/gdb/ia64-tdep.c	2007-06-18 10:43:39.000000000 +0200
@@ -2923,7 +2923,7 @@
 #endif /* HAVE_LIBUNWIND_IA64_H  */
 
 /* Should we use DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS instead of
-   EXTRACT_RETURN_VALUE?  GCC_P is true if compiled with gcc and TYPE
+   gdbarch_extract_return_value?  GCC_P is true if compiled with gcc and TYPE
    is the type (which is known to be struct, union or array).  */
 int
 ia64_use_struct_convention (int gcc_p, struct type *type)
diff -urN src.1/gdb/stack.c dev/gdb/stack.c
--- src.1/gdb/stack.c	2007-06-18 05:36:44.000000000 +0200
+++ dev/gdb/stack.c	2007-06-18 10:43:39.000000000 +0200
@@ -1787,7 +1787,7 @@
 		   || TYPE_CODE (return_type) == TYPE_CODE_UNION))
 	{
 	  /* NOTE: cagney/2003-10-20: Compatibility hack for legacy
-	     code.  Old architectures don't expect STORE_RETURN_VALUE
+	     code.  Old architectures don't expect gdbarch_store_return_value
 	     to be called with with a small struct that needs to be
 	     stored in registers.  Don't start doing it now.  */
 	  query_prefix = "\
diff -urN src.1/gdb/value.c dev/gdb/value.c
--- src.1/gdb/value.c	2007-06-12 18:37:17.000000000 +0200
+++ dev/gdb/value.c	2007-06-18 10:43:40.000000000 +0200
@@ -1654,7 +1654,7 @@
 
 
 /* Should we use DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS instead of
-   EXTRACT_RETURN_VALUE?  GCC_P is true if compiled with gcc and TYPE
+   gdbarch_extract_return_value?  GCC_P is true if compiled with gcc and TYPE
    is the type (which is known to be struct, union or array).
 
    On most machines, the struct convention is used unless we are


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]