Index: arch-utils.c =================================================================== RCS file: /cvs/src/src/gdb/arch-utils.c,v retrieving revision 1.50 diff -p -r1.50 arch-utils.c *** arch-utils.c 2002/02/06 01:20:22 1.50 --- arch-utils.c 2002/02/06 11:39:37 *************** default_double_format (struct gdbarch *g *** 225,230 **** --- 225,243 ---- } } + void + default_print_float_info (void) + { + #ifdef FLOAT_INFO + #if GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL + #error "FLOAT_INFO defined in multi-arch" + #endif + FLOAT_INFO; + #else + printf_filtered ("No floating point info available for this processor.\n"); + #endif + } + /* Misc helper functions for targets. */ int Index: arch-utils.h =================================================================== RCS file: /cvs/src/src/gdb/arch-utils.h,v retrieving revision 1.28 diff -p -r1.28 arch-utils.h *** arch-utils.h 2002/02/06 01:20:22 1.28 --- arch-utils.h 2002/02/06 11:39:37 *************** extern int generic_in_solib_call_trampol *** 146,151 **** --- 146,153 ---- extern int generic_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc); + extern void default_print_float_info (void); + /* Assume all registers are the same size and a size identical to that of the integer type. */ extern int generic_register_raw_size (int regnum); Index: arm-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/arm-tdep.c,v retrieving revision 1.33 diff -p -r1.33 arm-tdep.c *** arm-tdep.c 2002/02/05 04:37:21 1.33 --- arm-tdep.c 2002/02/06 11:39:37 *************** print_fpu_flags (int flags) *** 1559,1566 **** putchar ('\n'); } void ! arm_float_info (void) { register unsigned long status = read_register (FPS_REGNUM); int type; --- 1559,1568 ---- putchar ('\n'); } + /* Print interesting information about the floating point processor + (if present) or emulator. */ void ! arm_print_float_info (void) { register unsigned long status = read_register (FPS_REGNUM); int type; Index: gdbarch.sh =================================================================== RCS file: /cvs/src/src/gdb/gdbarch.sh,v retrieving revision 1.107 diff -p -r1.107 gdbarch.sh *** gdbarch.sh 2002/02/06 01:20:23 1.107 --- gdbarch.sh 2002/02/06 11:39:37 *************** f:2:REGISTER_VIRTUAL_SIZE:int:register_v *** 450,455 **** --- 450,456 ---- v:2:MAX_REGISTER_VIRTUAL_SIZE:int:max_register_virtual_size::::0:-1 f:2:REGISTER_VIRTUAL_TYPE:struct type *:register_virtual_type:int reg_nr:reg_nr::0:0 f:2:DO_REGISTERS_INFO:void:do_registers_info:int reg_nr, int fpregs:reg_nr, fpregs:::do_registers_info::0 + f:2:PRINT_FLOAT_INFO:void:print_float_info:void::::default_print_float_info::0 # MAP a GDB RAW register number onto a simulator register number. See # also include/...-sim.h. f:2:REGISTER_SIM_REGNO:int:register_sim_regno:int reg_nr:reg_nr:::default_register_sim_regno::0 Index: infcmd.c =================================================================== RCS file: /cvs/src/src/gdb/infcmd.c,v retrieving revision 1.40 diff -p -r1.40 infcmd.c *** infcmd.c 2002/02/05 04:37:21 1.40 --- infcmd.c 2002/02/06 11:39:42 *************** interrupt_target_command (char *args, in *** 1846,1856 **** static void float_info (char *addr_exp, int from_tty) { ! #ifdef FLOAT_INFO ! FLOAT_INFO; ! #else ! printf_filtered ("No floating point info available for this processor.\n"); ! #endif } /* ARGSUSED */ --- 1846,1852 ---- static void float_info (char *addr_exp, int from_tty) { ! PRINT_FLOAT_INFO (); } /* ARGSUSED */ Index: config/arm/tm-arm.h =================================================================== RCS file: /cvs/src/src/gdb/config/arm/tm-arm.h,v retrieving revision 1.21 diff -p -r1.21 tm-arm.h *** tm-arm.h 2002/02/04 11:55:36 1.21 --- tm-arm.h 2002/02/06 11:39:42 *************** extern breakpoint_from_pc_fn arm_breakpo *** 120,131 **** #define DECR_PC_AFTER_BREAK 0 ! /* Code to execute to print interesting information about the floating ! point processor (if any) or emulator. No need to define if there ! is nothing to do. */ ! extern void arm_float_info (void); ! ! #define FLOAT_INFO { arm_float_info (); } /* Say how long (ordinary) registers are. This is a piece of bogosity used in push_word and a few other places; REGISTER_RAW_SIZE is the --- 120,127 ---- #define DECR_PC_AFTER_BREAK 0 ! void arm_print_float_info (void); ! #define PRINT_FLOAT_INFO() arm_print_float_info () /* Say how long (ordinary) registers are. This is a piece of bogosity used in push_word and a few other places; REGISTER_RAW_SIZE is the Index: config/m68k/nm-apollo68b.h =================================================================== RCS file: /cvs/src/src/gdb/config/m68k/nm-apollo68b.h,v retrieving revision 1.2 diff -p -r1.2 nm-apollo68b.h *** nm-apollo68b.h 2001/03/06 08:21:30 1.2 --- nm-apollo68b.h 2002/02/06 11:39:42 *************** *** 30,37 **** #define KERNEL_U_ADDR 0 - #undef FLOAT_INFO /* No float info yet */ - #define REGISTER_U_ADDR(addr, blockend, regno) \ (addr) = (6 + 4 * (regno)) --- 30,35 ---- Index: config/ns32k/nm-nbsd.h =================================================================== RCS file: /cvs/src/src/gdb/config/ns32k/nm-nbsd.h,v retrieving revision 1.3 diff -p -r1.3 nm-nbsd.h *** nm-nbsd.h 2001/03/06 08:21:33 1.3 --- nm-nbsd.h 2002/02/06 11:39:42 *************** *** 26,32 **** #include "nm-nbsd.h" #if 0 ! #define FLOAT_INFO { extern ns32k_float_info(); ns32k_float_info(); } #endif #define REGISTER_U_ADDR(addr, blockend, regno) \ --- 26,33 ---- #include "nm-nbsd.h" #if 0 ! extern ns32k_float_info() ! #define FLOAT_INFO() ns32k_float_info () #endif #define REGISTER_U_ADDR(addr, blockend, regno) \ Index: doc/gdbint.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdbint.texinfo,v retrieving revision 1.63 diff -p -r1.63 gdbint.texinfo *** gdbint.texinfo 2002/01/29 16:32:02 1.63 --- gdbint.texinfo 2002/02/06 11:39:45 *************** library in which breakpoints cannot be s *** 2864,2869 **** --- 2864,2874 ---- @findex DO_REGISTERS_INFO If defined, use this to print the value of a register or all registers. + @item PRINT_FLOAT_INFO() + #findex PRINT_FLOAT_INFO + If defined, then the @samp{info float} command will print information about + the processor's floating point unit. + @item DWARF_REG_TO_REGNUM @findex DWARF_REG_TO_REGNUM Convert DWARF register number into @value{GDBN} regnum. If not defined, *************** Predicate for @code{EXTRACT_STRUCT_VALUE *** 2904,2911 **** @item FLOAT_INFO @findex FLOAT_INFO ! If defined, then the @samp{info float} command will print information about ! the processor's floating point unit. @item FP_REGNUM @findex FP_REGNUM --- 2909,2915 ---- @item FLOAT_INFO @findex FLOAT_INFO ! Deprecated in favor of @code{PRINT_FLOAT_INFO}. @item FP_REGNUM @findex FP_REGNUM