aboutsummaryrefslogtreecommitdiff
path: root/gdb/i387-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/i387-tdep.c')
-rw-r--r--gdb/i387-tdep.c139
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)