Mail Archives: djgpp/1992/07/08/11:11:02
Strictly speaking the granularity bit should not be set for the TSS
segments, since they are not a multiple of 4 Kb long. Also all of the
calls to fillgdt which use sizeof(...), should probably use
sizeof(...)-1, since the field in the segment descriptor is a limit,
not a size.
Having said that, setting the granularity bit will cause the limit
field to be set to zero, which the CPU then harmlessly treats as a
limit of 0xfff; the Intel i486 Programmer's Reference Manual does not
forbid this. I would guess that this is a bug in the Cyrix microcode,
which is failing to handle this condition correctly when checking that
the TSS limit is >= 0x67 bytes on a task switch.
--------------------
Nigel Stephens
Algorithmics Ltd UUCP: nigel AT algor DOT co DOT uk
3 Drayton Park OLDUUCP:..!mcsun!uknet!algor!nigel
London PHONE: (+44) 71 700 3301
N5 1NU FAX: (+44) 71 700 3400
England
- Raw text -