projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Phase 1 of the ptid_t changes.
[deliverable/binutils-gdb.git]
/
gdb
/
i387-nat.c
diff --git
a/gdb/i387-nat.c
b/gdb/i387-nat.c
index f22b4078c2104cadd6611b44de50c705124f8611..5cb1a04c694ec547e3ce92d1887325203e3248aa 100644
(file)
--- a/
gdb/i387-nat.c
+++ b/
gdb/i387-nat.c
@@
-210,17
+210,19
@@
i387_supply_fxsave (char *fxsave)
int top;
fstat = *(unsigned short *) (FXSAVE_ADDR (fxsave, FSTAT_REGNUM));
int top;
fstat = *(unsigned short *) (FXSAVE_ADDR (fxsave, FSTAT_REGNUM));
- top = ((fstat >> 11) & 0x
111
);
+ top = ((fstat >> 11) & 0x
7
);
for (fpreg = 7; fpreg >= 0; fpreg--)
{
for (fpreg = 7; fpreg >= 0; fpreg--)
{
- int tag
= 0x11
;
+ int tag;
if (val & (1 << fpreg))
{
int regnum = (fpreg + 8 - top) % 8 + FP0_REGNUM;
tag = i387_tag (FXSAVE_ADDR (fxsave, regnum));
}
if (val & (1 << fpreg))
{
int regnum = (fpreg + 8 - top) % 8 + FP0_REGNUM;
tag = i387_tag (FXSAVE_ADDR (fxsave, regnum));
}
+ else
+ tag = 3; /* Empty */
ftag |= tag << (2 * fpreg);
}
ftag |= tag << (2 * fpreg);
}
@@
-275,10
+277,10
@@
i387_fill_fxsave (char *fxsave, int regnum)
for (fpreg = 7; fpreg >= 0; fpreg--)
{
for (fpreg = 7; fpreg >= 0; fpreg--)
{
- int tag = (ftag >> (fpreg * 2)) &
0x11
;
+ int tag = (ftag >> (fpreg * 2)) &
3
;
- if (tag !=
0x11
)
- val |= (1 <<
fpreg
);
+ if (tag !=
3
)
+ val |= (1 <<
(fpreg * 2)
);
}
memcpy (FXSAVE_ADDR (fxsave, i), &val, 2);
}
memcpy (FXSAVE_ADDR (fxsave, i), &val, 2);
@@
-312,32
+314,32
@@
i387_tag (unsigned char *raw)
if (exponent == 0x7fff)
{
/* Special. */
if (exponent == 0x7fff)
{
/* Special. */
- return (
0x10
);
+ return (
2
);
}
else if (exponent == 0x0000)
{
}
else if (exponent == 0x0000)
{
- if (integer)
+ if (
fraction[0] == 0x0000 && fraction[1] == 0x0000 && !
integer)
{
{
- /*
Valid
. */
- return (
0x00
);
+ /*
Zero
. */
+ return (
1
);
}
else
{
/* Special. */
}
else
{
/* Special. */
- return (
0x10
);
+ return (
2
);
}
}
else
{
}
}
else
{
- if (
fraction[0] == 0x0000 && fraction[1] == 0x0000 && !
integer)
+ if (integer)
{
{
- /*
Zero
. */
- return (0
x01
);
+ /*
Valid
. */
+ return (0);
}
else
{
/* Special. */
}
else
{
/* Special. */
- return (
0x10
);
+ return (
2
);
}
}
}
}
}
}
This page took
0.024928 seconds
and
4
git commands to generate.