From: Mark Kettenis Date: Thu, 2 Mar 2000 15:44:27 +0000 (+0000) Subject: Attempt to fix AIX/i386 target. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=667620fa2734b3cadc8fa902caa1701fe2967197;p=binutils-gdb.git Attempt to fix AIX/i386 target. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0d84277a2ff..5f4d91a296f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2000-03-02 Mark Kettenis + + * 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 * findvar.c (extract_floating, store_floating): Use target diff --git a/gdb/config/i386/tm-i386aix.h b/gdb/config/i386/tm-i386aix.h index c309bdc2819..6fed83dc0f2 100644 --- a/gdb/config/i386/tm-i386aix.h +++ b/gdb/config/i386/tm-i386aix.h @@ -1,5 +1,5 @@ /* 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. @@ -29,40 +29,27 @@ #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 */