- To: ac131313 at cygnus dot com
- Subject: FLOAT INFO QUESTION
- From: Takis Psarogiannakopoulos <takis at XFree86 dot Org>
- Date: Thu, 22 Jun 2000 07:07:21 -0700 (PDT)
Can you please forward this to the gdb list ?
It keeps sending it back. XFREE86 is a junk mail
server?
Thanks very much,
Takis
PS: Remove the above comment ...
---------- Forwarded message ----------
Date: Thu, 22 Jun 2000 06:47:32 -0700 (PDT)
From: takis@xfree86.org
To: gdb@sourceware.cygnus.com
Subject: FLOAT INFO QUESTION
Hello,
I had a look in the new float info routines
of gdb 5.0 and I am a little confused. If you look
in <linux/processor.h> you will find that the 387
structure is like
cwd (fctrl)
swd (fstat)
twd (ftag)
fip
fcs
foo
80 bytes = 8*10
status
Now in the operating system that I run (aka DG/UX unix)
and want to do a port of 5.0, I find the structure:
struct fpregset {
union{
struct fpchip_state fpchip_state;
emulation struct
int f_fpreg[62];
}
long f_wregs[33]; /* weitek */
}
Where: struct fpchip_state {
int state[27];
int status;
}
So the first member reserves 108 bytes = 7 4 bytes fpregs + 8 *10.
Tah agrees with the linux idea.
Now in GDB-5.0 we find in tm-i386.h a new layout as
fctrl, fstat, ftag, fiseg, fioff, foseg, fooff, fop
Which is clearly different from the struct of linux. Basically
if I want to unpack fpchip_state above to floating regs I dont know
if the order is fctrl, fstat, ftag , fiseg(=fcs), fioff(=?) , ????
or (what I always thought is)
fctrl,fstat,ftag,fip,fcs,fopoff,fopsel,status
And in this new layout in tm-i386.h which one is the status? I
clearly have 108 bytes so how I would obtain the fop
mentioned in tm-i386.h?
Regards,
T.