This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
Re: x86 FPU support: "info float" and `long double'
- To: Mark Kettenis <kettenis at wins dot uva dot nl>
- Subject: Re: x86 FPU support: "info float" and `long double'
- From: jtc at redback dot com (J.T. Conklin)
- Date: 21 Oct 1999 11:26:02 -0700
- Cc: gdb at sourceware dot cygnus dot com, gdb-patches at sourceware dot cygnus dot com
- References: <199910211634.SAA03952@delius.kettenis.local>
- Reply-To: jtc at redback dot com
>>>>> "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