Mail Archives: djgpp-workers/1999/06/17/03:36:46
These changes make some minor improvements in the way float info is
displayed by GDB.
*** gdb/go32-nat.c~9 Sat Jun 12 12:16:54 1999
--- gdb/go32-nat.c Wed Jun 16 22:42:26 1999
*************** print_387_status (unsigned short status,
*** 224,231 ****
}
print_387_control_word (ep->control & 0xffff);
! printf_unfiltered ("last exception: ");
! printf_unfiltered ("opcode %s; ", local_hex_string (ep->opcode));
printf_unfiltered ("pc %s:", local_hex_string (ep->code_seg));
printf_unfiltered ("%s; ", local_hex_string (ep->eip));
printf_unfiltered ("operand %s", local_hex_string (ep->operand_seg));
--- 224,237 ----
}
print_387_control_word (ep->control & 0xffff);
! /* Other platforms say "last exception", but that's not true: the
! FPU stores the last non-control instruction there. */
! printf_unfiltered ("last FP instruction: ");
! /* The ORing with D800h restores the upper 5 bits of the opcode that
! are not stored by the FPU (since these bits are the same for all
! floating-point instructions). */
! printf_unfiltered ("opcode %s; ",
! local_hex_string (ep->opcode ? (ep->opcode|0xd800) : 0));
printf_unfiltered ("pc %s:", local_hex_string (ep->code_seg));
printf_unfiltered ("%s; ", local_hex_string (ep->eip));
printf_unfiltered ("operand %s", local_hex_string (ep->operand_seg));
*************** print_387_status (unsigned short status,
*** 270,276 ****
REGISTER_CONVERT_TO_VIRTUAL (FP0_REGNUM+regno, builtin_type_long_double,
&ep->regs[regno], &val);
! printf_unfiltered (" %LG\n", val);
}
}
--- 276,282 ----
REGISTER_CONVERT_TO_VIRTUAL (FP0_REGNUM+regno, builtin_type_long_double,
&ep->regs[regno], &val);
! printf_unfiltered (" %.19LG\n", val);
}
}
*** gdb/i387-tdep.c~0 Fri Oct 16 21:45:04 1998
--- gdb/i387-tdep.c Wed Jun 16 22:20:34 1999
*************** void
*** 88,97 ****
print_387_status_word (status)
unsigned int status;
{
! printf_unfiltered ("status %s: ", local_hex_string (status));
if (status & 0xff)
{
! printf_unfiltered ("exceptions:");
if (status & 0x0001) printf_unfiltered (" INVALID");
if (status & 0x0002) printf_unfiltered (" DENORM");
if (status & 0x0004) printf_unfiltered (" DIVZ");
--- 88,97 ----
print_387_status_word (status)
unsigned int status;
{
! printf_unfiltered ("status %s", local_hex_string (status));
if (status & 0xff)
{
! printf_unfiltered (": exceptions:");
if (status & 0x0001) printf_unfiltered (" INVALID");
if (status & 0x0002) printf_unfiltered (" DENORM");
if (status & 0x0004) printf_unfiltered (" DIVZ");
*************** print_387_status_word (status)
*** 99,106 ****
if (status & 0x0010) printf_unfiltered (" UNDERF");
if (status & 0x0020) printf_unfiltered (" LOS");
if (status & 0x0040) printf_unfiltered (" FPSTACK");
- printf_unfiltered ("; ");
}
printf_unfiltered ("flags: %d%d%d%d; ",
(status & 0x4000) != 0,
(status & 0x0400) != 0,
--- 99,106 ----
if (status & 0x0010) printf_unfiltered (" UNDERF");
if (status & 0x0020) printf_unfiltered (" LOS");
if (status & 0x0040) printf_unfiltered (" FPSTACK");
}
+ printf_unfiltered ("; ");
printf_unfiltered ("flags: %d%d%d%d; ",
(status & 0x4000) != 0,
(status & 0x0400) != 0,
- Raw text -