This is the mail archive of the gdb@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: x86 FPU support: "info float" and `long double'


>>>>> "Mark" == Mark Kettenis <kettenis@wins.uva.nl> writes:
Mark> Anyway, the output looks like:

Mark> status 0x3800: flags 0000; top 7;
Mark> control 0x37f: 64 bit; NEAR; mask INVAL DENOR DIVZ OVERF UNDER LOS;
Mark> last FP instruction: opcode 0xdd05; pc 0x23:0x8048495; operand 0x2b:0x8048f04
Mark> regno tag     msb              lsb  value
Mark> => 7: valid   4000c90fdaa22168c000  3.141592653589793116
Mark>    6: empty   3ff7d100000000000000  0.006378173828125
Mark>    5: empty   40098000000000000000  1024
Mark>    4: empty   3fff8000000000000000  1
Mark>    3: empty   3fff8000000000000000  1
Mark>    2: empty   3ffb9d8909ff2e48e8c0  0.076921537494659423997
Mark>    1: empty   3ffbdaf3e93361992eb3  0.10691053569844352396
Mark>    0: empty   00000000000000000000  0

Mark> Suggestions for improvement are welcome!

The CAD-UL XDB386 front end we have for our emulator has the following
output (this example is from the user's manual, it's not connected to
a system with a FPU at the moment):

ST0     <zero>                  <valid>
ST1     1e+00                   <valid>
ST2     1e+02                   <valid>
ST3     1e+03                   <valid>
ST4     1e+04                   <valid>
ST5     1e+05                   <valid>
ST6     1e+06                   <valid>
ST7     1e+07                   <valid>
FIP     0x000000000000          sel = GDT(0) rpl = 0  off=0x00000000
FDP     0x000000000000          sel = GDT(0) rpl = 0  off=0x00000000
FSW     0x0000                  by/c3 c2 c1 c0/T0/es/sf/pe/sf/pe/ue/oe/ze/de/ie
FCW     0x037f                  i/NE/EP/PM/UM/OM/ZM/DM/IM
FTW     0x0000                  0:VA/1:VA/2:VA/3:VA/4:VA/5:VA/6:VA/7:VA

I'm not suggesting that it be used, but it does have some aspects that
I prefer over your proposed output:

* A column-oriented format is used for all fields.  I especially find
  it difficult to determine the value of the control and status words.
  A little white space makes all the difference.

* The exeception bits are listed for both the mask in the control word
  and the sticky bits in the status word.

* The values of the registers are output before the tag.  For the most
  part, the value is more important that the tag.

* Personal preference, but I don't think the column header is useful
  or necessary.

        --jtc

-- 
J.T. Conklin
RedBack Networks

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]