diff options
Diffstat (limited to 'gdb/i387-tdep.c')
-rw-r--r-- | gdb/i387-tdep.c | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c index a8fdba7..aac013c 100644 --- a/gdb/i387-tdep.c +++ b/gdb/i387-tdep.c @@ -149,145 +149,6 @@ print_387_status_word (status) puts_unfiltered ("\n"); } -void -i387_print_register (raw_regs, regnum) - char *raw_regs; - int regnum; -{ - unsigned char virtual_buffer[MAX_REGISTER_VIRTUAL_SIZE]; - unsigned long val; - int j, sign, special; - unsigned swd, tags, expon, top, norm, ls, ms; - char string[12]; - -#if (FPREG_RAW_SIZE != 10) -#error "Bad FPREG_RAW_SIZE" -#endif - - printf_filtered ("%8.8s: ", REGISTER_NAME (regnum)); - if (regnum < FPDATA_REGNUM) - { - val = extract_unsigned_integer (raw_regs + REGISTER_BYTE (regnum), 4); - if ( (regnum < FPSTART_REGNUM + 3) || - (regnum == FPSTART_REGNUM + 6) ) - /* Don't print the un-modifiable bytes. */ - sprintf(string, "0x%04x", val & 0xffff); - else - sprintf(string, "0x%08x", val); - - printf_unfiltered ("%10.10s", string); - - if (regnum == FPCONTROL_REGNUM) - print_387_control_bits (val); - else if (regnum == FPSTATUS_REGNUM) - print_387_status_bits (val); - } - else - { - /* An FPU stack register. */ - if ( REGISTER_RAW_SIZE (regnum) != FPREG_RAW_SIZE ) - error ("GDB bug: i387-tdep.c (i387_print_register): wrong size for FPU stack register"); - - /* Put the data in the buffer. No conversions are ever necessary. */ - memcpy (virtual_buffer, raw_regs + REGISTER_BYTE (regnum), - FPREG_RAW_SIZE); - - swd = extract_signed_integer (raw_regs + REGISTER_BYTE (FPSTATUS_REGNUM), - 4); - top = (swd >> 11) & 7; - tags = extract_signed_integer (raw_regs + REGISTER_BYTE (FPTAG_REGNUM), - 4); - - puts_unfiltered ("0x"); - for (j = 0; j < FPREG_RAW_SIZE; j++) - printf_unfiltered ("%02x", - (unsigned char)raw_regs[REGISTER_BYTE (regnum) - + FPREG_RAW_SIZE - 1 - j]); - - puts_unfiltered (" "); - special = 0; - switch ((tags >> (((regnum - FPDATA_REGNUM + top) & 7) * 2)) & 3) - { - case 0: puts_unfiltered ("Valid "); break; - case 1: puts_unfiltered ("Zero "); break; - case 2: puts_unfiltered ("Spec "); - special = 1; - break; - case 3: puts_unfiltered ("Empty "); break; - } - - expon = extract_unsigned_integer (raw_regs + REGISTER_BYTE (regnum) - + FPREG_RAW_SIZE - 2, 2); - sign = expon & 0x8000; - expon &= 0x7fff; - ms = extract_unsigned_integer (raw_regs + REGISTER_BYTE (regnum) + 4, 4); - ls = extract_signed_integer (raw_regs + REGISTER_BYTE (regnum), 4); - norm = ms & 0x80000000; - - if ( expon == 0 ) - { - if ( ms | ls ) - { - /* Denormal or Pseudodenormal. */ - if ( norm ) - puts_unfiltered ("Pseudo "); - else - puts_unfiltered ("Denorm "); - } - else - { - /* Zero. */ - puts_unfiltered ("Zero "); - } - } - else if ( expon == 0x7fff ) - { - /* Infinity, NaN or unsupported. */ - if ( (ms == 0x80000000) && - (ls == 0) ) - { - puts_unfiltered ("Infty "); - } - else if ( norm ) - { - if ( ms & 0x40000000 ) - puts_unfiltered ("QNaN "); - else - puts_unfiltered ("SNaN "); - } - else - { - puts_unfiltered ("Unsupp "); - } - } - else - { - /* Normal or unsupported. */ - if ( norm ) - puts_unfiltered ("Normal "); - else - puts_unfiltered ("Unsupp "); - } - - val_print (REGISTER_VIRTUAL_TYPE (regnum), virtual_buffer, 0, 0, - gdb_stdout, 0, - 1, 0, Val_pretty_default); - } - puts_filtered ("\n"); -} - -void i387_float_info(void) -{ - char raw_regs [REGISTER_BYTES]; - int i; - - for (i = FPSTART_REGNUM; i <= FPEND_REGNUM; i++) - read_relative_register_raw_bytes (i, raw_regs + REGISTER_BYTE (i)); - - for (i = FPSTART_REGNUM; i <= FPEND_REGNUM; i++) - i387_print_register (raw_regs, i); -} - #ifdef LD_I387 int i387_extract_floating (PTR addr, int len, DOUBLEST *dretptr) |