diff options
Diffstat (limited to 'gdb/i387-tdep.c')
-rw-r--r-- | gdb/i387-tdep.c | 106 |
1 files changed, 1 insertions, 105 deletions
diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c index c6a2d5d..c284207 100644 --- a/gdb/i387-tdep.c +++ b/gdb/i387-tdep.c @@ -33,112 +33,8 @@ #include "doublest.h" #include "i386-tdep.h" +#include "i387-tdep.h" - -/* FIXME: The functions on this page are used by the old `info float' - implementations that a few of the i386 targets provide. These - functions should be removed if all of these have been converted to - use the generic implementation based on the new register file - layout. */ - -static void print_387_control_bits (unsigned int control); -static void print_387_status_bits (unsigned int status); - -static void -print_387_control_bits (unsigned int control) -{ - switch ((control >> 8) & 3) - { - case 0: - puts_unfiltered (" 24 bit; "); - break; - case 1: - puts_unfiltered (" (bad); "); - break; - case 2: - puts_unfiltered (" 53 bit; "); - break; - case 3: - puts_unfiltered (" 64 bit; "); - break; - } - switch ((control >> 10) & 3) - { - case 0: - puts_unfiltered ("NEAR; "); - break; - case 1: - puts_unfiltered ("DOWN; "); - break; - case 2: - puts_unfiltered ("UP; "); - break; - case 3: - puts_unfiltered ("CHOP; "); - break; - } - if (control & 0x3f) - { - puts_unfiltered ("mask"); - if (control & 0x0001) - puts_unfiltered (" INVAL"); - if (control & 0x0002) - puts_unfiltered (" DENOR"); - if (control & 0x0004) - puts_unfiltered (" DIVZ"); - if (control & 0x0008) - puts_unfiltered (" OVERF"); - if (control & 0x0010) - puts_unfiltered (" UNDER"); - if (control & 0x0020) - puts_unfiltered (" LOS"); - puts_unfiltered (";"); - } - - if (control & 0xe080) - warning ("\nreserved bits on: %s", - local_hex_string (control & 0xe080)); -} - -void -print_387_control_word (unsigned int control) -{ - printf_filtered ("control %s:", local_hex_string(control & 0xffff)); - print_387_control_bits (control); - puts_unfiltered ("\n"); -} - -static void -print_387_status_bits (unsigned int status) -{ - printf_unfiltered (" flags %d%d%d%d; ", - (status & 0x4000) != 0, - (status & 0x0400) != 0, - (status & 0x0200) != 0, - (status & 0x0100) != 0); - printf_unfiltered ("top %d; ", (status >> 11) & 7); - if (status & 0xff) - { - puts_unfiltered ("excep"); - if (status & 0x0001) puts_unfiltered (" INVAL"); - if (status & 0x0002) puts_unfiltered (" DENOR"); - if (status & 0x0004) puts_unfiltered (" DIVZ"); - if (status & 0x0008) puts_unfiltered (" OVERF"); - if (status & 0x0010) puts_unfiltered (" UNDER"); - if (status & 0x0020) puts_unfiltered (" LOS"); - if (status & 0x0040) puts_unfiltered (" STACK"); - } -} - -void -print_387_status_word (unsigned int status) -{ - printf_filtered ("status %s:", local_hex_string (status & 0xffff)); - print_387_status_bits (status); - puts_unfiltered ("\n"); -} - - /* Implement the `info float' layout based on the register definitions in `tm-i386.h'. */ |