+2000-03-02 Mark Kettenis <kettenis@gnu.org>
+
+ * config/i386/tm-i386aix.h (NUM_FPREGS, NUM_REGS, REGISTER_BYTES):
+ Override definitions to include the normal FPU registers.
+ (REGISTER_CONVERTIBLE, REGISTER_CONVERT_TO_VIRTUAL,
+ REGISTER_CONVERT_TO_RAW): Removed. The default definitions are
+ fine for AIX/i386.
+ (i387_to_double, double_to_i387): Remove prototypes.
+
2000-03-02 Kevin Buettner <kevinb@redhat.com>
* findvar.c (extract_floating, store_floating): Use target
/* Macro defintions for IBM AIX PS/2 (i386).
- Copyright 1986, 1987, 1989, 1992, 1993 Free Software Foundation, Inc.
+ Copyright 1986, 1987, 1989, 1992, 1993, 2000 Free Software Foundation, Inc.
This file is part of GDB.
#ifndef I386
#define I386 1
#endif
+
+/* FIXME: kettenis/2000-03-02: This is used in
+ i386-tdep.c:i386_extract_return_value(), and will be remove once
+ I've fixed that. Meanwhile don't use it for any other purpose
+ please! */
#ifndef I386_AIX_TARGET
#define I386_AIX_TARGET 1
#endif
-/* Nonzero if register N requires conversion
- from raw format to virtual format. */
-
-#undef REGISTER_CONVERTIBLE
-#define REGISTER_CONVERTIBLE(N) \
- ((N < FP0_REGNUM) ? 0 : 1)
-
-/* Convert data from raw format for register REGNUM in buffer FROM
- to virtual format with type TYPE in buffer TO. */
+/* AIX/i386 has FPU support. However, the native configuration (which
+ is the only supported configuration) doesn't make the FPU control
+ registers available. Override the appropriate symbols such that
+ only the normal FPU registers are included in GDB's register array. */
-#undef REGISTER_CONVERT_TO_VIRTUAL
-#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
-{ \
- double val; \
- i387_to_double ((FROM), (char *)&val); \
- store_floating ((TO), TYPE_LENGTH (TYPE), val); \
-}
-extern void
-i387_to_double PARAMS ((char *, char *));
+#undef NUM_FPREGS
+#define NUM_FPREGS (8)
-/* Convert data from virtual format with type TYPE in buffer FROM
- to raw format for register REGNUM in buffer TO. */
+#undef NUM_REGS
+#define NUM_REGS (NUM_GREGS + NUM_FPREGS)
-#undef REGISTER_CONVERT_TO_RAW
-#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
-{ \
- double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
- double_to_i387((char *)&val, (TO)); \
-}
-extern void
-double_to_i387 PARAMS ((char *, char *));
+#undef REGISTER_BYTES
+#define REGISTER_BYTES (SIZEOF_GREGS + SIZEOF_FPU_REGS)
#endif /* TM_I386AIX_H */