aboutsummaryrefslogtreecommitdiff
path: root/gdb/config
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2000-02-22 19:18:53 +0000
committerJim Blandy <jimb@codesourcery.com>2000-02-22 19:18:53 +0000
commitb9a8e3bfd40ae4b14d2ff3a6d7f8704f5782eba8 (patch)
tree1ba9faebd0ce345f35eba3024e8e794a99f757ba /gdb/config
parent87f398dd6a71a1d10f378be4ad51da680034260f (diff)
downloadgdb-b9a8e3bfd40ae4b14d2ff3a6d7f8704f5782eba8.zip
gdb-b9a8e3bfd40ae4b14d2ff3a6d7f8704f5782eba8.tar.gz
gdb-b9a8e3bfd40ae4b14d2ff3a6d7f8704f5782eba8.tar.bz2
Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be more function-like. (default_coerce_float_to_double, standard_coerce_float_to_double): New functions. (value_arg_coerce): Adjust for new definition. * value.h (default_coerce_float_to_double, standard_coerce_float_to_double): New declarations for the above. * gdbarch.sh (coerce_float_to_double): New entry, replacing macro. * gdbarch.c, gdbarch.h: Regenerated. * tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h, tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change definitions. * mips-tdep.c (mips_coerce_float_to_double): Supply our own custom function here. (mips_gdbarch_init): Install that as our coerce_float_to_double function.
Diffstat (limited to 'gdb/config')
-rw-r--r--gdb/config/alpha/tm-alpha.h2
-rw-r--r--gdb/config/fr30/tm-fr30.h2
-rw-r--r--gdb/config/m32r/tm-m32r.h2
-rw-r--r--gdb/config/mips/tm-mips.h4
-rw-r--r--gdb/config/pa/tm-hppa.h2
-rw-r--r--gdb/config/rs6000/tm-rs6000.h2
-rw-r--r--gdb/config/sh/tm-sh.h2
-rw-r--r--gdb/config/sparc/tm-sparc.h2
8 files changed, 10 insertions, 8 deletions
diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h
index 8b3c5ba..d63dcc1 100644
--- a/gdb/config/alpha/tm-alpha.h
+++ b/gdb/config/alpha/tm-alpha.h
@@ -445,7 +445,7 @@ extern struct frame_info *setup_arbitrary_frame PARAMS ((int, CORE_ADDR *));
values are always passed in as doubles. Thus by setting this to 1, both
types of calls will work. */
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
/* Return TRUE if procedure descriptor PROC is a procedure descriptor
that refers to a dynamically generated sigtramp function.
diff --git a/gdb/config/fr30/tm-fr30.h b/gdb/config/fr30/tm-fr30.h
index c530ad3..d289f6e 100644
--- a/gdb/config/fr30/tm-fr30.h
+++ b/gdb/config/fr30/tm-fr30.h
@@ -234,4 +234,4 @@ extern CORE_ADDR
should be true on any system where you can rely on the prototyping
information. When this is true, value_arg_coerce will promote
floats to doubles iff the function is not prototyped. */
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
diff --git a/gdb/config/m32r/tm-m32r.h b/gdb/config/m32r/tm-m32r.h
index 7aad4c9..a68720a 100644
--- a/gdb/config/m32r/tm-m32r.h
+++ b/gdb/config/m32r/tm-m32r.h
@@ -166,7 +166,7 @@ extern CORE_ADDR m32r_skip_prologue PARAMS ((CORE_ADDR pc));
/* mvs_no_check FRAME_NUM_ARGS */
#define FRAME_NUM_ARGS(fi) (-1)
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
extern void m32r_write_sp (CORE_ADDR val);
#define TARGET_WRITE_SP m32r_write_sp
diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index ea9d04c..3b8330f 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -500,6 +500,7 @@ extern struct frame_info *setup_arbitrary_frame PARAMS ((int, CORE_ADDR *));
#define ECOFF_REG_TO_REGNUM(num) ((num) < 32 ? (num) : (num)+FP0_REGNUM-32)
+#if !GDB_MULTI_ARCH
/* If the current gcc for for this target does not produce correct debugging
information for float parameters, both prototyped and unprototyped, then
define this macro. This forces gdb to always assume that floats are
@@ -512,7 +513,8 @@ extern struct frame_info *setup_arbitrary_frame PARAMS ((int, CORE_ADDR *));
for C and break the prototyped case, since the non-prototyped case is
probably much more common. (FIXME). */
-#define COERCE_FLOAT_TO_DOUBLE (current_language -> la_language == language_c)
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (current_language -> la_language == language_c)
+#endif
/* Select the default mips disassembler */
diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h
index a5a7064..9307fa5 100644
--- a/gdb/config/pa/tm-hppa.h
+++ b/gdb/config/pa/tm-hppa.h
@@ -793,7 +793,7 @@ PARAMS ((CORE_ADDR, int))
for C and break the prototyped case, since the non-prototyped case is
probably much more common. (FIXME). */
-#define COERCE_FLOAT_TO_DOUBLE (current_language -> la_language == language_c)
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (current_language -> la_language == language_c)
/* Here's how to step off a permanent breakpoint. */
#define SKIP_PERMANENT_BREAKPOINT (hppa_skip_permanent_breakpoint)
diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h
index 89a0bd1..3b3e190 100644
--- a/gdb/config/rs6000/tm-rs6000.h
+++ b/gdb/config/rs6000/tm-rs6000.h
@@ -559,4 +559,4 @@ extern CORE_ADDR get_toc_offset PARAMS ((struct objfile *));
values are always passed in as doubles. Thus by setting this to 1, both
types of calls will work. */
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
diff --git a/gdb/config/sh/tm-sh.h b/gdb/config/sh/tm-sh.h
index c6769e0..a336713 100644
--- a/gdb/config/sh/tm-sh.h
+++ b/gdb/config/sh/tm-sh.h
@@ -269,7 +269,7 @@ extern void sh_pop_frame PARAMS ((void));
#define REGISTER_SIZE 4
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
#define BELIEVE_PCC_PROMOTION 1
diff --git a/gdb/config/sparc/tm-sparc.h b/gdb/config/sparc/tm-sparc.h
index 635a693..5419ecb 100644
--- a/gdb/config/sparc/tm-sparc.h
+++ b/gdb/config/sparc/tm-sparc.h
@@ -569,7 +569,7 @@ extern int deferred_stores;
define this macro. This forces gdb to always assume that floats are
passed as doubles and then converted in the callee. */
-#define COERCE_FLOAT_TO_DOUBLE 1
+#define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
/* Select the sparc disassembler */