aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog26
-rw-r--r--gdb/config/h8500/tm-h8500.h2
-rw-r--r--gdb/config/sparc/tm-sp64.h2
-rw-r--r--gdb/config/v850/tm-v850.h1
-rw-r--r--gdb/d10v-tdep.c7
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdbint.texinfo13
-rw-r--r--gdb/dwarf2cfi.c3
-rw-r--r--gdb/gdbarch.c36
-rw-r--r--gdb/gdbarch.h17
-rwxr-xr-xgdb/gdbarch.sh1
-rw-r--r--gdb/h8500-tdep.c6
-rw-r--r--gdb/ia64-tdep.c8
-rw-r--r--gdb/inferior.h4
-rw-r--r--gdb/m68hc11-tdep.c1
-rw-r--r--gdb/mips-tdep.c1
-rw-r--r--gdb/regcache.c32
-rw-r--r--gdb/rs6000-tdep.c1
-rw-r--r--gdb/s390-tdep.c8
-rw-r--r--gdb/sh-tdep.c1
-rw-r--r--gdb/x86-64-tdep.c1
21 files changed, 47 insertions, 129 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4e4382c..4d8d01b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,29 @@
+2002-04-05 Andrew Cagney <ac131313@redhat.com>
+
+ * h8500-tdep.c (h8500_write_fp): Delete function.
+ * dwarf2cfi.c (cfi_write_fp): Document as not used.
+ * mips-tdep.c (mips_gdbarch_init): Do not set write_fp.
+ * ia64-tdep.c (ia64_gdbarch_init): Do not set write_fp.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Do not set write_fp.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Do not set write_fp.
+ * s390-tdep.c (s390_gdbarch_init): Do not set write_fp.
+ (s390_write_fp):
+ * sh-tdep.c (sh_gdbarch_init): Do not set write_fp.
+ * x86-64-tdep.c (i386_gdbarch_init): Do not set write_fp.
+ * d10v-tdep.c (d10v_gdbarch_init): Do not set write_fp.
+ (d10v_write_fp): Delete function.
+ * inferior.h (write_fp, generic_target_write_fp): Delete
+ declarations.
+ * regcache.c (generic_target_write_fp): Delete function.
+ (write_fp): Delete function.
+ * gdbarch.sh (TARGET_WRITE_FP): Delete.
+ * gdbarch.h, gdbarch.c: Regenerate.
+ * config/v850/tm-v850.h (TARGET_WRITE_FP): Delete macro.
+ * config/sparc/tm-sp64.h (TARGET_WRITE_FP): Delete macro.
+ (sparc64_write_fp): Delete declaration.
+ * config/h8500/tm-h8500.h (TARGET_WRITE_FP): Delete macro.
+ (h8500_write_fp): Delete declaration.
+
2002-04-04 Andrew Cagney <ac131313@redhat.com>
* sparc-tdep.c (sparc64_write_fp): Delete.
diff --git a/gdb/config/h8500/tm-h8500.h b/gdb/config/h8500/tm-h8500.h
index f326165..fae6704 100644
--- a/gdb/config/h8500/tm-h8500.h
+++ b/gdb/config/h8500/tm-h8500.h
@@ -275,7 +275,6 @@ extern CORE_ADDR h8500_read_sp (void);
extern void h8500_write_sp (CORE_ADDR);
extern CORE_ADDR h8500_read_fp (void);
-extern void h8500_write_fp (CORE_ADDR);
extern CORE_ADDR h8500_read_pc (ptid_t);
extern void h8500_write_pc (CORE_ADDR, ptid_t);
@@ -287,4 +286,3 @@ extern void h8500_write_pc (CORE_ADDR, ptid_t);
#define TARGET_WRITE_PC(x,pid) h8500_write_pc(x,pid)
#define TARGET_READ_FP() h8500_read_fp()
-#define TARGET_WRITE_FP(x) h8500_write_fp(x)
diff --git a/gdb/config/sparc/tm-sp64.h b/gdb/config/sparc/tm-sp64.h
index 55006c6..8486c86 100644
--- a/gdb/config/sparc/tm-sp64.h
+++ b/gdb/config/sparc/tm-sp64.h
@@ -268,12 +268,10 @@ CORE_ADDR sparc64_push_arguments (int,
extern CORE_ADDR sparc64_read_sp ();
extern CORE_ADDR sparc64_read_fp ();
extern void sparc64_write_sp (CORE_ADDR);
-extern void sparc64_write_fp (CORE_ADDR);
#define TARGET_READ_SP() (sparc64_read_sp ())
#define TARGET_READ_FP() (sparc64_read_fp ())
#define TARGET_WRITE_SP(X) (sparc64_write_sp (X))
-#define TARGET_WRITE_FP(X) (sparc64_write_fp (X))
#undef EXTRACT_RETURN_VALUE
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
diff --git a/gdb/config/v850/tm-v850.h b/gdb/config/v850/tm-v850.h
index 0636b98..6f1db5a 100644
--- a/gdb/config/v850/tm-v850.h
+++ b/gdb/config/v850/tm-v850.h
@@ -72,7 +72,6 @@ extern char **v850_register_names;
#define FP_RAW_REGNUM 29
#define TARGET_READ_FP() read_register (FP_RAW_REGNUM)
-#define TARGET_WRITE_FP(VAL) write_register (FP_REGNUM, (VAL))
#define REGISTER_VIRTUAL_TYPE(REG) builtin_type_int
diff --git a/gdb/d10v-tdep.c b/gdb/d10v-tdep.c
index bd35fc0..f2ee7d5 100644
--- a/gdb/d10v-tdep.c
+++ b/gdb/d10v-tdep.c
@@ -966,12 +966,6 @@ d10v_write_sp (CORE_ADDR val)
write_register (SP_REGNUM, d10v_convert_daddr_to_raw (val));
}
-static void
-d10v_write_fp (CORE_ADDR val)
-{
- write_register (FP_REGNUM, d10v_convert_daddr_to_raw (val));
-}
-
static CORE_ADDR
d10v_read_fp (void)
{
@@ -1477,7 +1471,6 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_read_pc (gdbarch, d10v_read_pc);
set_gdbarch_write_pc (gdbarch, d10v_write_pc);
set_gdbarch_read_fp (gdbarch, d10v_read_fp);
- set_gdbarch_write_fp (gdbarch, d10v_write_fp);
set_gdbarch_read_sp (gdbarch, d10v_read_sp);
set_gdbarch_write_sp (gdbarch, d10v_write_sp);
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 49230e5..f467ac9 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-05 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbint.texinfo (Target Architecture Definition): Delete
+ references to TARGET_WRITE_FP and write_fp.
+
2002-03-27 Michael Snyder <msnyder@redhat.com>
* gdb.texinfo: Document new commands dump, append, and restore.
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index c4c439d..ccf6e1a 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -2918,8 +2918,8 @@ Deprecated in favor of @code{PRINT_FLOAT_INFO}.
If the virtual frame pointer is kept in a register, then define this
macro to be the number (greater than or equal to zero) of that register.
-This should only need to be defined if @code{TARGET_READ_FP} and
-@code{TARGET_WRITE_FP} are not defined.
+This should only need to be defined if @code{TARGET_READ_FP} is not
+defined.
@item FRAMELESS_FUNCTION_INVOCATION(@var{fi})
@findex FRAMELESS_FUNCTION_INVOCATION
@@ -3547,18 +3547,15 @@ Number of bits in a short integer; defaults to @code{2 * TARGET_CHAR_BIT}.
@findex TARGET_WRITE_SP
@itemx TARGET_READ_FP
@findex TARGET_READ_FP
-@itemx TARGET_WRITE_FP
-@findex TARGET_WRITE_FP
@findex read_pc
@findex write_pc
@findex read_sp
@findex write_sp
@findex read_fp
-@findex write_fp
These change the behavior of @code{read_pc}, @code{write_pc},
-@code{read_sp}, @code{write_sp}, @code{read_fp} and @code{write_fp}.
-For most targets, these may be left undefined. @value{GDBN} will call the read
-and write register functions with the relevant @code{_REGNUM} argument.
+@code{read_sp}, @code{write_sp} and @code{read_fp}. For most targets,
+these may be left undefined. @value{GDBN} will call the read and write
+register functions with the relevant @code{_REGNUM} argument.
These macros are useful when a target keeps one of these registers in a
hard to get at place; for example, part in a segment register and part
diff --git a/gdb/dwarf2cfi.c b/gdb/dwarf2cfi.c
index 1324dc5..ffbeb5d 100644
--- a/gdb/dwarf2cfi.c
+++ b/gdb/dwarf2cfi.c
@@ -1506,7 +1506,8 @@ cfi_read_fp ()
return cfa;
}
-/* Store the frame address. */
+/* Store the frame address. This function is not used. */
+
void
cfi_write_fp (CORE_ADDR val)
{
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 9b51698..34ca091 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -141,7 +141,6 @@ struct gdbarch
gdbarch_read_pc_ftype *read_pc;
gdbarch_write_pc_ftype *write_pc;
gdbarch_read_fp_ftype *read_fp;
- gdbarch_write_fp_ftype *write_fp;
gdbarch_read_sp_ftype *read_sp;
gdbarch_write_sp_ftype *write_sp;
gdbarch_virtual_frame_pointer_ftype *virtual_frame_pointer;
@@ -309,7 +308,6 @@ struct gdbarch startup_gdbarch =
0,
0,
0,
- 0,
generic_register_raw_size,
0,
generic_register_virtual_size,
@@ -453,7 +451,6 @@ gdbarch_alloc (const struct gdbarch_info *info,
current_gdbarch->read_pc = generic_target_read_pc;
current_gdbarch->write_pc = generic_target_write_pc;
current_gdbarch->read_fp = generic_target_read_fp;
- current_gdbarch->write_fp = generic_target_write_fp;
current_gdbarch->read_sp = generic_target_read_sp;
current_gdbarch->write_sp = generic_target_write_sp;
current_gdbarch->virtual_frame_pointer = legacy_virtual_frame_pointer;
@@ -576,7 +573,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of read_pc, invalid_p == 0 */
/* Skip verify of write_pc, invalid_p == 0 */
/* Skip verify of read_fp, invalid_p == 0 */
- /* Skip verify of write_fp, invalid_p == 0 */
/* Skip verify of read_sp, invalid_p == 0 */
/* Skip verify of write_sp, invalid_p == 0 */
/* Skip verify of virtual_frame_pointer, invalid_p == 0 */
@@ -2089,20 +2085,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
(long) current_gdbarch->virtual_frame_pointer
/*TARGET_VIRTUAL_FRAME_POINTER ()*/);
#endif
-#ifdef TARGET_WRITE_FP
-#if GDB_MULTI_ARCH
- /* Macro might contain `[{}]' when not multi-arch */
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "TARGET_WRITE_FP(val)",
- XSTRING (TARGET_WRITE_FP (val)));
-#endif
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: TARGET_WRITE_FP = 0x%08lx\n",
- (long) current_gdbarch->write_fp
- /*TARGET_WRITE_FP ()*/);
-#endif
#ifdef TARGET_WRITE_PC
#if GDB_MULTI_ARCH
/* Macro might contain `[{}]' when not multi-arch */
@@ -2413,24 +2395,6 @@ set_gdbarch_read_fp (struct gdbarch *gdbarch,
gdbarch->read_fp = read_fp;
}
-void
-gdbarch_write_fp (struct gdbarch *gdbarch, CORE_ADDR val)
-{
- if (gdbarch->write_fp == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_write_fp invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_write_fp called\n");
- gdbarch->write_fp (val);
-}
-
-void
-set_gdbarch_write_fp (struct gdbarch *gdbarch,
- gdbarch_write_fp_ftype write_fp)
-{
- gdbarch->write_fp = write_fp;
-}
-
CORE_ADDR
gdbarch_read_sp (struct gdbarch *gdbarch)
{
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 81f5174..ed87fa0 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -358,23 +358,6 @@ extern void set_gdbarch_read_fp (struct gdbarch *gdbarch, gdbarch_read_fp_ftype
#endif
/* Default (function) for non- multi-arch platforms. */
-#if (!GDB_MULTI_ARCH) && !defined (TARGET_WRITE_FP)
-#define TARGET_WRITE_FP(val) (generic_target_write_fp (val))
-#endif
-
-typedef void (gdbarch_write_fp_ftype) (CORE_ADDR val);
-extern void gdbarch_write_fp (struct gdbarch *gdbarch, CORE_ADDR val);
-extern void set_gdbarch_write_fp (struct gdbarch *gdbarch, gdbarch_write_fp_ftype *write_fp);
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (TARGET_WRITE_FP)
-#error "Non multi-arch definition of TARGET_WRITE_FP"
-#endif
-#if GDB_MULTI_ARCH
-#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (TARGET_WRITE_FP)
-#define TARGET_WRITE_FP(val) (gdbarch_write_fp (current_gdbarch, val))
-#endif
-#endif
-
-/* Default (function) for non- multi-arch platforms. */
#if (!GDB_MULTI_ARCH) && !defined (TARGET_READ_SP)
#define TARGET_READ_SP() (generic_target_read_sp ())
#endif
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index ef69e8e..46c44b7 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -415,7 +415,6 @@ v::TARGET_CHAR_SIGNED:int:char_signed::::1:-1:1::::
f::TARGET_READ_PC:CORE_ADDR:read_pc:ptid_t ptid:ptid::0:generic_target_read_pc::0
f::TARGET_WRITE_PC:void:write_pc:CORE_ADDR val, ptid_t ptid:val, ptid::0:generic_target_write_pc::0
f::TARGET_READ_FP:CORE_ADDR:read_fp:void:::0:generic_target_read_fp::0
-f::TARGET_WRITE_FP:void:write_fp:CORE_ADDR val:val::0:generic_target_write_fp::0
f::TARGET_READ_SP:CORE_ADDR:read_sp:void:::0:generic_target_read_sp::0
f::TARGET_WRITE_SP:void:write_sp:CORE_ADDR val:val::0:generic_target_write_sp::0
# Function for getting target's idea of a frame pointer. FIXME: GDB's
diff --git a/gdb/h8500-tdep.c b/gdb/h8500-tdep.c
index d303246..01869bb 100644
--- a/gdb/h8500-tdep.c
+++ b/gdb/h8500-tdep.c
@@ -604,12 +604,6 @@ h8500_read_fp (void)
}
void
-h8500_write_fp (CORE_ADDR v)
-{
- write_register (PR6_REGNUM, v);
-}
-
-void
_initialize_h8500_tdep (void)
{
tm_print_insn = print_insn_h8500;
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index db8e5b9..18cd6ff 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -667,10 +667,9 @@ rse_address_add(CORE_ADDR addr, int nslots)
even really hard to compute the frame chain, but it can be
computationally expensive. So, instead of making life difficult
(and slow), we pick a more convenient representation of the frame
- chain, knowing that we'll have to make some small adjustments
- in other places. (E.g, note that read_fp() and write_fp() are
- actually read_sp() and write_sp() below in ia64_gdbarch_init()
- below.)
+ chain, knowing that we'll have to make some small adjustments in
+ other places. (E.g, note that read_fp() is actually read_sp() in
+ ia64_gdbarch_init() below.)
Okay, so what is the frame chain exactly? It'll be the SP value
at the time that the function in question was entered.
@@ -2204,7 +2203,6 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
is all read_fp() is used for), simply use the stack pointer value
instead. */
set_gdbarch_read_fp (gdbarch, generic_target_read_sp);
- set_gdbarch_write_fp (gdbarch, generic_target_write_sp);
/* Settings that should be unnecessary. */
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 93c8d9b..3a8161c 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -177,10 +177,6 @@ extern CORE_ADDR read_fp (void);
extern CORE_ADDR generic_target_read_fp (void);
-extern void write_fp (CORE_ADDR);
-
-extern void generic_target_write_fp (CORE_ADDR);
-
extern CORE_ADDR unsigned_pointer_to_address (struct type *type, void *buf);
extern void unsigned_address_to_pointer (struct type *type, void *buf,
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index 630accf..4e73fcf 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -1087,7 +1087,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
set_gdbarch_read_pc (gdbarch, generic_target_read_pc);
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
set_gdbarch_read_fp (gdbarch, generic_target_read_fp);
- set_gdbarch_write_fp (gdbarch, generic_target_write_fp);
set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 55abc53..c3fa252 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -4361,7 +4361,6 @@ mips_gdbarch_init (struct gdbarch_info info,
set_gdbarch_read_pc (gdbarch, mips_read_pc);
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
set_gdbarch_read_fp (gdbarch, generic_target_read_fp);
- set_gdbarch_write_fp (gdbarch, generic_target_write_fp);
set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 3c2737c..8c1a0aa 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -585,16 +585,16 @@ regcache_collect (int regnum, void *buf)
}
-/* read_pc, write_pc, read_sp, write_sp, read_fp, write_fp, etc.
- Special handling for registers PC, SP, and FP. */
+/* read_pc, write_pc, read_sp, write_sp, read_fp, etc. Special
+ handling for registers PC, SP, and FP. */
/* NOTE: cagney/2001-02-18: The functions generic_target_read_pc(),
read_pc_pid(), read_pc(), generic_target_write_pc(),
write_pc_pid(), write_pc(), generic_target_read_sp(), read_sp(),
- generic_target_write_sp(), write_sp(), generic_target_read_fp(),
- read_fp(), generic_target_write_fp(), write_fp will eventually be
- moved out of the reg-cache into either frame.[hc] or to the
- multi-arch framework. The are not part of the raw register cache. */
+ generic_target_write_sp(), write_sp(), generic_target_read_fp() and
+ read_fp(), will eventually be moved out of the reg-cache into
+ either frame.[hc] or to the multi-arch framework. The are not part
+ of the raw register cache. */
/* This routine is getting awfully cluttered with #if's. It's probably
time to turn this into READ_PC and define it in the tm.h file.
@@ -738,26 +738,6 @@ read_fp (void)
return TARGET_READ_FP ();
}
-void
-generic_target_write_fp (CORE_ADDR val)
-{
-#ifdef FP_REGNUM
- if (FP_REGNUM >= 0)
- {
- write_register (FP_REGNUM, val);
- return;
- }
-#endif
- internal_error (__FILE__, __LINE__,
- "generic_target_write_fp");
-}
-
-void
-write_fp (CORE_ADDR val)
-{
- TARGET_WRITE_FP (val);
-}
-
/* ARGSUSED */
static void
reg_flush_command (char *command, int from_tty)
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index b541c23..35da499 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -2592,7 +2592,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_read_pc (gdbarch, generic_target_read_pc);
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
set_gdbarch_read_fp (gdbarch, generic_target_read_fp);
- set_gdbarch_write_fp (gdbarch, generic_target_write_fp);
set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 3f02e2a..158ef26 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -1212,13 +1212,6 @@ s390_read_fp ()
}
-void
-s390_write_fp (CORE_ADDR val)
-{
- write_register (s390_fp_regnum (), val);
-}
-
-
static void
s390_pop_frame_regular (struct frame_info *frame)
{
@@ -1801,7 +1794,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_init_extra_frame_info (gdbarch, s390_init_extra_frame_info);
set_gdbarch_init_frame_pc_first (gdbarch, s390_init_frame_pc_first);
set_gdbarch_read_fp (gdbarch, s390_read_fp);
- set_gdbarch_write_fp (gdbarch, s390_write_fp);
/* This function that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index f5d123b..9e03918 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -2119,7 +2119,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_read_pc (gdbarch, generic_target_read_pc);
set_gdbarch_write_pc (gdbarch, generic_target_write_pc);
set_gdbarch_read_fp (gdbarch, generic_target_read_fp);
- set_gdbarch_write_fp (gdbarch, generic_target_write_fp);
set_gdbarch_read_sp (gdbarch, generic_target_read_sp);
set_gdbarch_write_sp (gdbarch, generic_target_write_sp);
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c
index 0c4f2ac..cbca04e 100644
--- a/gdb/x86-64-tdep.c
+++ b/gdb/x86-64-tdep.c
@@ -960,7 +960,6 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_fp0_regnum (gdbarch, X86_64_NUM_GREGS); /* First FPU floating-point register. */
set_gdbarch_read_fp (gdbarch, cfi_read_fp);
- set_gdbarch_write_fp (gdbarch, cfi_write_fp);
/* Discard from the stack the innermost frame, restoring all registers. */
set_gdbarch_pop_frame (gdbarch, x86_64_pop_frame);